]>
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-2017 Free Software Foundation, Inc.
7 This file is part of the GNU simulators.
9 This file is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 3, or (at your option)
14 It is distributed in the hope that it will be useful, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17 License for more details.
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, see <http://www.gnu.org/licenses/>.
24 #define WANT_CPU frvbf
25 #define WANT_CPU_FRVBF
32 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
34 /* This is used so that we can compile two copies of the semantic code,
35 one with full feature support and one without that runs fast(er).
36 FAST_P, when desired, is defined on the command line, -DFAST_P=1. */
38 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_semf_,fn)
39 #undef CGEN_TRACE_RESULT
40 #define CGEN_TRACE_RESULT(cpu, abuf, name, type, val)
42 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_sem_,fn)
45 /* x-invalid: --invalid-- */
48 SEM_FN_NAME ( frvbf
, x_invalid
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
50 #define FLD(f) abuf->fields.sfmt_empty.f
51 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
52 int UNUSED written
= 0 ;
53 IADDR UNUSED pc
= abuf
-> addr
;
54 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 0 );
57 /* Update the recorded pc in the cpu state struct.
58 Only necessary for WITH_SCACHE case, but to avoid the
59 conditional compilation .... */
61 /* Virtual insns have zero size. Overwrite vpc with address of next insn
62 using the default-insn-bitsize spec. When executing insns in parallel
63 we may want to queue the fault and continue execution. */
64 vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
65 vpc
= sim_engine_invalid_insn ( current_cpu
, pc
, vpc
);
72 /* x-after: --after-- */
75 SEM_FN_NAME ( frvbf
, x_after
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
77 #define FLD(f) abuf->fields.sfmt_empty.f
78 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
79 int UNUSED written
= 0 ;
80 IADDR UNUSED pc
= abuf
-> addr
;
81 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 0 );
84 #if WITH_SCACHE_PBB_FRVBF
85 frvbf_pbb_after ( current_cpu
, sem_arg
);
93 /* x-before: --before-- */
96 SEM_FN_NAME ( frvbf
, x_before
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
98 #define FLD(f) abuf->fields.sfmt_empty.f
99 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
100 int UNUSED written
= 0 ;
101 IADDR UNUSED pc
= abuf
-> addr
;
102 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 0 );
105 #if WITH_SCACHE_PBB_FRVBF
106 frvbf_pbb_before ( current_cpu
, sem_arg
);
114 /* x-cti-chain: --cti-chain-- */
117 SEM_FN_NAME ( frvbf
, x_cti_chain
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
119 #define FLD(f) abuf->fields.sfmt_empty.f
120 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
121 int UNUSED written
= 0 ;
122 IADDR UNUSED pc
= abuf
-> addr
;
123 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 0 );
126 #if WITH_SCACHE_PBB_FRVBF
128 vpc
= frvbf_pbb_cti_chain ( current_cpu
, sem_arg
,
129 pbb_br_type
, pbb_br_npc
);
132 /* FIXME: Allow provision of explicit ifmt spec in insn spec. */
133 vpc
= frvbf_pbb_cti_chain ( current_cpu
, sem_arg
,
134 CPU_PBB_BR_TYPE ( current_cpu
),
135 CPU_PBB_BR_NPC ( current_cpu
));
144 /* x-chain: --chain-- */
147 SEM_FN_NAME ( frvbf
, x_chain
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
149 #define FLD(f) abuf->fields.sfmt_empty.f
150 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
151 int UNUSED written
= 0 ;
152 IADDR UNUSED pc
= abuf
-> addr
;
153 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 0 );
156 #if WITH_SCACHE_PBB_FRVBF
157 vpc
= frvbf_pbb_chain ( current_cpu
, sem_arg
);
168 /* x-begin: --begin-- */
171 SEM_FN_NAME ( frvbf
, x_begin
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
173 #define FLD(f) abuf->fields.sfmt_empty.f
174 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
175 int UNUSED written
= 0 ;
176 IADDR UNUSED pc
= abuf
-> addr
;
177 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 0 );
180 #if WITH_SCACHE_PBB_FRVBF
181 #if defined DEFINE_SWITCH || defined FAST_P
182 /* In the switch case FAST_P is a constant, allowing several optimizations
183 in any called inline functions. */
184 vpc
= frvbf_pbb_begin ( current_cpu
, FAST_P
);
186 #if 0 /* cgen engine can't handle dynamic fast/full switching yet. */
187 vpc
= frvbf_pbb_begin ( current_cpu
, STATE_RUN_FAST_P ( CPU_STATE ( current_cpu
)));
189 vpc
= frvbf_pbb_begin ( current_cpu
, 0 );
199 /* add: add$pack $GRi,$GRj,$GRk */
202 SEM_FN_NAME ( frvbf
, add
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
204 #define FLD(f) abuf->fields.sfmt_addcc.f
205 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
206 int UNUSED written
= 0 ;
207 IADDR UNUSED pc
= abuf
-> addr
;
208 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
211 SI opval
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
212 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
213 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
220 /* sub: sub$pack $GRi,$GRj,$GRk */
223 SEM_FN_NAME ( frvbf
, sub
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
225 #define FLD(f) abuf->fields.sfmt_addcc.f
226 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
227 int UNUSED written
= 0 ;
228 IADDR UNUSED pc
= abuf
-> addr
;
229 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
232 SI opval
= SUBSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
233 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
234 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
241 /* and: and$pack $GRi,$GRj,$GRk */
244 SEM_FN_NAME ( frvbf
, and ) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
246 #define FLD(f) abuf->fields.sfmt_addcc.f
247 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
248 int UNUSED written
= 0 ;
249 IADDR UNUSED pc
= abuf
-> addr
;
250 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
253 SI opval
= ANDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
254 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
255 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
262 /* or: or$pack $GRi,$GRj,$GRk */
265 SEM_FN_NAME ( frvbf
, or ) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
267 #define FLD(f) abuf->fields.sfmt_addcc.f
268 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
269 int UNUSED written
= 0 ;
270 IADDR UNUSED pc
= abuf
-> addr
;
271 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
274 SI opval
= ORSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
275 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
276 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
283 /* xor: xor$pack $GRi,$GRj,$GRk */
286 SEM_FN_NAME ( frvbf
, xor ) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
288 #define FLD(f) abuf->fields.sfmt_addcc.f
289 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
290 int UNUSED written
= 0 ;
291 IADDR UNUSED pc
= abuf
-> addr
;
292 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
295 SI opval
= XORSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
296 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
297 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
304 /* not: not$pack $GRj,$GRk */
307 SEM_FN_NAME ( frvbf
, not ) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
309 #define FLD(f) abuf->fields.sfmt_scutss.f
310 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
311 int UNUSED written
= 0 ;
312 IADDR UNUSED pc
= abuf
-> addr
;
313 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
316 SI opval
= INVSI ( GET_H_GR ( FLD ( f_GRj
)));
317 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
318 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
325 /* sdiv: sdiv$pack $GRi,$GRj,$GRk */
328 SEM_FN_NAME ( frvbf
, sdiv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
330 #define FLD(f) abuf->fields.sfmt_addcc.f
331 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
332 int UNUSED written
= 0 ;
333 IADDR UNUSED pc
= abuf
-> addr
;
334 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
337 frvbf_signed_integer_divide ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), FLD ( f_GRk
), 0 );
345 /* nsdiv: nsdiv$pack $GRi,$GRj,$GRk */
348 SEM_FN_NAME ( frvbf
, nsdiv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
350 #define FLD(f) abuf->fields.sfmt_addcc.f
351 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
352 int UNUSED written
= 0 ;
353 IADDR UNUSED pc
= abuf
-> addr
;
354 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
357 frvbf_signed_integer_divide ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), FLD ( f_GRk
), 1 );
365 /* udiv: udiv$pack $GRi,$GRj,$GRk */
368 SEM_FN_NAME ( frvbf
, udiv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
370 #define FLD(f) abuf->fields.sfmt_addcc.f
371 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
372 int UNUSED written
= 0 ;
373 IADDR UNUSED pc
= abuf
-> addr
;
374 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
377 frvbf_unsigned_integer_divide ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), FLD ( f_GRk
), 0 );
385 /* nudiv: nudiv$pack $GRi,$GRj,$GRk */
388 SEM_FN_NAME ( frvbf
, nudiv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
390 #define FLD(f) abuf->fields.sfmt_addcc.f
391 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
392 int UNUSED written
= 0 ;
393 IADDR UNUSED pc
= abuf
-> addr
;
394 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
397 frvbf_unsigned_integer_divide ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), FLD ( f_GRk
), 1 );
405 /* smul: smul$pack $GRi,$GRj,$GRdoublek */
408 SEM_FN_NAME ( frvbf
, smul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
410 #define FLD(f) abuf->fields.sfmt_smulcc.f
411 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
412 int UNUSED written
= 0 ;
413 IADDR UNUSED pc
= abuf
-> addr
;
414 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
417 DI opval
= MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( GET_H_GR ( FLD ( f_GRj
))));
418 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
419 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
426 /* umul: umul$pack $GRi,$GRj,$GRdoublek */
429 SEM_FN_NAME ( frvbf
, umul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
431 #define FLD(f) abuf->fields.sfmt_smulcc.f
432 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
433 int UNUSED written
= 0 ;
434 IADDR UNUSED pc
= abuf
-> addr
;
435 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
438 DI opval
= MULDI ( ZEXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), ZEXTSIDI ( GET_H_GR ( FLD ( f_GRj
))));
439 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
440 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
447 /* smu: smu$pack $GRi,$GRj */
450 SEM_FN_NAME ( frvbf
, smu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
452 #define FLD(f) abuf->fields.sfmt_smass.f
453 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
454 int UNUSED written
= 0 ;
455 IADDR UNUSED pc
= abuf
-> addr
;
456 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
459 DI opval
= MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( GET_H_GR ( FLD ( f_GRj
))));
460 sim_queue_fn_di_write ( current_cpu
, frvbf_h_iacc0_set
, (( UINT
) 0 ), opval
);
461 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iacc0" , 'D' , opval
);
468 /* smass: smass$pack $GRi,$GRj */
471 SEM_FN_NAME ( frvbf
, smass
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
473 #define FLD(f) abuf->fields.sfmt_smass.f
474 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
475 int UNUSED written
= 0 ;
476 IADDR UNUSED pc
= abuf
-> addr
;
477 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
480 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 ( MAKEDI ( 2147483647 , 0xffffffff ), 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 ( MAKEDI ( 0x80000000 , 0 ), 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
))))));
481 sim_queue_fn_di_write ( current_cpu
, frvbf_h_iacc0_set
, (( UINT
) 0 ), opval
);
482 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iacc0" , 'D' , opval
);
489 /* smsss: smsss$pack $GRi,$GRj */
492 SEM_FN_NAME ( frvbf
, smsss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
494 #define FLD(f) abuf->fields.sfmt_smass.f
495 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
496 int UNUSED written
= 0 ;
497 IADDR UNUSED pc
= abuf
-> addr
;
498 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
501 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 ( MAKEDI ( 2147483647 , 0xffffffff ), 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 ( MAKEDI ( 0x80000000 , 0 ), 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
))))));
502 sim_queue_fn_di_write ( current_cpu
, frvbf_h_iacc0_set
, (( UINT
) 0 ), opval
);
503 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iacc0" , 'D' , opval
);
510 /* sll: sll$pack $GRi,$GRj,$GRk */
513 SEM_FN_NAME ( frvbf
, sll
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
515 #define FLD(f) abuf->fields.sfmt_addcc.f
516 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
517 int UNUSED written
= 0 ;
518 IADDR UNUSED pc
= abuf
-> addr
;
519 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
522 SI opval
= SLLSI ( GET_H_GR ( FLD ( f_GRi
)), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 ));
523 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
524 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
531 /* srl: srl$pack $GRi,$GRj,$GRk */
534 SEM_FN_NAME ( frvbf
, srl
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
536 #define FLD(f) abuf->fields.sfmt_addcc.f
537 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
538 int UNUSED written
= 0 ;
539 IADDR UNUSED pc
= abuf
-> addr
;
540 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
543 SI opval
= SRLSI ( GET_H_GR ( FLD ( f_GRi
)), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 ));
544 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
545 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
552 /* sra: sra$pack $GRi,$GRj,$GRk */
555 SEM_FN_NAME ( frvbf
, sra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
557 #define FLD(f) abuf->fields.sfmt_addcc.f
558 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
559 int UNUSED written
= 0 ;
560 IADDR UNUSED pc
= abuf
-> addr
;
561 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
564 SI opval
= SRASI ( GET_H_GR ( FLD ( f_GRi
)), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 ));
565 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
566 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
573 /* slass: slass$pack $GRi,$GRj,$GRk */
576 SEM_FN_NAME ( frvbf
, slass
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
578 #define FLD(f) abuf->fields.sfmt_addcc.f
579 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
580 int UNUSED written
= 0 ;
581 IADDR UNUSED pc
= abuf
-> addr
;
582 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
585 SI opval
= frvbf_shift_left_arith_saturate ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
586 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
587 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
594 /* scutss: scutss$pack $GRj,$GRk */
597 SEM_FN_NAME ( frvbf
, scutss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
599 #define FLD(f) abuf->fields.sfmt_scutss.f
600 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
601 int UNUSED written
= 0 ;
602 IADDR UNUSED pc
= abuf
-> addr
;
603 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
606 SI opval
= frvbf_iacc_cut ( current_cpu
, GET_H_IACC0 ((( UINT
) 0 )), GET_H_GR ( FLD ( f_GRj
)));
607 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
608 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
615 /* scan: scan$pack $GRi,$GRj,$GRk */
618 SEM_FN_NAME ( frvbf
, scan
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
620 #define FLD(f) abuf->fields.sfmt_addcc.f
621 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
622 int UNUSED written
= 0 ;
623 IADDR UNUSED pc
= abuf
-> addr
;
624 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
629 tmp_tmp1
= GET_H_GR ( FLD ( f_GRi
));
630 tmp_tmp2
= SRASI ( GET_H_GR ( FLD ( f_GRj
)), 1 );
632 SI opval
= frvbf_scan_result ( current_cpu
, XORSI ( tmp_tmp1
, tmp_tmp2
));
633 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
634 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
642 /* cadd: cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */
645 SEM_FN_NAME ( frvbf
, cadd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
647 #define FLD(f) abuf->fields.sfmt_cswap.f
648 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
649 int UNUSED written
= 0 ;
650 IADDR UNUSED pc
= abuf
-> addr
;
651 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
653 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
655 SI opval
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
656 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
658 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
662 abuf
-> written
= written
;
667 /* csub: csub$pack $GRi,$GRj,$GRk,$CCi,$cond */
670 SEM_FN_NAME ( frvbf
, csub
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
672 #define FLD(f) abuf->fields.sfmt_cswap.f
673 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
674 int UNUSED written
= 0 ;
675 IADDR UNUSED pc
= abuf
-> addr
;
676 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
678 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
680 SI opval
= SUBSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
681 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
683 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
687 abuf
-> written
= written
;
692 /* cand: cand$pack $GRi,$GRj,$GRk,$CCi,$cond */
695 SEM_FN_NAME ( frvbf
, cand
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
697 #define FLD(f) abuf->fields.sfmt_cswap.f
698 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
699 int UNUSED written
= 0 ;
700 IADDR UNUSED pc
= abuf
-> addr
;
701 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
703 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
705 SI opval
= ANDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
706 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
708 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
712 abuf
-> written
= written
;
717 /* cor: cor$pack $GRi,$GRj,$GRk,$CCi,$cond */
720 SEM_FN_NAME ( frvbf
, cor
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
722 #define FLD(f) abuf->fields.sfmt_cswap.f
723 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
724 int UNUSED written
= 0 ;
725 IADDR UNUSED pc
= abuf
-> addr
;
726 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
728 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
730 SI opval
= ORSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
731 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
733 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
737 abuf
-> written
= written
;
742 /* cxor: cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */
745 SEM_FN_NAME ( frvbf
, cxor
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
747 #define FLD(f) abuf->fields.sfmt_cswap.f
748 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
749 int UNUSED written
= 0 ;
750 IADDR UNUSED pc
= abuf
-> addr
;
751 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
753 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
755 SI opval
= XORSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
756 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
758 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
762 abuf
-> written
= written
;
767 /* cnot: cnot$pack $GRj,$GRk,$CCi,$cond */
770 SEM_FN_NAME ( frvbf
, cnot
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
772 #define FLD(f) abuf->fields.sfmt_cswap.f
773 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
774 int UNUSED written
= 0 ;
775 IADDR UNUSED pc
= abuf
-> addr
;
776 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
778 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
780 SI opval
= INVSI ( GET_H_GR ( FLD ( f_GRj
)));
781 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
783 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
787 abuf
-> written
= written
;
792 /* csmul: csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
795 SEM_FN_NAME ( frvbf
, csmul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
797 #define FLD(f) abuf->fields.sfmt_clddu.f
798 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
799 int UNUSED written
= 0 ;
800 IADDR UNUSED pc
= abuf
-> addr
;
801 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
803 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
805 DI opval
= MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( GET_H_GR ( FLD ( f_GRj
))));
806 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
808 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
812 abuf
-> written
= written
;
817 /* csdiv: csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
820 SEM_FN_NAME ( frvbf
, csdiv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
822 #define FLD(f) abuf->fields.sfmt_cswap.f
823 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
824 int UNUSED written
= 0 ;
825 IADDR UNUSED pc
= abuf
-> addr
;
826 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
828 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
830 frvbf_signed_integer_divide ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), FLD ( f_GRk
), 0 );
835 abuf
-> written
= written
;
840 /* cudiv: cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
843 SEM_FN_NAME ( frvbf
, cudiv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
845 #define FLD(f) abuf->fields.sfmt_cswap.f
846 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
847 int UNUSED written
= 0 ;
848 IADDR UNUSED pc
= abuf
-> addr
;
849 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
851 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
853 frvbf_unsigned_integer_divide ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), FLD ( f_GRk
), 0 );
858 abuf
-> written
= written
;
863 /* csll: csll$pack $GRi,$GRj,$GRk,$CCi,$cond */
866 SEM_FN_NAME ( frvbf
, csll
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
868 #define FLD(f) abuf->fields.sfmt_cswap.f
869 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
870 int UNUSED written
= 0 ;
871 IADDR UNUSED pc
= abuf
-> addr
;
872 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
874 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
876 SI opval
= SLLSI ( GET_H_GR ( FLD ( f_GRi
)), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 ));
877 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
879 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
883 abuf
-> written
= written
;
888 /* csrl: csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */
891 SEM_FN_NAME ( frvbf
, csrl
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
893 #define FLD(f) abuf->fields.sfmt_cswap.f
894 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
895 int UNUSED written
= 0 ;
896 IADDR UNUSED pc
= abuf
-> addr
;
897 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
899 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
901 SI opval
= SRLSI ( GET_H_GR ( FLD ( f_GRi
)), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 ));
902 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
904 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
908 abuf
-> written
= written
;
913 /* csra: csra$pack $GRi,$GRj,$GRk,$CCi,$cond */
916 SEM_FN_NAME ( frvbf
, csra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
918 #define FLD(f) abuf->fields.sfmt_cswap.f
919 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
920 int UNUSED written
= 0 ;
921 IADDR UNUSED pc
= abuf
-> addr
;
922 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
924 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
926 SI opval
= SRASI ( GET_H_GR ( FLD ( f_GRi
)), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 ));
927 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
929 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
933 abuf
-> written
= written
;
938 /* cscan: cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */
941 SEM_FN_NAME ( frvbf
, cscan
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
943 #define FLD(f) abuf->fields.sfmt_cswap.f
944 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
945 int UNUSED written
= 0 ;
946 IADDR UNUSED pc
= abuf
-> addr
;
947 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
949 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
953 tmp_tmp1
= GET_H_GR ( FLD ( f_GRi
));
954 tmp_tmp2
= SRASI ( GET_H_GR ( FLD ( f_GRj
)), 1 );
956 SI opval
= frvbf_scan_result ( current_cpu
, XORSI ( tmp_tmp1
, tmp_tmp2
));
957 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
959 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
964 abuf
-> written
= written
;
969 /* addcc: addcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
972 SEM_FN_NAME ( frvbf
, addcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
974 #define FLD(f) abuf->fields.sfmt_addcc.f
975 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
976 int UNUSED written
= 0 ;
977 IADDR UNUSED pc
= abuf
-> addr
;
978 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
984 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
985 tmp_tmp
= ADDOFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), 0 );
986 if ( EQBI ( tmp_tmp
, 0 )) {
987 tmp_cc
= ANDQI ( tmp_cc
, 13 );
989 tmp_cc
= ORQI ( tmp_cc
, 2 );
991 tmp_tmp
= ADDCFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), 0 );
992 if ( EQBI ( tmp_tmp
, 0 )) {
993 tmp_cc
= ANDQI ( tmp_cc
, 14 );
995 tmp_cc
= ORQI ( tmp_cc
, 1 );
997 tmp_result
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
998 if ( EQSI ( tmp_result
, 0 )) {
999 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1001 if ( LTSI ( tmp_result
, 0 )) {
1002 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1004 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1008 SI opval
= tmp_result
;
1009 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1010 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1014 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1015 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1023 /* subcc: subcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1026 SEM_FN_NAME ( frvbf
, subcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1028 #define FLD(f) abuf->fields.sfmt_addcc.f
1029 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1030 int UNUSED written
= 0 ;
1031 IADDR UNUSED pc
= abuf
-> addr
;
1032 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1038 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
1039 tmp_tmp
= SUBOFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), 0 );
1040 if ( EQBI ( tmp_tmp
, 0 )) {
1041 tmp_cc
= ANDQI ( tmp_cc
, 13 );
1043 tmp_cc
= ORQI ( tmp_cc
, 2 );
1045 tmp_tmp
= SUBCFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), 0 );
1046 if ( EQBI ( tmp_tmp
, 0 )) {
1047 tmp_cc
= ANDQI ( tmp_cc
, 14 );
1049 tmp_cc
= ORQI ( tmp_cc
, 1 );
1051 tmp_result
= SUBSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
1052 if ( EQSI ( tmp_result
, 0 )) {
1053 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1055 if ( LTSI ( tmp_result
, 0 )) {
1056 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1058 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1062 SI opval
= tmp_result
;
1063 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1064 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1068 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1069 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1077 /* andcc: andcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1080 SEM_FN_NAME ( frvbf
, andcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1082 #define FLD(f) abuf->fields.sfmt_addcc.f
1083 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1084 int UNUSED written
= 0 ;
1085 IADDR UNUSED pc
= abuf
-> addr
;
1086 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1090 tmp_tmp
= ANDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
1093 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1094 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1096 if ( EQSI ( tmp_tmp
, 0 )) {
1098 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 7 ), 4 );
1099 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1100 written
|= ( 1 << 4 );
1101 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1104 if ( LTSI ( tmp_tmp
, 0 )) {
1106 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 11 ), 8 );
1107 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1108 written
|= ( 1 << 4 );
1109 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1113 UQI opval
= ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 3 );
1114 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1115 written
|= ( 1 << 4 );
1116 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1122 abuf
-> written
= written
;
1127 /* orcc: orcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1130 SEM_FN_NAME ( frvbf
, orcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1132 #define FLD(f) abuf->fields.sfmt_addcc.f
1133 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1134 int UNUSED written
= 0 ;
1135 IADDR UNUSED pc
= abuf
-> addr
;
1136 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1140 tmp_tmp
= ORSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
1143 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1144 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1146 if ( EQSI ( tmp_tmp
, 0 )) {
1148 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 7 ), 4 );
1149 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1150 written
|= ( 1 << 4 );
1151 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1154 if ( LTSI ( tmp_tmp
, 0 )) {
1156 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 11 ), 8 );
1157 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1158 written
|= ( 1 << 4 );
1159 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1163 UQI opval
= ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 3 );
1164 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1165 written
|= ( 1 << 4 );
1166 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1172 abuf
-> written
= written
;
1177 /* xorcc: xorcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1180 SEM_FN_NAME ( frvbf
, xorcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1182 #define FLD(f) abuf->fields.sfmt_addcc.f
1183 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1184 int UNUSED written
= 0 ;
1185 IADDR UNUSED pc
= abuf
-> addr
;
1186 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1190 tmp_tmp
= XORSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
1193 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1194 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1196 if ( EQSI ( tmp_tmp
, 0 )) {
1198 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 7 ), 4 );
1199 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1200 written
|= ( 1 << 4 );
1201 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1204 if ( LTSI ( tmp_tmp
, 0 )) {
1206 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 11 ), 8 );
1207 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1208 written
|= ( 1 << 4 );
1209 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1213 UQI opval
= ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 3 );
1214 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1215 written
|= ( 1 << 4 );
1216 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1222 abuf
-> written
= written
;
1227 /* sllcc: sllcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1230 SEM_FN_NAME ( frvbf
, sllcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1232 #define FLD(f) abuf->fields.sfmt_addcc.f
1233 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1234 int UNUSED written
= 0 ;
1235 IADDR UNUSED pc
= abuf
-> addr
;
1236 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1242 tmp_shift
= ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 );
1243 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
)]));
1244 tmp_tmp
= SLLSI ( GET_H_GR ( FLD ( f_GRi
)), tmp_shift
);
1247 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1248 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1250 if ( EQSI ( tmp_tmp
, 0 )) {
1251 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1253 if ( LTSI ( tmp_tmp
, 0 )) {
1254 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1256 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1261 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1262 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1270 /* srlcc: srlcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1273 SEM_FN_NAME ( frvbf
, srlcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1275 #define FLD(f) abuf->fields.sfmt_addcc.f
1276 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1277 int UNUSED written
= 0 ;
1278 IADDR UNUSED pc
= abuf
-> addr
;
1279 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1285 tmp_shift
= ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 );
1286 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
)]));
1287 tmp_tmp
= SRLSI ( GET_H_GR ( FLD ( f_GRi
)), tmp_shift
);
1290 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1291 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1293 if ( EQSI ( tmp_tmp
, 0 )) {
1294 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1296 if ( LTSI ( tmp_tmp
, 0 )) {
1297 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1299 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1304 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1305 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1313 /* sracc: sracc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1316 SEM_FN_NAME ( frvbf
, sracc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1318 #define FLD(f) abuf->fields.sfmt_addcc.f
1319 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1320 int UNUSED written
= 0 ;
1321 IADDR UNUSED pc
= abuf
-> addr
;
1322 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1328 tmp_shift
= ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 );
1329 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
)]));
1330 tmp_tmp
= SRASI ( GET_H_GR ( FLD ( f_GRi
)), tmp_shift
);
1333 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1334 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1336 if ( EQSI ( tmp_tmp
, 0 )) {
1337 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1339 if ( LTSI ( tmp_tmp
, 0 )) {
1340 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1342 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1347 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1348 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1356 /* smulcc: smulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1359 SEM_FN_NAME ( frvbf
, smulcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1361 #define FLD(f) abuf->fields.sfmt_smulcc.f
1362 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1363 int UNUSED written
= 0 ;
1364 IADDR UNUSED pc
= abuf
-> addr
;
1365 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1370 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
1371 tmp_tmp
= MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( GET_H_GR ( FLD ( f_GRj
))));
1372 if ( EQDI ( SRLDI ( tmp_tmp
, 63 ), 0 )) {
1373 tmp_cc
= ANDQI ( tmp_cc
, 7 );
1375 tmp_cc
= ORQI ( tmp_cc
, 8 );
1377 if ( EQBI ( EQDI ( tmp_tmp
, 0 ), 0 )) {
1378 tmp_cc
= ANDQI ( tmp_cc
, 11 );
1380 tmp_cc
= ORQI ( tmp_cc
, 4 );
1384 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
1385 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
1389 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1390 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1398 /* umulcc: umulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1401 SEM_FN_NAME ( frvbf
, umulcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1403 #define FLD(f) abuf->fields.sfmt_smulcc.f
1404 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1405 int UNUSED written
= 0 ;
1406 IADDR UNUSED pc
= abuf
-> addr
;
1407 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1412 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
1413 tmp_tmp
= MULDI ( ZEXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), ZEXTSIDI ( GET_H_GR ( FLD ( f_GRj
))));
1414 if ( EQDI ( SRLDI ( tmp_tmp
, 63 ), 0 )) {
1415 tmp_cc
= ANDQI ( tmp_cc
, 7 );
1417 tmp_cc
= ORQI ( tmp_cc
, 8 );
1419 if ( EQBI ( EQDI ( tmp_tmp
, 0 ), 0 )) {
1420 tmp_cc
= ANDQI ( tmp_cc
, 11 );
1422 tmp_cc
= ORQI ( tmp_cc
, 4 );
1426 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
1427 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
1431 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1432 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1440 /* caddcc: caddcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1443 SEM_FN_NAME ( frvbf
, caddcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1445 #define FLD(f) abuf->fields.sfmt_caddcc.f
1446 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1447 int UNUSED written
= 0 ;
1448 IADDR UNUSED pc
= abuf
-> addr
;
1449 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1451 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
1456 tmp_cc
= CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]);
1457 tmp_tmp
= ADDOFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), 0 );
1458 if ( EQBI ( tmp_tmp
, 0 )) {
1459 tmp_cc
= ANDQI ( tmp_cc
, 13 );
1461 tmp_cc
= ORQI ( tmp_cc
, 2 );
1463 tmp_tmp
= ADDCFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), 0 );
1464 if ( EQBI ( tmp_tmp
, 0 )) {
1465 tmp_cc
= ANDQI ( tmp_cc
, 14 );
1467 tmp_cc
= ORQI ( tmp_cc
, 1 );
1469 tmp_result
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
1470 if ( EQSI ( tmp_result
, 0 )) {
1471 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1473 if ( LTSI ( tmp_result
, 0 )) {
1474 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1476 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1480 SI opval
= tmp_result
;
1481 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1482 written
|= ( 1 << 6 );
1483 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1487 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), opval
);
1488 written
|= ( 1 << 7 );
1489 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1494 abuf
-> written
= written
;
1499 /* csubcc: csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1502 SEM_FN_NAME ( frvbf
, csubcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1504 #define FLD(f) abuf->fields.sfmt_caddcc.f
1505 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1506 int UNUSED written
= 0 ;
1507 IADDR UNUSED pc
= abuf
-> addr
;
1508 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1510 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
1515 tmp_cc
= CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]);
1516 tmp_tmp
= SUBOFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), 0 );
1517 if ( EQBI ( tmp_tmp
, 0 )) {
1518 tmp_cc
= ANDQI ( tmp_cc
, 13 );
1520 tmp_cc
= ORQI ( tmp_cc
, 2 );
1522 tmp_tmp
= SUBCFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), 0 );
1523 if ( EQBI ( tmp_tmp
, 0 )) {
1524 tmp_cc
= ANDQI ( tmp_cc
, 14 );
1526 tmp_cc
= ORQI ( tmp_cc
, 1 );
1528 tmp_result
= SUBSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
1529 if ( EQSI ( tmp_result
, 0 )) {
1530 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1532 if ( LTSI ( tmp_result
, 0 )) {
1533 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1535 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1539 SI opval
= tmp_result
;
1540 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1541 written
|= ( 1 << 6 );
1542 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1546 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), opval
);
1547 written
|= ( 1 << 7 );
1548 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1553 abuf
-> written
= written
;
1558 /* csmulcc: csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
1561 SEM_FN_NAME ( frvbf
, csmulcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1563 #define FLD(f) abuf->fields.sfmt_csmulcc.f
1564 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1565 int UNUSED written
= 0 ;
1566 IADDR UNUSED pc
= abuf
-> addr
;
1567 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1569 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
1573 tmp_cc
= CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]);
1574 tmp_tmp
= MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( GET_H_GR ( FLD ( f_GRj
))));
1575 if ( EQDI ( SRLDI ( tmp_tmp
, 63 ), 0 )) {
1576 tmp_cc
= ANDQI ( tmp_cc
, 7 );
1578 tmp_cc
= ORQI ( tmp_cc
, 8 );
1580 if ( EQBI ( EQDI ( tmp_tmp
, 0 ), 0 )) {
1581 tmp_cc
= ANDQI ( tmp_cc
, 11 );
1583 tmp_cc
= ORQI ( tmp_cc
, 4 );
1587 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
1588 written
|= ( 1 << 6 );
1589 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
1593 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), opval
);
1594 written
|= ( 1 << 7 );
1595 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1600 abuf
-> written
= written
;
1605 /* candcc: candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1608 SEM_FN_NAME ( frvbf
, candcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1610 #define FLD(f) abuf->fields.sfmt_caddcc.f
1611 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1612 int UNUSED written
= 0 ;
1613 IADDR UNUSED pc
= abuf
-> addr
;
1614 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1616 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
1619 tmp_tmp
= ANDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
1622 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1623 written
|= ( 1 << 6 );
1624 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1626 if ( EQSI ( tmp_tmp
, 0 )) {
1628 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), 7 ), 4 );
1629 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), opval
);
1630 written
|= ( 1 << 7 );
1631 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1634 if ( LTSI ( tmp_tmp
, 0 )) {
1636 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), 11 ), 8 );
1637 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), opval
);
1638 written
|= ( 1 << 7 );
1639 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1643 UQI opval
= ANDQI ( CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), 3 );
1644 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), opval
);
1645 written
|= ( 1 << 7 );
1646 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1653 abuf
-> written
= written
;
1658 /* corcc: corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1661 SEM_FN_NAME ( frvbf
, corcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1663 #define FLD(f) abuf->fields.sfmt_caddcc.f
1664 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1665 int UNUSED written
= 0 ;
1666 IADDR UNUSED pc
= abuf
-> addr
;
1667 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1669 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
1672 tmp_tmp
= ORSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
1675 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1676 written
|= ( 1 << 6 );
1677 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1679 if ( EQSI ( tmp_tmp
, 0 )) {
1681 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), 7 ), 4 );
1682 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), opval
);
1683 written
|= ( 1 << 7 );
1684 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1687 if ( LTSI ( tmp_tmp
, 0 )) {
1689 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), 11 ), 8 );
1690 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), opval
);
1691 written
|= ( 1 << 7 );
1692 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1696 UQI opval
= ANDQI ( CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), 3 );
1697 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), opval
);
1698 written
|= ( 1 << 7 );
1699 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1706 abuf
-> written
= written
;
1711 /* cxorcc: cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1714 SEM_FN_NAME ( frvbf
, cxorcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1716 #define FLD(f) abuf->fields.sfmt_caddcc.f
1717 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1718 int UNUSED written
= 0 ;
1719 IADDR UNUSED pc
= abuf
-> addr
;
1720 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1722 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
1725 tmp_tmp
= XORSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
1728 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1729 written
|= ( 1 << 6 );
1730 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1732 if ( EQSI ( tmp_tmp
, 0 )) {
1734 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), 7 ), 4 );
1735 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), opval
);
1736 written
|= ( 1 << 7 );
1737 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1740 if ( LTSI ( tmp_tmp
, 0 )) {
1742 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), 11 ), 8 );
1743 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), opval
);
1744 written
|= ( 1 << 7 );
1745 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1749 UQI opval
= ANDQI ( CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), 3 );
1750 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), opval
);
1751 written
|= ( 1 << 7 );
1752 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1759 abuf
-> written
= written
;
1764 /* csllcc: csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1767 SEM_FN_NAME ( frvbf
, csllcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1769 #define FLD(f) abuf->fields.sfmt_caddcc.f
1770 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1771 int UNUSED written
= 0 ;
1772 IADDR UNUSED pc
= abuf
-> addr
;
1773 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1775 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
1780 tmp_shift
= ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 );
1781 tmp_cc
= frvbf_set_icc_for_shift_left ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), tmp_shift
, CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]));
1782 tmp_tmp
= SLLSI ( GET_H_GR ( FLD ( f_GRi
)), tmp_shift
);
1785 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1786 written
|= ( 1 << 6 );
1787 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1789 if ( EQSI ( tmp_tmp
, 0 )) {
1790 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1792 if ( LTSI ( tmp_tmp
, 0 )) {
1793 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1795 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1800 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), opval
);
1801 written
|= ( 1 << 7 );
1802 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1807 abuf
-> written
= written
;
1812 /* csrlcc: csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1815 SEM_FN_NAME ( frvbf
, csrlcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1817 #define FLD(f) abuf->fields.sfmt_caddcc.f
1818 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1819 int UNUSED written
= 0 ;
1820 IADDR UNUSED pc
= abuf
-> addr
;
1821 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1823 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
1828 tmp_shift
= ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 );
1829 tmp_cc
= frvbf_set_icc_for_shift_right ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), tmp_shift
, CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]));
1830 tmp_tmp
= SRLSI ( GET_H_GR ( FLD ( f_GRi
)), tmp_shift
);
1833 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1834 written
|= ( 1 << 6 );
1835 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1837 if ( EQSI ( tmp_tmp
, 0 )) {
1838 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1840 if ( LTSI ( tmp_tmp
, 0 )) {
1841 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1843 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1848 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), opval
);
1849 written
|= ( 1 << 7 );
1850 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1855 abuf
-> written
= written
;
1860 /* csracc: csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1863 SEM_FN_NAME ( frvbf
, csracc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1865 #define FLD(f) abuf->fields.sfmt_caddcc.f
1866 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1867 int UNUSED written
= 0 ;
1868 IADDR UNUSED pc
= abuf
-> addr
;
1869 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1871 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
1876 tmp_shift
= ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 );
1877 tmp_cc
= frvbf_set_icc_for_shift_right ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), tmp_shift
, CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]));
1878 tmp_tmp
= SRASI ( GET_H_GR ( FLD ( f_GRi
)), tmp_shift
);
1881 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1882 written
|= ( 1 << 6 );
1883 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1885 if ( EQSI ( tmp_tmp
, 0 )) {
1886 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1888 if ( LTSI ( tmp_tmp
, 0 )) {
1889 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1891 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1896 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ ANDSI ( FLD ( f_CCi
), 3 )]), opval
);
1897 written
|= ( 1 << 7 );
1898 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1903 abuf
-> written
= written
;
1908 /* addx: addx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1911 SEM_FN_NAME ( frvbf
, addx
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1913 #define FLD(f) abuf->fields.sfmt_addcc.f
1914 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1915 int UNUSED written
= 0 ;
1916 IADDR UNUSED pc
= abuf
-> addr
;
1917 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1920 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 )));
1921 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1922 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1929 /* subx: subx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1932 SEM_FN_NAME ( frvbf
, subx
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1934 #define FLD(f) abuf->fields.sfmt_addcc.f
1935 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1936 int UNUSED written
= 0 ;
1937 IADDR UNUSED pc
= abuf
-> addr
;
1938 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1941 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 )));
1942 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1943 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1950 /* addxcc: addxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1953 SEM_FN_NAME ( frvbf
, addxcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1955 #define FLD(f) abuf->fields.sfmt_addcc.f
1956 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1957 int UNUSED written
= 0 ;
1958 IADDR UNUSED pc
= abuf
-> addr
;
1959 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1964 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
1965 tmp_tmp
= ADDCSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 )));
1966 if ( EQBI ( ADDOFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 ))), 0 )) {
1967 tmp_cc
= ANDQI ( tmp_cc
, 13 );
1969 tmp_cc
= ORQI ( tmp_cc
, 2 );
1971 if ( EQBI ( ADDCFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 ))), 0 )) {
1972 tmp_cc
= ANDQI ( tmp_cc
, 14 );
1974 tmp_cc
= ORQI ( tmp_cc
, 1 );
1976 if ( EQSI ( tmp_tmp
, 0 )) {
1977 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1979 if ( LTSI ( tmp_tmp
, 0 )) {
1980 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1982 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1987 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1988 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1992 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1993 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2001 /* subxcc: subxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
2004 SEM_FN_NAME ( frvbf
, subxcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2006 #define FLD(f) abuf->fields.sfmt_addcc.f
2007 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2008 int UNUSED written
= 0 ;
2009 IADDR UNUSED pc
= abuf
-> addr
;
2010 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2015 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
2016 tmp_tmp
= SUBCSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 )));
2017 if ( EQBI ( SUBOFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 ))), 0 )) {
2018 tmp_cc
= ANDQI ( tmp_cc
, 13 );
2020 tmp_cc
= ORQI ( tmp_cc
, 2 );
2022 if ( EQBI ( SUBCFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 ))), 0 )) {
2023 tmp_cc
= ANDQI ( tmp_cc
, 14 );
2025 tmp_cc
= ORQI ( tmp_cc
, 1 );
2027 if ( EQSI ( tmp_tmp
, 0 )) {
2028 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
2030 if ( LTSI ( tmp_tmp
, 0 )) {
2031 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
2033 tmp_cc
= ANDQI ( tmp_cc
, 3 );
2038 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2039 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2043 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2044 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2052 /* addss: addss$pack $GRi,$GRj,$GRk */
2055 SEM_FN_NAME ( frvbf
, addss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2057 #define FLD(f) abuf->fields.sfmt_addcc.f
2058 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2059 int UNUSED written
= 0 ;
2060 IADDR UNUSED pc
= abuf
-> addr
;
2061 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2065 SI opval
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
2066 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2067 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2069 if ( ADDOFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), 0 )) {
2071 SI opval
= ( GTSI ( GET_H_GR ( FLD ( f_GRi
)), 0 )) ? ( 2147483647 ) : ( LTSI ( GET_H_GR ( FLD ( f_GRi
)), 0 )) ? ( 0x80000000 ) : ( 0 );
2072 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2073 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2082 /* subss: subss$pack $GRi,$GRj,$GRk */
2085 SEM_FN_NAME ( frvbf
, subss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2087 #define FLD(f) abuf->fields.sfmt_addcc.f
2088 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2089 int UNUSED written
= 0 ;
2090 IADDR UNUSED pc
= abuf
-> addr
;
2091 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2095 SI opval
= SUBSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
2096 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2097 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2099 if ( SUBOFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), 0 )) {
2101 SI opval
= ( GTSI ( GET_H_GR ( FLD ( f_GRi
)), 0 )) ? ( 2147483647 ) : ( LTSI ( GET_H_GR ( FLD ( f_GRi
)), 0 )) ? ( 0x80000000 ) : ( 0 );
2102 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2103 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2112 /* addi: addi$pack $GRi,$s12,$GRk */
2115 SEM_FN_NAME ( frvbf
, addi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2117 #define FLD(f) abuf->fields.sfmt_swapi.f
2118 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2119 int UNUSED written
= 0 ;
2120 IADDR UNUSED pc
= abuf
-> addr
;
2121 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2124 SI opval
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
2125 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2126 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2133 /* subi: subi$pack $GRi,$s12,$GRk */
2136 SEM_FN_NAME ( frvbf
, subi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2138 #define FLD(f) abuf->fields.sfmt_swapi.f
2139 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2140 int UNUSED written
= 0 ;
2141 IADDR UNUSED pc
= abuf
-> addr
;
2142 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2145 SI opval
= SUBSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
2146 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2147 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2154 /* andi: andi$pack $GRi,$s12,$GRk */
2157 SEM_FN_NAME ( frvbf
, andi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2159 #define FLD(f) abuf->fields.sfmt_swapi.f
2160 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2161 int UNUSED written
= 0 ;
2162 IADDR UNUSED pc
= abuf
-> addr
;
2163 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2166 SI opval
= ANDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
2167 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2168 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2175 /* ori: ori$pack $GRi,$s12,$GRk */
2178 SEM_FN_NAME ( frvbf
, ori
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2180 #define FLD(f) abuf->fields.sfmt_swapi.f
2181 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2182 int UNUSED written
= 0 ;
2183 IADDR UNUSED pc
= abuf
-> addr
;
2184 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2187 SI opval
= ORSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
2188 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2189 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2196 /* xori: xori$pack $GRi,$s12,$GRk */
2199 SEM_FN_NAME ( frvbf
, xori
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2201 #define FLD(f) abuf->fields.sfmt_swapi.f
2202 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2203 int UNUSED written
= 0 ;
2204 IADDR UNUSED pc
= abuf
-> addr
;
2205 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2208 SI opval
= XORSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
2209 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2210 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2217 /* sdivi: sdivi$pack $GRi,$s12,$GRk */
2220 SEM_FN_NAME ( frvbf
, sdivi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2222 #define FLD(f) abuf->fields.sfmt_swapi.f
2223 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2224 int UNUSED written
= 0 ;
2225 IADDR UNUSED pc
= abuf
-> addr
;
2226 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2229 frvbf_signed_integer_divide ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
), FLD ( f_GRk
), 0 );
2237 /* nsdivi: nsdivi$pack $GRi,$s12,$GRk */
2240 SEM_FN_NAME ( frvbf
, nsdivi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2242 #define FLD(f) abuf->fields.sfmt_swapi.f
2243 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2244 int UNUSED written
= 0 ;
2245 IADDR UNUSED pc
= abuf
-> addr
;
2246 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2249 frvbf_signed_integer_divide ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
), FLD ( f_GRk
), 1 );
2257 /* udivi: udivi$pack $GRi,$s12,$GRk */
2260 SEM_FN_NAME ( frvbf
, udivi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2262 #define FLD(f) abuf->fields.sfmt_swapi.f
2263 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2264 int UNUSED written
= 0 ;
2265 IADDR UNUSED pc
= abuf
-> addr
;
2266 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2269 frvbf_unsigned_integer_divide ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
), FLD ( f_GRk
), 0 );
2277 /* nudivi: nudivi$pack $GRi,$s12,$GRk */
2280 SEM_FN_NAME ( frvbf
, nudivi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2282 #define FLD(f) abuf->fields.sfmt_swapi.f
2283 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2284 int UNUSED written
= 0 ;
2285 IADDR UNUSED pc
= abuf
-> addr
;
2286 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2289 frvbf_unsigned_integer_divide ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
), FLD ( f_GRk
), 1 );
2297 /* smuli: smuli$pack $GRi,$s12,$GRdoublek */
2300 SEM_FN_NAME ( frvbf
, smuli
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2302 #define FLD(f) abuf->fields.sfmt_smuli.f
2303 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2304 int UNUSED written
= 0 ;
2305 IADDR UNUSED pc
= abuf
-> addr
;
2306 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2309 DI opval
= MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( FLD ( f_d12
)));
2310 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
2311 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
2318 /* umuli: umuli$pack $GRi,$s12,$GRdoublek */
2321 SEM_FN_NAME ( frvbf
, umuli
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2323 #define FLD(f) abuf->fields.sfmt_smuli.f
2324 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2325 int UNUSED written
= 0 ;
2326 IADDR UNUSED pc
= abuf
-> addr
;
2327 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2330 DI opval
= MULDI ( ZEXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), ZEXTSIDI ( FLD ( f_d12
)));
2331 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
2332 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
2339 /* slli: slli$pack $GRi,$s12,$GRk */
2342 SEM_FN_NAME ( frvbf
, slli
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2344 #define FLD(f) abuf->fields.sfmt_swapi.f
2345 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2346 int UNUSED written
= 0 ;
2347 IADDR UNUSED pc
= abuf
-> addr
;
2348 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2351 SI opval
= SLLSI ( GET_H_GR ( FLD ( f_GRi
)), ANDSI ( FLD ( f_d12
), 31 ));
2352 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2353 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2360 /* srli: srli$pack $GRi,$s12,$GRk */
2363 SEM_FN_NAME ( frvbf
, srli
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2365 #define FLD(f) abuf->fields.sfmt_swapi.f
2366 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2367 int UNUSED written
= 0 ;
2368 IADDR UNUSED pc
= abuf
-> addr
;
2369 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2372 SI opval
= SRLSI ( GET_H_GR ( FLD ( f_GRi
)), ANDSI ( FLD ( f_d12
), 31 ));
2373 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2374 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2381 /* srai: srai$pack $GRi,$s12,$GRk */
2384 SEM_FN_NAME ( frvbf
, srai
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2386 #define FLD(f) abuf->fields.sfmt_swapi.f
2387 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2388 int UNUSED written
= 0 ;
2389 IADDR UNUSED pc
= abuf
-> addr
;
2390 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2393 SI opval
= SRASI ( GET_H_GR ( FLD ( f_GRi
)), ANDSI ( FLD ( f_d12
), 31 ));
2394 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2395 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2402 /* scani: scani$pack $GRi,$s12,$GRk */
2405 SEM_FN_NAME ( frvbf
, scani
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2407 #define FLD(f) abuf->fields.sfmt_swapi.f
2408 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2409 int UNUSED written
= 0 ;
2410 IADDR UNUSED pc
= abuf
-> addr
;
2411 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2416 tmp_tmp1
= GET_H_GR ( FLD ( f_GRi
));
2417 tmp_tmp2
= SRASI ( FLD ( f_d12
), 1 );
2419 SI opval
= frvbf_scan_result ( current_cpu
, XORSI ( tmp_tmp1
, tmp_tmp2
));
2420 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2421 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2429 /* addicc: addicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2432 SEM_FN_NAME ( frvbf
, addicc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2434 #define FLD(f) abuf->fields.sfmt_addicc.f
2435 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2436 int UNUSED written
= 0 ;
2437 IADDR UNUSED pc
= abuf
-> addr
;
2438 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2444 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
2445 tmp_tmp
= ADDOFSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), 0 );
2446 if ( EQBI ( tmp_tmp
, 0 )) {
2447 tmp_cc
= ANDQI ( tmp_cc
, 13 );
2449 tmp_cc
= ORQI ( tmp_cc
, 2 );
2451 tmp_tmp
= ADDCFSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), 0 );
2452 if ( EQBI ( tmp_tmp
, 0 )) {
2453 tmp_cc
= ANDQI ( tmp_cc
, 14 );
2455 tmp_cc
= ORQI ( tmp_cc
, 1 );
2457 tmp_result
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
));
2458 if ( EQSI ( tmp_result
, 0 )) {
2459 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
2461 if ( LTSI ( tmp_result
, 0 )) {
2462 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
2464 tmp_cc
= ANDQI ( tmp_cc
, 3 );
2468 SI opval
= tmp_result
;
2469 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2470 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2474 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2475 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2483 /* subicc: subicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2486 SEM_FN_NAME ( frvbf
, subicc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2488 #define FLD(f) abuf->fields.sfmt_addicc.f
2489 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2490 int UNUSED written
= 0 ;
2491 IADDR UNUSED pc
= abuf
-> addr
;
2492 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2498 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
2499 tmp_tmp
= SUBOFSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), 0 );
2500 if ( EQBI ( tmp_tmp
, 0 )) {
2501 tmp_cc
= ANDQI ( tmp_cc
, 13 );
2503 tmp_cc
= ORQI ( tmp_cc
, 2 );
2505 tmp_tmp
= SUBCFSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), 0 );
2506 if ( EQBI ( tmp_tmp
, 0 )) {
2507 tmp_cc
= ANDQI ( tmp_cc
, 14 );
2509 tmp_cc
= ORQI ( tmp_cc
, 1 );
2511 tmp_result
= SUBSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
));
2512 if ( EQSI ( tmp_result
, 0 )) {
2513 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
2515 if ( LTSI ( tmp_result
, 0 )) {
2516 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
2518 tmp_cc
= ANDQI ( tmp_cc
, 3 );
2522 SI opval
= tmp_result
;
2523 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2524 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2528 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2529 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2537 /* andicc: andicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2540 SEM_FN_NAME ( frvbf
, andicc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2542 #define FLD(f) abuf->fields.sfmt_addicc.f
2543 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2544 int UNUSED written
= 0 ;
2545 IADDR UNUSED pc
= abuf
-> addr
;
2546 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2550 tmp_tmp
= ANDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
));
2553 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2554 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2556 if ( EQSI ( tmp_tmp
, 0 )) {
2558 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 7 ), 4 );
2559 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2560 written
|= ( 1 << 4 );
2561 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2564 if ( LTSI ( tmp_tmp
, 0 )) {
2566 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 11 ), 8 );
2567 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2568 written
|= ( 1 << 4 );
2569 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2573 UQI opval
= ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 3 );
2574 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2575 written
|= ( 1 << 4 );
2576 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2582 abuf
-> written
= written
;
2587 /* oricc: oricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2590 SEM_FN_NAME ( frvbf
, oricc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2592 #define FLD(f) abuf->fields.sfmt_addicc.f
2593 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2594 int UNUSED written
= 0 ;
2595 IADDR UNUSED pc
= abuf
-> addr
;
2596 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2600 tmp_tmp
= ORSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
));
2603 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2604 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2606 if ( EQSI ( tmp_tmp
, 0 )) {
2608 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 7 ), 4 );
2609 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2610 written
|= ( 1 << 4 );
2611 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2614 if ( LTSI ( tmp_tmp
, 0 )) {
2616 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 11 ), 8 );
2617 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2618 written
|= ( 1 << 4 );
2619 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2623 UQI opval
= ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 3 );
2624 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2625 written
|= ( 1 << 4 );
2626 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2632 abuf
-> written
= written
;
2637 /* xoricc: xoricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2640 SEM_FN_NAME ( frvbf
, xoricc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2642 #define FLD(f) abuf->fields.sfmt_addicc.f
2643 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2644 int UNUSED written
= 0 ;
2645 IADDR UNUSED pc
= abuf
-> addr
;
2646 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2650 tmp_tmp
= XORSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
));
2653 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2654 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2656 if ( EQSI ( tmp_tmp
, 0 )) {
2658 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 7 ), 4 );
2659 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2660 written
|= ( 1 << 4 );
2661 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2664 if ( LTSI ( tmp_tmp
, 0 )) {
2666 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 11 ), 8 );
2667 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2668 written
|= ( 1 << 4 );
2669 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2673 UQI opval
= ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 3 );
2674 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2675 written
|= ( 1 << 4 );
2676 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2682 abuf
-> written
= written
;
2687 /* smulicc: smulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2690 SEM_FN_NAME ( frvbf
, smulicc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2692 #define FLD(f) abuf->fields.sfmt_smulicc.f
2693 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2694 int UNUSED written
= 0 ;
2695 IADDR UNUSED pc
= abuf
-> addr
;
2696 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2701 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
2702 tmp_tmp
= MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( FLD ( f_s10
)));
2703 if ( EQDI ( SRLDI ( tmp_tmp
, 63 ), 0 )) {
2704 tmp_cc
= ANDQI ( tmp_cc
, 7 );
2706 tmp_cc
= ORQI ( tmp_cc
, 8 );
2708 if ( EQBI ( EQDI ( tmp_tmp
, 0 ), 0 )) {
2709 tmp_cc
= ANDQI ( tmp_cc
, 11 );
2711 tmp_cc
= ORQI ( tmp_cc
, 4 );
2715 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
2716 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
2720 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2721 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2729 /* umulicc: umulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2732 SEM_FN_NAME ( frvbf
, umulicc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2734 #define FLD(f) abuf->fields.sfmt_smulicc.f
2735 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2736 int UNUSED written
= 0 ;
2737 IADDR UNUSED pc
= abuf
-> addr
;
2738 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2743 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
2744 tmp_tmp
= MULDI ( ZEXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), ZEXTSIDI ( FLD ( f_s10
)));
2745 if ( EQDI ( SRLDI ( tmp_tmp
, 63 ), 0 )) {
2746 tmp_cc
= ANDQI ( tmp_cc
, 7 );
2748 tmp_cc
= ORQI ( tmp_cc
, 8 );
2750 if ( EQBI ( EQDI ( tmp_tmp
, 0 ), 0 )) {
2751 tmp_cc
= ANDQI ( tmp_cc
, 11 );
2753 tmp_cc
= ORQI ( tmp_cc
, 4 );
2757 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
2758 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
2762 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2763 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2771 /* sllicc: sllicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2774 SEM_FN_NAME ( frvbf
, sllicc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2776 #define FLD(f) abuf->fields.sfmt_addicc.f
2777 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2778 int UNUSED written
= 0 ;
2779 IADDR UNUSED pc
= abuf
-> addr
;
2780 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2786 tmp_shift
= ANDSI ( FLD ( f_s10
), 31 );
2787 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
)]));
2788 tmp_tmp
= SLLSI ( GET_H_GR ( FLD ( f_GRi
)), tmp_shift
);
2791 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2792 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2794 if ( EQSI ( tmp_tmp
, 0 )) {
2795 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
2797 if ( LTSI ( tmp_tmp
, 0 )) {
2798 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
2800 tmp_cc
= ANDQI ( tmp_cc
, 3 );
2805 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2806 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2814 /* srlicc: srlicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2817 SEM_FN_NAME ( frvbf
, srlicc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2819 #define FLD(f) abuf->fields.sfmt_addicc.f
2820 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2821 int UNUSED written
= 0 ;
2822 IADDR UNUSED pc
= abuf
-> addr
;
2823 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2829 tmp_shift
= ANDSI ( FLD ( f_s10
), 31 );
2830 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
)]));
2831 tmp_tmp
= SRLSI ( GET_H_GR ( FLD ( f_GRi
)), tmp_shift
);
2834 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2835 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2837 if ( EQSI ( tmp_tmp
, 0 )) {
2838 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
2840 if ( LTSI ( tmp_tmp
, 0 )) {
2841 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
2843 tmp_cc
= ANDQI ( tmp_cc
, 3 );
2848 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2849 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2857 /* sraicc: sraicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2860 SEM_FN_NAME ( frvbf
, sraicc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2862 #define FLD(f) abuf->fields.sfmt_addicc.f
2863 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2864 int UNUSED written
= 0 ;
2865 IADDR UNUSED pc
= abuf
-> addr
;
2866 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2872 tmp_shift
= ANDSI ( FLD ( f_s10
), 31 );
2873 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
)]));
2874 tmp_tmp
= SRASI ( GET_H_GR ( FLD ( f_GRi
)), tmp_shift
);
2877 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2878 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2880 if ( EQSI ( tmp_tmp
, 0 )) {
2881 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
2883 if ( LTSI ( tmp_tmp
, 0 )) {
2884 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
2886 tmp_cc
= ANDQI ( tmp_cc
, 3 );
2891 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2892 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2900 /* addxi: addxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2903 SEM_FN_NAME ( frvbf
, addxi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2905 #define FLD(f) abuf->fields.sfmt_addicc.f
2906 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2907 int UNUSED written
= 0 ;
2908 IADDR UNUSED pc
= abuf
-> addr
;
2909 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2912 SI opval
= ADDCSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 1 )));
2913 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2914 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2921 /* subxi: subxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2924 SEM_FN_NAME ( frvbf
, subxi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2926 #define FLD(f) abuf->fields.sfmt_addicc.f
2927 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2928 int UNUSED written
= 0 ;
2929 IADDR UNUSED pc
= abuf
-> addr
;
2930 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2933 SI opval
= SUBCSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 1 )));
2934 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2935 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2942 /* addxicc: addxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2945 SEM_FN_NAME ( frvbf
, addxicc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2947 #define FLD(f) abuf->fields.sfmt_addicc.f
2948 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2949 int UNUSED written
= 0 ;
2950 IADDR UNUSED pc
= abuf
-> addr
;
2951 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2956 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
2957 tmp_tmp
= ADDCSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 )));
2958 if ( EQBI ( ADDOFSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 ))), 0 )) {
2959 tmp_cc
= ANDQI ( tmp_cc
, 13 );
2961 tmp_cc
= ORQI ( tmp_cc
, 2 );
2963 if ( EQBI ( ADDCFSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 ))), 0 )) {
2964 tmp_cc
= ANDQI ( tmp_cc
, 14 );
2966 tmp_cc
= ORQI ( tmp_cc
, 1 );
2968 if ( EQSI ( tmp_tmp
, 0 )) {
2969 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
2971 if ( LTSI ( tmp_tmp
, 0 )) {
2972 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
2974 tmp_cc
= ANDQI ( tmp_cc
, 3 );
2979 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2980 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2984 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2985 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2993 /* subxicc: subxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2996 SEM_FN_NAME ( frvbf
, subxicc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2998 #define FLD(f) abuf->fields.sfmt_addicc.f
2999 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3000 int UNUSED written
= 0 ;
3001 IADDR UNUSED pc
= abuf
-> addr
;
3002 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3007 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
3008 tmp_tmp
= SUBCSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 )));
3009 if ( EQBI ( SUBOFSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 ))), 0 )) {
3010 tmp_cc
= ANDQI ( tmp_cc
, 13 );
3012 tmp_cc
= ORQI ( tmp_cc
, 2 );
3014 if ( EQBI ( SUBCFSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 ))), 0 )) {
3015 tmp_cc
= ANDQI ( tmp_cc
, 14 );
3017 tmp_cc
= ORQI ( tmp_cc
, 1 );
3019 if ( EQSI ( tmp_tmp
, 0 )) {
3020 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
3022 if ( LTSI ( tmp_tmp
, 0 )) {
3023 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
3025 tmp_cc
= ANDQI ( tmp_cc
, 3 );
3030 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3031 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3035 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
3036 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
3044 /* cmpb: cmpb$pack $GRi,$GRj,$ICCi_1 */
3047 SEM_FN_NAME ( frvbf
, cmpb
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3049 #define FLD(f) abuf->fields.sfmt_smulcc.f
3050 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3051 int UNUSED written
= 0 ;
3052 IADDR UNUSED pc
= abuf
-> addr
;
3053 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3057 if ( EQBI ( EQSI ( ANDSI ( GET_H_GR ( FLD ( f_GRi
)), 0xff000000 ), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 0xff000000 )), 0 )) {
3058 tmp_cc
= ANDQI ( tmp_cc
, 7 );
3060 tmp_cc
= ORQI ( tmp_cc
, 8 );
3062 if ( EQBI ( EQSI ( ANDSI ( GET_H_GR ( FLD ( f_GRi
)), 16711680 ), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 16711680 )), 0 )) {
3063 tmp_cc
= ANDQI ( tmp_cc
, 11 );
3065 tmp_cc
= ORQI ( tmp_cc
, 4 );
3067 if ( EQBI ( EQSI ( ANDSI ( GET_H_GR ( FLD ( f_GRi
)), 65280 ), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 65280 )), 0 )) {
3068 tmp_cc
= ANDQI ( tmp_cc
, 13 );
3070 tmp_cc
= ORQI ( tmp_cc
, 2 );
3072 if ( EQBI ( EQSI ( ANDSI ( GET_H_GR ( FLD ( f_GRi
)), 255 ), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 255 )), 0 )) {
3073 tmp_cc
= ANDQI ( tmp_cc
, 14 );
3075 tmp_cc
= ORQI ( tmp_cc
, 1 );
3079 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
3080 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
3088 /* cmpba: cmpba$pack $GRi,$GRj,$ICCi_1 */
3091 SEM_FN_NAME ( frvbf
, cmpba
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3093 #define FLD(f) abuf->fields.sfmt_smulcc.f
3094 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3095 int UNUSED written
= 0 ;
3096 IADDR UNUSED pc
= abuf
-> addr
;
3097 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3102 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 )) {
3103 tmp_cc
= ANDQI ( tmp_cc
, 14 );
3105 tmp_cc
= ORQI ( tmp_cc
, 1 );
3109 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
3110 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
3118 /* setlo: setlo$pack $ulo16,$GRklo */
3121 SEM_FN_NAME ( frvbf
, setlo
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3123 #define FLD(f) abuf->fields.sfmt_setlo.f
3124 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3125 int UNUSED written
= 0 ;
3126 IADDR UNUSED pc
= abuf
-> addr
;
3127 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3130 UHI opval
= FLD ( f_u16
);
3131 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_gr_lo_set
, FLD ( f_GRk
), opval
);
3132 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr_lo" , 'x' , opval
);
3139 /* sethi: sethi$pack $uhi16,$GRkhi */
3142 SEM_FN_NAME ( frvbf
, sethi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3144 #define FLD(f) abuf->fields.sfmt_sethi.f
3145 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3146 int UNUSED written
= 0 ;
3147 IADDR UNUSED pc
= abuf
-> addr
;
3148 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3151 UHI opval
= FLD ( f_u16
);
3152 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_gr_hi_set
, FLD ( f_GRk
), opval
);
3153 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr_hi" , 'x' , opval
);
3160 /* setlos: setlos$pack $slo16,$GRk */
3163 SEM_FN_NAME ( frvbf
, setlos
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3165 #define FLD(f) abuf->fields.sfmt_setlos.f
3166 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3167 int UNUSED written
= 0 ;
3168 IADDR UNUSED pc
= abuf
-> addr
;
3169 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3172 SI opval
= FLD ( f_s16
);
3173 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3174 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3181 /* ldsb: ldsb$pack @($GRi,$GRj),$GRk */
3184 SEM_FN_NAME ( frvbf
, ldsb
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3186 #define FLD(f) abuf->fields.sfmt_addcc.f
3187 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3188 int UNUSED written
= 0 ;
3189 IADDR UNUSED pc
= abuf
-> addr
;
3190 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3193 SI opval
= frvbf_read_mem_QI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3194 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3195 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3202 /* ldub: ldub$pack @($GRi,$GRj),$GRk */
3205 SEM_FN_NAME ( frvbf
, ldub
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3207 #define FLD(f) abuf->fields.sfmt_addcc.f
3208 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3209 int UNUSED written
= 0 ;
3210 IADDR UNUSED pc
= abuf
-> addr
;
3211 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3214 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3215 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3216 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3223 /* ldsh: ldsh$pack @($GRi,$GRj),$GRk */
3226 SEM_FN_NAME ( frvbf
, ldsh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3228 #define FLD(f) abuf->fields.sfmt_addcc.f
3229 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3230 int UNUSED written
= 0 ;
3231 IADDR UNUSED pc
= abuf
-> addr
;
3232 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3235 SI opval
= frvbf_read_mem_HI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3236 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3237 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3244 /* lduh: lduh$pack @($GRi,$GRj),$GRk */
3247 SEM_FN_NAME ( frvbf
, lduh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3249 #define FLD(f) abuf->fields.sfmt_addcc.f
3250 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3251 int UNUSED written
= 0 ;
3252 IADDR UNUSED pc
= abuf
-> addr
;
3253 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3256 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3257 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3258 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3265 /* ld: ld$pack $ldann($GRi,$GRj),$GRk */
3268 SEM_FN_NAME ( frvbf
, ld
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3270 #define FLD(f) abuf->fields.sfmt_addcc.f
3271 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3272 int UNUSED written
= 0 ;
3273 IADDR UNUSED pc
= abuf
-> addr
;
3274 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3277 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3278 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3279 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3286 /* ldbf: ldbf$pack @($GRi,$GRj),$FRintk */
3289 SEM_FN_NAME ( frvbf
, ldbf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3291 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3292 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3293 int UNUSED written
= 0 ;
3294 IADDR UNUSED pc
= abuf
-> addr
;
3295 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3298 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3299 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
3300 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
3307 /* ldhf: ldhf$pack @($GRi,$GRj),$FRintk */
3310 SEM_FN_NAME ( frvbf
, ldhf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3312 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3313 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3314 int UNUSED written
= 0 ;
3315 IADDR UNUSED pc
= abuf
-> addr
;
3316 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3319 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3320 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
3321 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
3328 /* ldf: ldf$pack @($GRi,$GRj),$FRintk */
3331 SEM_FN_NAME ( frvbf
, ldf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3333 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3334 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3335 int UNUSED written
= 0 ;
3336 IADDR UNUSED pc
= abuf
-> addr
;
3337 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3340 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3341 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
3342 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
3349 /* ldc: ldc$pack @($GRi,$GRj),$CPRk */
3352 SEM_FN_NAME ( frvbf
, ldc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3354 #define FLD(f) abuf->fields.sfmt_ldcu.f
3355 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3356 int UNUSED written
= 0 ;
3357 IADDR UNUSED pc
= abuf
-> addr
;
3358 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3361 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3362 sim_queue_si_write ( current_cpu
, & CPU ( h_cpr
[ FLD ( f_CPRk
)]), opval
);
3363 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cpr" , 'x' , opval
);
3370 /* nldsb: nldsb$pack @($GRi,$GRj),$GRk */
3373 SEM_FN_NAME ( frvbf
, nldsb
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3375 #define FLD(f) abuf->fields.sfmt_addcc.f
3376 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3377 int UNUSED written
= 0 ;
3378 IADDR UNUSED pc
= abuf
-> addr
;
3379 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3383 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 1 , 0 );
3386 SI opval
= frvbf_read_mem_QI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3387 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3388 written
|= ( 1 << 6 );
3389 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3394 abuf
-> written
= written
;
3399 /* nldub: nldub$pack @($GRi,$GRj),$GRk */
3402 SEM_FN_NAME ( frvbf
, nldub
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3404 #define FLD(f) abuf->fields.sfmt_addcc.f
3405 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3406 int UNUSED written
= 0 ;
3407 IADDR UNUSED pc
= abuf
-> addr
;
3408 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3412 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 0 , 0 );
3415 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3416 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3417 written
|= ( 1 << 6 );
3418 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3423 abuf
-> written
= written
;
3428 /* nldsh: nldsh$pack @($GRi,$GRj),$GRk */
3431 SEM_FN_NAME ( frvbf
, nldsh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3433 #define FLD(f) abuf->fields.sfmt_addcc.f
3434 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3435 int UNUSED written
= 0 ;
3436 IADDR UNUSED pc
= abuf
-> addr
;
3437 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3441 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 3 , 0 );
3444 SI opval
= frvbf_read_mem_HI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3445 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3446 written
|= ( 1 << 6 );
3447 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3452 abuf
-> written
= written
;
3457 /* nlduh: nlduh$pack @($GRi,$GRj),$GRk */
3460 SEM_FN_NAME ( frvbf
, nlduh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3462 #define FLD(f) abuf->fields.sfmt_addcc.f
3463 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3464 int UNUSED written
= 0 ;
3465 IADDR UNUSED pc
= abuf
-> addr
;
3466 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3470 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 2 , 0 );
3473 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3474 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3475 written
|= ( 1 << 6 );
3476 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3481 abuf
-> written
= written
;
3486 /* nld: nld$pack @($GRi,$GRj),$GRk */
3489 SEM_FN_NAME ( frvbf
, nld
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3491 #define FLD(f) abuf->fields.sfmt_addcc.f
3492 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3493 int UNUSED written
= 0 ;
3494 IADDR UNUSED pc
= abuf
-> addr
;
3495 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3499 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 4 , 0 );
3502 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3503 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3504 written
|= ( 1 << 6 );
3505 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3510 abuf
-> written
= written
;
3515 /* nldbf: nldbf$pack @($GRi,$GRj),$FRintk */
3518 SEM_FN_NAME ( frvbf
, nldbf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3520 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3521 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3522 int UNUSED written
= 0 ;
3523 IADDR UNUSED pc
= abuf
-> addr
;
3524 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3528 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_FRk
), 0 , 0 , 1 );
3531 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3532 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
3533 written
|= ( 1 << 6 );
3534 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
3539 abuf
-> written
= written
;
3544 /* nldhf: nldhf$pack @($GRi,$GRj),$FRintk */
3547 SEM_FN_NAME ( frvbf
, nldhf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3549 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3550 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3551 int UNUSED written
= 0 ;
3552 IADDR UNUSED pc
= abuf
-> addr
;
3553 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3557 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_FRk
), 0 , 2 , 1 );
3560 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3561 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
3562 written
|= ( 1 << 6 );
3563 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
3568 abuf
-> written
= written
;
3573 /* nldf: nldf$pack @($GRi,$GRj),$FRintk */
3576 SEM_FN_NAME ( frvbf
, nldf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3578 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3579 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3580 int UNUSED written
= 0 ;
3581 IADDR UNUSED pc
= abuf
-> addr
;
3582 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3586 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_FRk
), 0 , 4 , 1 );
3589 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3590 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
3591 written
|= ( 1 << 6 );
3592 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
3597 abuf
-> written
= written
;
3602 /* ldd: ldd$pack $lddann($GRi,$GRj),$GRdoublek */
3605 SEM_FN_NAME ( frvbf
, ldd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3607 #define FLD(f) abuf->fields.sfmt_smulcc.f
3608 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3609 int UNUSED written
= 0 ;
3610 IADDR UNUSED pc
= abuf
-> addr
;
3611 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3615 if ( NESI ( FLD ( f_GRk
), 0 )) {
3617 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3619 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
3620 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
3621 written
|= ( 1 << 4 );
3622 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
3628 abuf
-> written
= written
;
3633 /* lddf: lddf$pack @($GRi,$GRj),$FRdoublek */
3636 SEM_FN_NAME ( frvbf
, lddf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3638 #define FLD(f) abuf->fields.sfmt_clddfu.f
3639 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3640 int UNUSED written
= 0 ;
3641 IADDR UNUSED pc
= abuf
-> addr
;
3642 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3647 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3649 DF opval
= frvbf_read_mem_DF ( current_cpu
, pc
, tmp_address
);
3650 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
3651 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
3660 /* lddc: lddc$pack @($GRi,$GRj),$CPRdoublek */
3663 SEM_FN_NAME ( frvbf
, lddc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3665 #define FLD(f) abuf->fields.sfmt_lddcu.f
3666 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3667 int UNUSED written
= 0 ;
3668 IADDR UNUSED pc
= abuf
-> addr
;
3669 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3674 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3676 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
3677 sim_queue_fn_di_write ( current_cpu
, frvbf_h_cpr_double_set
, FLD ( f_CPRk
), opval
);
3678 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cpr_double" , 'D' , opval
);
3687 /* nldd: nldd$pack @($GRi,$GRj),$GRdoublek */
3690 SEM_FN_NAME ( frvbf
, nldd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3692 #define FLD(f) abuf->fields.sfmt_smulcc.f
3693 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3694 int UNUSED written
= 0 ;
3695 IADDR UNUSED pc
= abuf
-> addr
;
3696 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3702 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 5 , 0 );
3704 if ( NESI ( FLD ( f_GRk
), 0 )) {
3706 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3708 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
3709 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
3710 written
|= ( 1 << 6 );
3711 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
3719 abuf
-> written
= written
;
3724 /* nlddf: nlddf$pack @($GRi,$GRj),$FRdoublek */
3727 SEM_FN_NAME ( frvbf
, nlddf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3729 #define FLD(f) abuf->fields.sfmt_clddfu.f
3730 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3731 int UNUSED written
= 0 ;
3732 IADDR UNUSED pc
= abuf
-> addr
;
3733 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3739 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_FRk
), 0 , 5 , 1 );
3742 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3744 DF opval
= frvbf_read_mem_DF ( current_cpu
, pc
, tmp_address
);
3745 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
3746 written
|= ( 1 << 6 );
3747 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
3754 abuf
-> written
= written
;
3759 /* ldq: ldq$pack @($GRi,$GRj),$GRk */
3762 SEM_FN_NAME ( frvbf
, ldq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3764 #define FLD(f) abuf->fields.sfmt_smulcc.f
3765 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3766 int UNUSED written
= 0 ;
3767 IADDR UNUSED pc
= abuf
-> addr
;
3768 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3773 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3774 frvbf_load_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
3782 /* ldqf: ldqf$pack @($GRi,$GRj),$FRintk */
3785 SEM_FN_NAME ( frvbf
, ldqf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3787 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3788 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3789 int UNUSED written
= 0 ;
3790 IADDR UNUSED pc
= abuf
-> addr
;
3791 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3796 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3797 frvbf_load_quad_FRint ( current_cpu
, pc
, tmp_address
, FLD ( f_FRk
));
3805 /* ldqc: ldqc$pack @($GRi,$GRj),$CPRk */
3808 SEM_FN_NAME ( frvbf
, ldqc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3810 #define FLD(f) abuf->fields.sfmt_stdcu.f
3811 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3812 int UNUSED written
= 0 ;
3813 IADDR UNUSED pc
= abuf
-> addr
;
3814 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3819 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3820 frvbf_load_quad_CPR ( current_cpu
, pc
, tmp_address
, FLD ( f_CPRk
));
3828 /* nldq: nldq$pack @($GRi,$GRj),$GRk */
3831 SEM_FN_NAME ( frvbf
, nldq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3833 #define FLD(f) abuf->fields.sfmt_smulcc.f
3834 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3835 int UNUSED written
= 0 ;
3836 IADDR UNUSED pc
= abuf
-> addr
;
3837 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3843 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 6 , 0 );
3846 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3847 frvbf_load_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
3857 /* nldqf: nldqf$pack @($GRi,$GRj),$FRintk */
3860 SEM_FN_NAME ( frvbf
, nldqf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3862 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3863 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3864 int UNUSED written
= 0 ;
3865 IADDR UNUSED pc
= abuf
-> addr
;
3866 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3872 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_FRk
), 0 , 6 , 1 );
3875 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3876 frvbf_load_quad_FRint ( current_cpu
, pc
, tmp_address
, FLD ( f_FRk
));
3886 /* ldsbu: ldsbu$pack @($GRi,$GRj),$GRk */
3889 SEM_FN_NAME ( frvbf
, ldsbu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3891 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3892 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3893 int UNUSED written
= 0 ;
3894 IADDR UNUSED pc
= abuf
-> addr
;
3895 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3899 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3901 SI opval
= frvbf_read_mem_QI ( current_cpu
, pc
, tmp_address
);
3902 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3903 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3905 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
3908 SI opval
= tmp_address
;
3909 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
3910 written
|= ( 1 << 5 );
3911 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3913 frvbf_force_update ( current_cpu
);
3918 abuf
-> written
= written
;
3923 /* ldubu: ldubu$pack @($GRi,$GRj),$GRk */
3926 SEM_FN_NAME ( frvbf
, ldubu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3928 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3929 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3930 int UNUSED written
= 0 ;
3931 IADDR UNUSED pc
= abuf
-> addr
;
3932 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3936 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3938 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, tmp_address
);
3939 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3940 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3942 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
3945 SI opval
= tmp_address
;
3946 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
3947 written
|= ( 1 << 5 );
3948 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3950 frvbf_force_update ( current_cpu
);
3955 abuf
-> written
= written
;
3960 /* ldshu: ldshu$pack @($GRi,$GRj),$GRk */
3963 SEM_FN_NAME ( frvbf
, ldshu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3965 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3966 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3967 int UNUSED written
= 0 ;
3968 IADDR UNUSED pc
= abuf
-> addr
;
3969 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3973 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3975 SI opval
= frvbf_read_mem_HI ( current_cpu
, pc
, tmp_address
);
3976 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3977 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3979 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
3982 SI opval
= tmp_address
;
3983 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
3984 written
|= ( 1 << 5 );
3985 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3987 frvbf_force_update ( current_cpu
);
3992 abuf
-> written
= written
;
3997 /* lduhu: lduhu$pack @($GRi,$GRj),$GRk */
4000 SEM_FN_NAME ( frvbf
, lduhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4002 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4003 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4004 int UNUSED written
= 0 ;
4005 IADDR UNUSED pc
= abuf
-> addr
;
4006 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4010 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4012 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, tmp_address
);
4013 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4014 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4016 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4019 SI opval
= tmp_address
;
4020 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4021 written
|= ( 1 << 5 );
4022 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4024 frvbf_force_update ( current_cpu
);
4029 abuf
-> written
= written
;
4034 /* ldu: ldu$pack @($GRi,$GRj),$GRk */
4037 SEM_FN_NAME ( frvbf
, ldu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4039 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4040 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4041 int UNUSED written
= 0 ;
4042 IADDR UNUSED pc
= abuf
-> addr
;
4043 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4047 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4049 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, tmp_address
);
4050 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4051 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4053 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4056 SI opval
= tmp_address
;
4057 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4058 written
|= ( 1 << 5 );
4059 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4061 frvbf_force_update ( current_cpu
);
4066 abuf
-> written
= written
;
4071 /* nldsbu: nldsbu$pack @($GRi,$GRj),$GRk */
4074 SEM_FN_NAME ( frvbf
, nldsbu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4076 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4077 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4078 int UNUSED written
= 0 ;
4079 IADDR UNUSED pc
= abuf
-> addr
;
4080 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4084 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 1 , 0 );
4088 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4090 SI opval
= frvbf_read_mem_QI ( current_cpu
, pc
, tmp_address
);
4091 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4092 written
|= ( 1 << 7 );
4093 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4095 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4098 SI opval
= tmp_address
;
4099 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4100 written
|= ( 1 << 6 );
4101 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4103 frvbf_force_update ( current_cpu
);
4110 abuf
-> written
= written
;
4115 /* nldubu: nldubu$pack @($GRi,$GRj),$GRk */
4118 SEM_FN_NAME ( frvbf
, nldubu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4120 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4121 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4122 int UNUSED written
= 0 ;
4123 IADDR UNUSED pc
= abuf
-> addr
;
4124 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4128 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 0 , 0 );
4132 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4134 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, tmp_address
);
4135 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4136 written
|= ( 1 << 7 );
4137 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4139 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4142 SI opval
= tmp_address
;
4143 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4144 written
|= ( 1 << 6 );
4145 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4147 frvbf_force_update ( current_cpu
);
4154 abuf
-> written
= written
;
4159 /* nldshu: nldshu$pack @($GRi,$GRj),$GRk */
4162 SEM_FN_NAME ( frvbf
, nldshu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4164 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4165 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4166 int UNUSED written
= 0 ;
4167 IADDR UNUSED pc
= abuf
-> addr
;
4168 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4172 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 3 , 0 );
4176 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4178 SI opval
= frvbf_read_mem_HI ( current_cpu
, pc
, tmp_address
);
4179 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4180 written
|= ( 1 << 7 );
4181 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4183 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4186 SI opval
= tmp_address
;
4187 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4188 written
|= ( 1 << 6 );
4189 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4191 frvbf_force_update ( current_cpu
);
4198 abuf
-> written
= written
;
4203 /* nlduhu: nlduhu$pack @($GRi,$GRj),$GRk */
4206 SEM_FN_NAME ( frvbf
, nlduhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4208 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4209 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4210 int UNUSED written
= 0 ;
4211 IADDR UNUSED pc
= abuf
-> addr
;
4212 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4216 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 2 , 0 );
4220 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4222 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, tmp_address
);
4223 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4224 written
|= ( 1 << 7 );
4225 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4227 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4230 SI opval
= tmp_address
;
4231 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4232 written
|= ( 1 << 6 );
4233 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4235 frvbf_force_update ( current_cpu
);
4242 abuf
-> written
= written
;
4247 /* nldu: nldu$pack @($GRi,$GRj),$GRk */
4250 SEM_FN_NAME ( frvbf
, nldu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4252 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4253 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4254 int UNUSED written
= 0 ;
4255 IADDR UNUSED pc
= abuf
-> addr
;
4256 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4260 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 4 , 0 );
4264 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4266 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, tmp_address
);
4267 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4268 written
|= ( 1 << 7 );
4269 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4271 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4274 SI opval
= tmp_address
;
4275 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4276 written
|= ( 1 << 6 );
4277 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4279 frvbf_force_update ( current_cpu
);
4286 abuf
-> written
= written
;
4291 /* ldbfu: ldbfu$pack @($GRi,$GRj),$FRintk */
4294 SEM_FN_NAME ( frvbf
, ldbfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4296 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4297 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4298 int UNUSED written
= 0 ;
4299 IADDR UNUSED pc
= abuf
-> addr
;
4300 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4304 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4306 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, tmp_address
);
4307 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
4308 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
4311 SI opval
= tmp_address
;
4312 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4313 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4315 frvbf_force_update ( current_cpu
);
4322 /* ldhfu: ldhfu$pack @($GRi,$GRj),$FRintk */
4325 SEM_FN_NAME ( frvbf
, ldhfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4327 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4328 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4329 int UNUSED written
= 0 ;
4330 IADDR UNUSED pc
= abuf
-> addr
;
4331 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4335 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4337 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, tmp_address
);
4338 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
4339 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
4342 SI opval
= tmp_address
;
4343 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4344 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4346 frvbf_force_update ( current_cpu
);
4353 /* ldfu: ldfu$pack @($GRi,$GRj),$FRintk */
4356 SEM_FN_NAME ( frvbf
, ldfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4358 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4359 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4360 int UNUSED written
= 0 ;
4361 IADDR UNUSED pc
= abuf
-> addr
;
4362 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4366 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4368 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, tmp_address
);
4369 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
4370 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
4373 SI opval
= tmp_address
;
4374 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4375 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4377 frvbf_force_update ( current_cpu
);
4384 /* ldcu: ldcu$pack @($GRi,$GRj),$CPRk */
4387 SEM_FN_NAME ( frvbf
, ldcu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4389 #define FLD(f) abuf->fields.sfmt_ldcu.f
4390 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4391 int UNUSED written
= 0 ;
4392 IADDR UNUSED pc
= abuf
-> addr
;
4393 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4397 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4399 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, tmp_address
);
4400 sim_queue_si_write ( current_cpu
, & CPU ( h_cpr
[ FLD ( f_CPRk
)]), opval
);
4401 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cpr" , 'x' , opval
);
4404 SI opval
= tmp_address
;
4405 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4406 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4408 frvbf_force_update ( current_cpu
);
4415 /* nldbfu: nldbfu$pack @($GRi,$GRj),$FRintk */
4418 SEM_FN_NAME ( frvbf
, nldbfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4420 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4421 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4422 int UNUSED written
= 0 ;
4423 IADDR UNUSED pc
= abuf
-> addr
;
4424 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4428 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_FRk
), 0 , 0 , 1 );
4432 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4434 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, tmp_address
);
4435 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
4436 written
|= ( 1 << 6 );
4437 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
4440 SI opval
= tmp_address
;
4441 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4442 written
|= ( 1 << 7 );
4443 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4445 frvbf_force_update ( current_cpu
);
4450 abuf
-> written
= written
;
4455 /* nldhfu: nldhfu$pack @($GRi,$GRj),$FRintk */
4458 SEM_FN_NAME ( frvbf
, nldhfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4460 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4461 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4462 int UNUSED written
= 0 ;
4463 IADDR UNUSED pc
= abuf
-> addr
;
4464 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4468 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_FRk
), 0 , 2 , 1 );
4472 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4474 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, tmp_address
);
4475 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
4476 written
|= ( 1 << 6 );
4477 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
4480 SI opval
= tmp_address
;
4481 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4482 written
|= ( 1 << 7 );
4483 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4485 frvbf_force_update ( current_cpu
);
4490 abuf
-> written
= written
;
4495 /* nldfu: nldfu$pack @($GRi,$GRj),$FRintk */
4498 SEM_FN_NAME ( frvbf
, nldfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4500 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4501 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4502 int UNUSED written
= 0 ;
4503 IADDR UNUSED pc
= abuf
-> addr
;
4504 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4508 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_FRk
), 0 , 4 , 1 );
4512 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4514 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, tmp_address
);
4515 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
4516 written
|= ( 1 << 6 );
4517 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
4520 SI opval
= tmp_address
;
4521 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4522 written
|= ( 1 << 7 );
4523 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4525 frvbf_force_update ( current_cpu
);
4530 abuf
-> written
= written
;
4535 /* lddu: lddu$pack @($GRi,$GRj),$GRdoublek */
4538 SEM_FN_NAME ( frvbf
, lddu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4540 #define FLD(f) abuf->fields.sfmt_clddu.f
4541 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4542 int UNUSED written
= 0 ;
4543 IADDR UNUSED pc
= abuf
-> addr
;
4544 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4548 if ( NESI ( FLD ( f_GRk
), 0 )) {
4550 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4552 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
4553 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
4554 written
|= ( 1 << 5 );
4555 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
4559 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4562 SI opval
= tmp_address
;
4563 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4564 written
|= ( 1 << 6 );
4565 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4567 frvbf_force_update ( current_cpu
);
4572 abuf
-> written
= written
;
4577 /* nlddu: nlddu$pack @($GRi,$GRj),$GRdoublek */
4580 SEM_FN_NAME ( frvbf
, nlddu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4582 #define FLD(f) abuf->fields.sfmt_clddu.f
4583 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4584 int UNUSED written
= 0 ;
4585 IADDR UNUSED pc
= abuf
-> addr
;
4586 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4590 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 5 , 0 );
4594 if ( NESI ( FLD ( f_GRk
), 0 )) {
4596 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4598 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
4599 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
4600 written
|= ( 1 << 6 );
4601 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
4605 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4608 SI opval
= tmp_address
;
4609 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4610 written
|= ( 1 << 7 );
4611 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4613 frvbf_force_update ( current_cpu
);
4620 abuf
-> written
= written
;
4625 /* lddfu: lddfu$pack @($GRi,$GRj),$FRdoublek */
4628 SEM_FN_NAME ( frvbf
, lddfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4630 #define FLD(f) abuf->fields.sfmt_clddfu.f
4631 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4632 int UNUSED written
= 0 ;
4633 IADDR UNUSED pc
= abuf
-> addr
;
4634 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4639 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4641 DF opval
= frvbf_read_mem_DF ( current_cpu
, pc
, tmp_address
);
4642 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
4643 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
4647 SI opval
= tmp_address
;
4648 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4649 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4651 frvbf_force_update ( current_cpu
);
4658 /* lddcu: lddcu$pack @($GRi,$GRj),$CPRdoublek */
4661 SEM_FN_NAME ( frvbf
, lddcu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4663 #define FLD(f) abuf->fields.sfmt_lddcu.f
4664 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4665 int UNUSED written
= 0 ;
4666 IADDR UNUSED pc
= abuf
-> addr
;
4667 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4672 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4674 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
4675 sim_queue_fn_di_write ( current_cpu
, frvbf_h_cpr_double_set
, FLD ( f_CPRk
), opval
);
4676 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cpr_double" , 'D' , opval
);
4680 SI opval
= tmp_address
;
4681 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4682 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4684 frvbf_force_update ( current_cpu
);
4691 /* nlddfu: nlddfu$pack @($GRi,$GRj),$FRdoublek */
4694 SEM_FN_NAME ( frvbf
, nlddfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4696 #define FLD(f) abuf->fields.sfmt_clddfu.f
4697 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4698 int UNUSED written
= 0 ;
4699 IADDR UNUSED pc
= abuf
-> addr
;
4700 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4704 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_FRk
), 0 , 5 , 1 );
4709 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4711 DF opval
= frvbf_read_mem_DF ( current_cpu
, pc
, tmp_address
);
4712 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
4713 written
|= ( 1 << 6 );
4714 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
4718 SI opval
= tmp_address
;
4719 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4720 written
|= ( 1 << 7 );
4721 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4723 frvbf_force_update ( current_cpu
);
4728 abuf
-> written
= written
;
4733 /* ldqu: ldqu$pack @($GRi,$GRj),$GRk */
4736 SEM_FN_NAME ( frvbf
, ldqu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4738 #define FLD(f) abuf->fields.sfmt_cstdu.f
4739 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4740 int UNUSED written
= 0 ;
4741 IADDR UNUSED pc
= abuf
-> addr
;
4742 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4747 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4748 frvbf_load_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
4750 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4753 SI opval
= tmp_address
;
4754 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4755 written
|= ( 1 << 5 );
4756 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4758 frvbf_force_update ( current_cpu
);
4763 abuf
-> written
= written
;
4768 /* nldqu: nldqu$pack @($GRi,$GRj),$GRk */
4771 SEM_FN_NAME ( frvbf
, nldqu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4773 #define FLD(f) abuf->fields.sfmt_cstdu.f
4774 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4775 int UNUSED written
= 0 ;
4776 IADDR UNUSED pc
= abuf
-> addr
;
4777 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4781 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 6 , 0 );
4786 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4787 frvbf_load_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
4789 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4792 SI opval
= tmp_address
;
4793 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4794 written
|= ( 1 << 6 );
4795 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4797 frvbf_force_update ( current_cpu
);
4804 abuf
-> written
= written
;
4809 /* ldqfu: ldqfu$pack @($GRi,$GRj),$FRintk */
4812 SEM_FN_NAME ( frvbf
, ldqfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4814 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4815 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4816 int UNUSED written
= 0 ;
4817 IADDR UNUSED pc
= abuf
-> addr
;
4818 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4823 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4824 frvbf_load_quad_FRint ( current_cpu
, pc
, tmp_address
, FLD ( f_FRk
));
4827 SI opval
= tmp_address
;
4828 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4829 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4831 frvbf_force_update ( current_cpu
);
4838 /* ldqcu: ldqcu$pack @($GRi,$GRj),$CPRk */
4841 SEM_FN_NAME ( frvbf
, ldqcu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4843 #define FLD(f) abuf->fields.sfmt_stdcu.f
4844 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4845 int UNUSED written
= 0 ;
4846 IADDR UNUSED pc
= abuf
-> addr
;
4847 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4852 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4853 frvbf_load_quad_CPR ( current_cpu
, pc
, tmp_address
, FLD ( f_CPRk
));
4856 SI opval
= tmp_address
;
4857 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4858 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4860 frvbf_force_update ( current_cpu
);
4867 /* nldqfu: nldqfu$pack @($GRi,$GRj),$FRintk */
4870 SEM_FN_NAME ( frvbf
, nldqfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4872 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4873 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4874 int UNUSED written
= 0 ;
4875 IADDR UNUSED pc
= abuf
-> addr
;
4876 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4880 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_FRk
), 0 , 6 , 1 );
4885 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4886 frvbf_load_quad_FRint ( current_cpu
, pc
, tmp_address
, FLD ( f_FRk
));
4889 SI opval
= tmp_address
;
4890 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4891 written
|= ( 1 << 6 );
4892 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4894 frvbf_force_update ( current_cpu
);
4899 abuf
-> written
= written
;
4904 /* ldsbi: ldsbi$pack @($GRi,$d12),$GRk */
4907 SEM_FN_NAME ( frvbf
, ldsbi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4909 #define FLD(f) abuf->fields.sfmt_swapi.f
4910 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4911 int UNUSED written
= 0 ;
4912 IADDR UNUSED pc
= abuf
-> addr
;
4913 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4916 SI opval
= frvbf_read_mem_QI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
4917 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4918 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4925 /* ldshi: ldshi$pack @($GRi,$d12),$GRk */
4928 SEM_FN_NAME ( frvbf
, ldshi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4930 #define FLD(f) abuf->fields.sfmt_swapi.f
4931 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4932 int UNUSED written
= 0 ;
4933 IADDR UNUSED pc
= abuf
-> addr
;
4934 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4937 SI opval
= frvbf_read_mem_HI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
4938 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4939 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4946 /* ldi: ldi$pack @($GRi,$d12),$GRk */
4949 SEM_FN_NAME ( frvbf
, ldi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4951 #define FLD(f) abuf->fields.sfmt_swapi.f
4952 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4953 int UNUSED written
= 0 ;
4954 IADDR UNUSED pc
= abuf
-> addr
;
4955 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4958 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
4959 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4960 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4967 /* ldubi: ldubi$pack @($GRi,$d12),$GRk */
4970 SEM_FN_NAME ( frvbf
, ldubi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4972 #define FLD(f) abuf->fields.sfmt_swapi.f
4973 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4974 int UNUSED written
= 0 ;
4975 IADDR UNUSED pc
= abuf
-> addr
;
4976 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4979 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
4980 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4981 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4988 /* lduhi: lduhi$pack @($GRi,$d12),$GRk */
4991 SEM_FN_NAME ( frvbf
, lduhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4993 #define FLD(f) abuf->fields.sfmt_swapi.f
4994 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4995 int UNUSED written
= 0 ;
4996 IADDR UNUSED pc
= abuf
-> addr
;
4997 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5000 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5001 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
5002 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5009 /* ldbfi: ldbfi$pack @($GRi,$d12),$FRintk */
5012 SEM_FN_NAME ( frvbf
, ldbfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5014 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5015 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5016 int UNUSED written
= 0 ;
5017 IADDR UNUSED pc
= abuf
-> addr
;
5018 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5021 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5022 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
5023 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
5030 /* ldhfi: ldhfi$pack @($GRi,$d12),$FRintk */
5033 SEM_FN_NAME ( frvbf
, ldhfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5035 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5036 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5037 int UNUSED written
= 0 ;
5038 IADDR UNUSED pc
= abuf
-> addr
;
5039 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5042 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5043 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
5044 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
5051 /* ldfi: ldfi$pack @($GRi,$d12),$FRintk */
5054 SEM_FN_NAME ( frvbf
, ldfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5056 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5057 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5058 int UNUSED written
= 0 ;
5059 IADDR UNUSED pc
= abuf
-> addr
;
5060 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5063 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5064 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
5065 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
5072 /* nldsbi: nldsbi$pack @($GRi,$d12),$GRk */
5075 SEM_FN_NAME ( frvbf
, nldsbi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5077 #define FLD(f) abuf->fields.sfmt_swapi.f
5078 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5079 int UNUSED written
= 0 ;
5080 IADDR UNUSED pc
= abuf
-> addr
;
5081 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5085 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_GRk
), FLD ( f_d12
), 1 , 0 );
5088 SI opval
= frvbf_read_mem_QI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5089 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
5090 written
|= ( 1 << 5 );
5091 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5096 abuf
-> written
= written
;
5101 /* nldubi: nldubi$pack @($GRi,$d12),$GRk */
5104 SEM_FN_NAME ( frvbf
, nldubi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5106 #define FLD(f) abuf->fields.sfmt_swapi.f
5107 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5108 int UNUSED written
= 0 ;
5109 IADDR UNUSED pc
= abuf
-> addr
;
5110 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5114 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_GRk
), FLD ( f_d12
), 0 , 0 );
5117 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5118 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
5119 written
|= ( 1 << 5 );
5120 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5125 abuf
-> written
= written
;
5130 /* nldshi: nldshi$pack @($GRi,$d12),$GRk */
5133 SEM_FN_NAME ( frvbf
, nldshi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5135 #define FLD(f) abuf->fields.sfmt_swapi.f
5136 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5137 int UNUSED written
= 0 ;
5138 IADDR UNUSED pc
= abuf
-> addr
;
5139 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5143 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_GRk
), FLD ( f_d12
), 3 , 0 );
5146 SI opval
= frvbf_read_mem_HI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5147 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
5148 written
|= ( 1 << 5 );
5149 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5154 abuf
-> written
= written
;
5159 /* nlduhi: nlduhi$pack @($GRi,$d12),$GRk */
5162 SEM_FN_NAME ( frvbf
, nlduhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5164 #define FLD(f) abuf->fields.sfmt_swapi.f
5165 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5166 int UNUSED written
= 0 ;
5167 IADDR UNUSED pc
= abuf
-> addr
;
5168 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5172 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_GRk
), FLD ( f_d12
), 2 , 0 );
5175 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5176 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
5177 written
|= ( 1 << 5 );
5178 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5183 abuf
-> written
= written
;
5188 /* nldi: nldi$pack @($GRi,$d12),$GRk */
5191 SEM_FN_NAME ( frvbf
, nldi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5193 #define FLD(f) abuf->fields.sfmt_swapi.f
5194 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5195 int UNUSED written
= 0 ;
5196 IADDR UNUSED pc
= abuf
-> addr
;
5197 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5201 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_GRk
), FLD ( f_d12
), 4 , 0 );
5204 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5205 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
5206 written
|= ( 1 << 5 );
5207 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5212 abuf
-> written
= written
;
5217 /* nldbfi: nldbfi$pack @($GRi,$d12),$FRintk */
5220 SEM_FN_NAME ( frvbf
, nldbfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5222 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5223 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5224 int UNUSED written
= 0 ;
5225 IADDR UNUSED pc
= abuf
-> addr
;
5226 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5230 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_FRk
), FLD ( f_d12
), 0 , 1 );
5233 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5234 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
5235 written
|= ( 1 << 5 );
5236 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
5241 abuf
-> written
= written
;
5246 /* nldhfi: nldhfi$pack @($GRi,$d12),$FRintk */
5249 SEM_FN_NAME ( frvbf
, nldhfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5251 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5252 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5253 int UNUSED written
= 0 ;
5254 IADDR UNUSED pc
= abuf
-> addr
;
5255 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5259 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_FRk
), FLD ( f_d12
), 2 , 1 );
5262 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5263 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
5264 written
|= ( 1 << 5 );
5265 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
5270 abuf
-> written
= written
;
5275 /* nldfi: nldfi$pack @($GRi,$d12),$FRintk */
5278 SEM_FN_NAME ( frvbf
, nldfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5280 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5281 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5282 int UNUSED written
= 0 ;
5283 IADDR UNUSED pc
= abuf
-> addr
;
5284 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5288 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_FRk
), FLD ( f_d12
), 4 , 1 );
5291 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5292 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
5293 written
|= ( 1 << 5 );
5294 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
5299 abuf
-> written
= written
;
5304 /* lddi: lddi$pack @($GRi,$d12),$GRdoublek */
5307 SEM_FN_NAME ( frvbf
, lddi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5309 #define FLD(f) abuf->fields.sfmt_smuli.f
5310 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5311 int UNUSED written
= 0 ;
5312 IADDR UNUSED pc
= abuf
-> addr
;
5313 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5317 if ( NESI ( FLD ( f_GRk
), 0 )) {
5319 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
5321 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
5322 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
5323 written
|= ( 1 << 4 );
5324 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
5330 abuf
-> written
= written
;
5335 /* lddfi: lddfi$pack @($GRi,$d12),$FRdoublek */
5338 SEM_FN_NAME ( frvbf
, lddfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5340 #define FLD(f) abuf->fields.sfmt_lddfi.f
5341 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5342 int UNUSED written
= 0 ;
5343 IADDR UNUSED pc
= abuf
-> addr
;
5344 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5349 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
5351 DF opval
= frvbf_read_mem_DF ( current_cpu
, pc
, tmp_address
);
5352 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
5353 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
5362 /* nlddi: nlddi$pack @($GRi,$d12),$GRdoublek */
5365 SEM_FN_NAME ( frvbf
, nlddi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5367 #define FLD(f) abuf->fields.sfmt_smuli.f
5368 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5369 int UNUSED written
= 0 ;
5370 IADDR UNUSED pc
= abuf
-> addr
;
5371 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5377 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_GRk
), FLD ( f_d12
), 5 , 0 );
5379 if ( NESI ( FLD ( f_GRk
), 0 )) {
5381 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
5383 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
5384 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
5385 written
|= ( 1 << 5 );
5386 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
5394 abuf
-> written
= written
;
5399 /* nlddfi: nlddfi$pack @($GRi,$d12),$FRdoublek */
5402 SEM_FN_NAME ( frvbf
, nlddfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5404 #define FLD(f) abuf->fields.sfmt_lddfi.f
5405 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5406 int UNUSED written
= 0 ;
5407 IADDR UNUSED pc
= abuf
-> addr
;
5408 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5414 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_FRk
), FLD ( f_d12
), 5 , 1 );
5417 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
5419 DF opval
= frvbf_read_mem_DF ( current_cpu
, pc
, tmp_address
);
5420 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
5421 written
|= ( 1 << 5 );
5422 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
5429 abuf
-> written
= written
;
5434 /* ldqi: ldqi$pack @($GRi,$d12),$GRk */
5437 SEM_FN_NAME ( frvbf
, ldqi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5439 #define FLD(f) abuf->fields.sfmt_stdi.f
5440 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5441 int UNUSED written
= 0 ;
5442 IADDR UNUSED pc
= abuf
-> addr
;
5443 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5448 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
5449 frvbf_load_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
5457 /* ldqfi: ldqfi$pack @($GRi,$d12),$FRintk */
5460 SEM_FN_NAME ( frvbf
, ldqfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5462 #define FLD(f) abuf->fields.sfmt_stdfi.f
5463 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5464 int UNUSED written
= 0 ;
5465 IADDR UNUSED pc
= abuf
-> addr
;
5466 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5471 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
5472 frvbf_load_quad_FRint ( current_cpu
, pc
, tmp_address
, FLD ( f_FRk
));
5480 /* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
5483 SEM_FN_NAME ( frvbf
, nldqfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5485 #define FLD(f) abuf->fields.sfmt_stdfi.f
5486 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5487 int UNUSED written
= 0 ;
5488 IADDR UNUSED pc
= abuf
-> addr
;
5489 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5495 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_FRk
), FLD ( f_d12
), 6 , 1 );
5498 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
5499 frvbf_load_quad_FRint ( current_cpu
, pc
, tmp_address
, FLD ( f_FRk
));
5509 /* stb: stb$pack $GRk,@($GRi,$GRj) */
5512 SEM_FN_NAME ( frvbf
, stb
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5514 #define FLD(f) abuf->fields.sfmt_cswap.f
5515 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5516 int UNUSED written
= 0 ;
5517 IADDR UNUSED pc
= abuf
-> addr
;
5518 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5520 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
)));
5526 /* sth: sth$pack $GRk,@($GRi,$GRj) */
5529 SEM_FN_NAME ( frvbf
, sth
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5531 #define FLD(f) abuf->fields.sfmt_cswap.f
5532 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5533 int UNUSED written
= 0 ;
5534 IADDR UNUSED pc
= abuf
-> addr
;
5535 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5537 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
)));
5543 /* st: st$pack $GRk,@($GRi,$GRj) */
5546 SEM_FN_NAME ( frvbf
, st
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5548 #define FLD(f) abuf->fields.sfmt_cswap.f
5549 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5550 int UNUSED written
= 0 ;
5551 IADDR UNUSED pc
= abuf
-> addr
;
5552 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5554 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
)));
5560 /* stbf: stbf$pack $FRintk,@($GRi,$GRj) */
5563 SEM_FN_NAME ( frvbf
, stbf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5565 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5566 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5567 int UNUSED written
= 0 ;
5568 IADDR UNUSED pc
= abuf
-> addr
;
5569 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5571 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
)));
5577 /* sthf: sthf$pack $FRintk,@($GRi,$GRj) */
5580 SEM_FN_NAME ( frvbf
, sthf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5582 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5583 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5584 int UNUSED written
= 0 ;
5585 IADDR UNUSED pc
= abuf
-> addr
;
5586 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5588 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
)));
5594 /* stf: stf$pack $FRintk,@($GRi,$GRj) */
5597 SEM_FN_NAME ( frvbf
, stf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5599 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5600 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5601 int UNUSED written
= 0 ;
5602 IADDR UNUSED pc
= abuf
-> addr
;
5603 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5605 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
)));
5611 /* stc: stc$pack $CPRk,@($GRi,$GRj) */
5614 SEM_FN_NAME ( frvbf
, stc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5616 #define FLD(f) abuf->fields.sfmt_stcu.f
5617 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5618 int UNUSED written
= 0 ;
5619 IADDR UNUSED pc
= abuf
-> addr
;
5620 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5622 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
)]));
5628 /* std: std$pack $GRdoublek,@($GRi,$GRj) */
5631 SEM_FN_NAME ( frvbf
, std
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5633 #define FLD(f) abuf->fields.sfmt_cstdu.f
5634 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5635 int UNUSED written
= 0 ;
5636 IADDR UNUSED pc
= abuf
-> addr
;
5637 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5642 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5643 frvbf_write_mem_DI ( current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE ( FLD ( f_GRk
)));
5651 /* stdf: stdf$pack $FRdoublek,@($GRi,$GRj) */
5654 SEM_FN_NAME ( frvbf
, stdf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5656 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5657 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5658 int UNUSED written
= 0 ;
5659 IADDR UNUSED pc
= abuf
-> addr
;
5660 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5665 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5666 frvbf_write_mem_DF ( current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE ( FLD ( f_FRk
)));
5674 /* stdc: stdc$pack $CPRdoublek,@($GRi,$GRj) */
5677 SEM_FN_NAME ( frvbf
, stdc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5679 #define FLD(f) abuf->fields.sfmt_stdcu.f
5680 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5681 int UNUSED written
= 0 ;
5682 IADDR UNUSED pc
= abuf
-> addr
;
5683 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5688 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5689 frvbf_write_mem_DI ( current_cpu
, pc
, tmp_address
, GET_H_CPR_DOUBLE ( FLD ( f_CPRk
)));
5697 /* stq: stq$pack $GRk,@($GRi,$GRj) */
5700 SEM_FN_NAME ( frvbf
, stq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5702 #define FLD(f) abuf->fields.sfmt_smulcc.f
5703 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5704 int UNUSED written
= 0 ;
5705 IADDR UNUSED pc
= abuf
-> addr
;
5706 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5711 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5712 frvbf_store_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
5720 /* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5723 SEM_FN_NAME ( frvbf
, stqf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5725 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5726 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5727 int UNUSED written
= 0 ;
5728 IADDR UNUSED pc
= abuf
-> addr
;
5729 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5734 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5735 frvbf_store_quad_FRint ( current_cpu
, pc
, tmp_address
, FLD ( f_FRk
));
5743 /* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5746 SEM_FN_NAME ( frvbf
, stqc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5748 #define FLD(f) abuf->fields.sfmt_stdcu.f
5749 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5750 int UNUSED written
= 0 ;
5751 IADDR UNUSED pc
= abuf
-> addr
;
5752 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5757 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5758 frvbf_store_quad_CPR ( current_cpu
, pc
, tmp_address
, FLD ( f_CPRk
));
5766 /* stbu: stbu$pack $GRk,@($GRi,$GRj) */
5769 SEM_FN_NAME ( frvbf
, stbu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5771 #define FLD(f) abuf->fields.sfmt_cstbu.f
5772 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5773 int UNUSED written
= 0 ;
5774 IADDR UNUSED pc
= abuf
-> addr
;
5775 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5779 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5780 frvbf_write_mem_QI ( current_cpu
, pc
, tmp_address
, GET_H_GR ( FLD ( f_GRk
)));
5782 SI opval
= tmp_address
;
5783 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5784 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5792 /* sthu: sthu$pack $GRk,@($GRi,$GRj) */
5795 SEM_FN_NAME ( frvbf
, sthu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5797 #define FLD(f) abuf->fields.sfmt_cstbu.f
5798 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5799 int UNUSED written
= 0 ;
5800 IADDR UNUSED pc
= abuf
-> addr
;
5801 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5805 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5806 frvbf_write_mem_HI ( current_cpu
, pc
, tmp_address
, GET_H_GR ( FLD ( f_GRk
)));
5808 SI opval
= tmp_address
;
5809 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5810 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5818 /* stu: stu$pack $GRk,@($GRi,$GRj) */
5821 SEM_FN_NAME ( frvbf
, stu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5823 #define FLD(f) abuf->fields.sfmt_cstbu.f
5824 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5825 int UNUSED written
= 0 ;
5826 IADDR UNUSED pc
= abuf
-> addr
;
5827 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5831 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5832 frvbf_write_mem_WI ( current_cpu
, pc
, tmp_address
, GET_H_GR ( FLD ( f_GRk
)));
5834 SI opval
= tmp_address
;
5835 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5836 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5844 /* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
5847 SEM_FN_NAME ( frvbf
, stbfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5849 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5850 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5851 int UNUSED written
= 0 ;
5852 IADDR UNUSED pc
= abuf
-> addr
;
5853 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5857 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5858 frvbf_write_mem_QI ( current_cpu
, pc
, tmp_address
, GET_H_FR_INT ( FLD ( f_FRk
)));
5860 SI opval
= tmp_address
;
5861 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5862 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5870 /* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
5873 SEM_FN_NAME ( frvbf
, sthfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5875 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5876 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5877 int UNUSED written
= 0 ;
5878 IADDR UNUSED pc
= abuf
-> addr
;
5879 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5883 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5884 frvbf_write_mem_HI ( current_cpu
, pc
, tmp_address
, GET_H_FR_INT ( FLD ( f_FRk
)));
5886 SI opval
= tmp_address
;
5887 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5888 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5896 /* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
5899 SEM_FN_NAME ( frvbf
, stfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5901 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5902 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5903 int UNUSED written
= 0 ;
5904 IADDR UNUSED pc
= abuf
-> addr
;
5905 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5909 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5910 frvbf_write_mem_SI ( current_cpu
, pc
, tmp_address
, GET_H_FR_INT ( FLD ( f_FRk
)));
5912 SI opval
= tmp_address
;
5913 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5914 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5922 /* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
5925 SEM_FN_NAME ( frvbf
, stcu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5927 #define FLD(f) abuf->fields.sfmt_stcu.f
5928 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5929 int UNUSED written
= 0 ;
5930 IADDR UNUSED pc
= abuf
-> addr
;
5931 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5935 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5936 frvbf_write_mem_SI ( current_cpu
, pc
, tmp_address
, CPU ( h_cpr
[ FLD ( f_CPRk
)]));
5938 SI opval
= tmp_address
;
5939 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5940 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5948 /* stdu: stdu$pack $GRdoublek,@($GRi,$GRj) */
5951 SEM_FN_NAME ( frvbf
, stdu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5953 #define FLD(f) abuf->fields.sfmt_cstdu.f
5954 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5955 int UNUSED written
= 0 ;
5956 IADDR UNUSED pc
= abuf
-> addr
;
5957 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5962 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5963 frvbf_write_mem_DI ( current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE ( FLD ( f_GRk
)));
5966 SI opval
= tmp_address
;
5967 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5968 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5976 /* stdfu: stdfu$pack $FRdoublek,@($GRi,$GRj) */
5979 SEM_FN_NAME ( frvbf
, stdfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5981 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5982 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5983 int UNUSED written
= 0 ;
5984 IADDR UNUSED pc
= abuf
-> addr
;
5985 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5990 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5991 frvbf_write_mem_DF ( current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE ( FLD ( f_FRk
)));
5994 SI opval
= tmp_address
;
5995 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5996 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6004 /* stdcu: stdcu$pack $CPRdoublek,@($GRi,$GRj) */
6007 SEM_FN_NAME ( frvbf
, stdcu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6009 #define FLD(f) abuf->fields.sfmt_stdcu.f
6010 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6011 int UNUSED written
= 0 ;
6012 IADDR UNUSED pc
= abuf
-> addr
;
6013 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6018 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6019 frvbf_write_mem_DI ( current_cpu
, pc
, tmp_address
, GET_H_CPR_DOUBLE ( FLD ( f_CPRk
)));
6022 SI opval
= tmp_address
;
6023 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6024 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6032 /* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6035 SEM_FN_NAME ( frvbf
, stqu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6037 #define FLD(f) abuf->fields.sfmt_cstdu.f
6038 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6039 int UNUSED written
= 0 ;
6040 IADDR UNUSED pc
= abuf
-> addr
;
6041 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6046 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6047 frvbf_store_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
6050 SI opval
= tmp_address
;
6051 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6052 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6060 /* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6063 SEM_FN_NAME ( frvbf
, stqfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6065 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6066 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6067 int UNUSED written
= 0 ;
6068 IADDR UNUSED pc
= abuf
-> addr
;
6069 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6074 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6075 frvbf_store_quad_FRint ( current_cpu
, pc
, tmp_address
, FLD ( f_FRk
));
6078 SI opval
= tmp_address
;
6079 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6080 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6088 /* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6091 SEM_FN_NAME ( frvbf
, stqcu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6093 #define FLD(f) abuf->fields.sfmt_stdcu.f
6094 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6095 int UNUSED written
= 0 ;
6096 IADDR UNUSED pc
= abuf
-> addr
;
6097 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6102 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6103 frvbf_store_quad_CPR ( current_cpu
, pc
, tmp_address
, FLD ( f_CPRk
));
6106 SI opval
= tmp_address
;
6107 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6108 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6116 /* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6119 SEM_FN_NAME ( frvbf
, cldsb
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6121 #define FLD(f) abuf->fields.sfmt_cswap.f
6122 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6123 int UNUSED written
= 0 ;
6124 IADDR UNUSED pc
= abuf
-> addr
;
6125 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6127 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6129 SI opval
= frvbf_read_mem_QI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6130 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6131 written
|= ( 1 << 5 );
6132 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6136 abuf
-> written
= written
;
6141 /* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6144 SEM_FN_NAME ( frvbf
, cldub
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6146 #define FLD(f) abuf->fields.sfmt_cswap.f
6147 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6148 int UNUSED written
= 0 ;
6149 IADDR UNUSED pc
= abuf
-> addr
;
6150 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6152 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6154 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6155 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6156 written
|= ( 1 << 5 );
6157 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6161 abuf
-> written
= written
;
6166 /* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6169 SEM_FN_NAME ( frvbf
, cldsh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6171 #define FLD(f) abuf->fields.sfmt_cswap.f
6172 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6173 int UNUSED written
= 0 ;
6174 IADDR UNUSED pc
= abuf
-> addr
;
6175 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6177 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6179 SI opval
= frvbf_read_mem_HI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6180 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6181 written
|= ( 1 << 5 );
6182 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6186 abuf
-> written
= written
;
6191 /* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6194 SEM_FN_NAME ( frvbf
, clduh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6196 #define FLD(f) abuf->fields.sfmt_cswap.f
6197 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6198 int UNUSED written
= 0 ;
6199 IADDR UNUSED pc
= abuf
-> addr
;
6200 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6202 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6204 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6205 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6206 written
|= ( 1 << 5 );
6207 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6211 abuf
-> written
= written
;
6216 /* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6219 SEM_FN_NAME ( frvbf
, cld
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6221 #define FLD(f) abuf->fields.sfmt_cswap.f
6222 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6223 int UNUSED written
= 0 ;
6224 IADDR UNUSED pc
= abuf
-> addr
;
6225 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6227 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6229 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6230 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6231 written
|= ( 1 << 5 );
6232 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6236 abuf
-> written
= written
;
6241 /* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6244 SEM_FN_NAME ( frvbf
, cldbf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6246 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6247 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6248 int UNUSED written
= 0 ;
6249 IADDR UNUSED pc
= abuf
-> addr
;
6250 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6252 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6254 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6255 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
6256 written
|= ( 1 << 5 );
6257 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
6261 abuf
-> written
= written
;
6266 /* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6269 SEM_FN_NAME ( frvbf
, cldhf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6271 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6272 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6273 int UNUSED written
= 0 ;
6274 IADDR UNUSED pc
= abuf
-> addr
;
6275 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6277 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6279 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6280 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
6281 written
|= ( 1 << 5 );
6282 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
6286 abuf
-> written
= written
;
6291 /* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6294 SEM_FN_NAME ( frvbf
, cldf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6296 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6297 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6298 int UNUSED written
= 0 ;
6299 IADDR UNUSED pc
= abuf
-> addr
;
6300 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6302 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6304 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6305 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
6306 written
|= ( 1 << 5 );
6307 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
6311 abuf
-> written
= written
;
6316 /* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6319 SEM_FN_NAME ( frvbf
, cldd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6321 #define FLD(f) abuf->fields.sfmt_clddu.f
6322 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6323 int UNUSED written
= 0 ;
6324 IADDR UNUSED pc
= abuf
-> addr
;
6325 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6327 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6330 if ( NESI ( FLD ( f_GRk
), 0 )) {
6332 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6334 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
6335 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
6336 written
|= ( 1 << 6 );
6337 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
6344 abuf
-> written
= written
;
6349 /* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6352 SEM_FN_NAME ( frvbf
, clddf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6354 #define FLD(f) abuf->fields.sfmt_clddfu.f
6355 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6356 int UNUSED written
= 0 ;
6357 IADDR UNUSED pc
= abuf
-> addr
;
6358 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6360 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6364 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6366 DF opval
= frvbf_read_mem_DF ( current_cpu
, pc
, tmp_address
);
6367 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
6368 written
|= ( 1 << 5 );
6369 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
6375 abuf
-> written
= written
;
6380 /* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6383 SEM_FN_NAME ( frvbf
, cldq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6385 #define FLD(f) abuf->fields.sfmt_cswap.f
6386 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6387 int UNUSED written
= 0 ;
6388 IADDR UNUSED pc
= abuf
-> addr
;
6389 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6391 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6395 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6396 frvbf_load_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
6405 /* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6408 SEM_FN_NAME ( frvbf
, cldsbu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6410 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6411 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6412 int UNUSED written
= 0 ;
6413 IADDR UNUSED pc
= abuf
-> addr
;
6414 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6416 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6419 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6421 SI opval
= frvbf_read_mem_QI ( current_cpu
, pc
, tmp_address
);
6422 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6423 written
|= ( 1 << 8 );
6424 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6426 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
6428 SI opval
= tmp_address
;
6429 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6430 written
|= ( 1 << 7 );
6431 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6437 abuf
-> written
= written
;
6442 /* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6445 SEM_FN_NAME ( frvbf
, cldubu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6447 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6448 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6449 int UNUSED written
= 0 ;
6450 IADDR UNUSED pc
= abuf
-> addr
;
6451 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6453 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6456 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6458 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, tmp_address
);
6459 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6460 written
|= ( 1 << 8 );
6461 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6463 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
6465 SI opval
= tmp_address
;
6466 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6467 written
|= ( 1 << 7 );
6468 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6474 abuf
-> written
= written
;
6479 /* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6482 SEM_FN_NAME ( frvbf
, cldshu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6484 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6485 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6486 int UNUSED written
= 0 ;
6487 IADDR UNUSED pc
= abuf
-> addr
;
6488 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6490 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6493 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6495 SI opval
= frvbf_read_mem_HI ( current_cpu
, pc
, tmp_address
);
6496 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6497 written
|= ( 1 << 8 );
6498 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6500 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
6502 SI opval
= tmp_address
;
6503 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6504 written
|= ( 1 << 7 );
6505 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6511 abuf
-> written
= written
;
6516 /* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6519 SEM_FN_NAME ( frvbf
, clduhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6521 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6522 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6523 int UNUSED written
= 0 ;
6524 IADDR UNUSED pc
= abuf
-> addr
;
6525 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6527 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6530 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6532 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, tmp_address
);
6533 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6534 written
|= ( 1 << 8 );
6535 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6537 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
6539 SI opval
= tmp_address
;
6540 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6541 written
|= ( 1 << 7 );
6542 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6548 abuf
-> written
= written
;
6553 /* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6556 SEM_FN_NAME ( frvbf
, cldu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6558 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6559 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6560 int UNUSED written
= 0 ;
6561 IADDR UNUSED pc
= abuf
-> addr
;
6562 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6564 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6567 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6569 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, tmp_address
);
6570 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6571 written
|= ( 1 << 8 );
6572 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6574 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
6576 SI opval
= tmp_address
;
6577 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6578 written
|= ( 1 << 7 );
6579 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6585 abuf
-> written
= written
;
6590 /* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6593 SEM_FN_NAME ( frvbf
, cldbfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6595 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6596 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6597 int UNUSED written
= 0 ;
6598 IADDR UNUSED pc
= abuf
-> addr
;
6599 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6601 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6604 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6606 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, tmp_address
);
6607 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
6608 written
|= ( 1 << 5 );
6609 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
6612 SI opval
= tmp_address
;
6613 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6614 written
|= ( 1 << 6 );
6615 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6620 abuf
-> written
= written
;
6625 /* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6628 SEM_FN_NAME ( frvbf
, cldhfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6630 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6631 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6632 int UNUSED written
= 0 ;
6633 IADDR UNUSED pc
= abuf
-> addr
;
6634 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6636 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6639 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6641 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, tmp_address
);
6642 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
6643 written
|= ( 1 << 5 );
6644 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
6647 SI opval
= tmp_address
;
6648 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6649 written
|= ( 1 << 6 );
6650 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6655 abuf
-> written
= written
;
6660 /* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6663 SEM_FN_NAME ( frvbf
, cldfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6665 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6666 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6667 int UNUSED written
= 0 ;
6668 IADDR UNUSED pc
= abuf
-> addr
;
6669 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6671 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6674 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6676 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, tmp_address
);
6677 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
6678 written
|= ( 1 << 5 );
6679 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
6682 SI opval
= tmp_address
;
6683 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6684 written
|= ( 1 << 6 );
6685 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6690 abuf
-> written
= written
;
6695 /* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6698 SEM_FN_NAME ( frvbf
, clddu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6700 #define FLD(f) abuf->fields.sfmt_clddu.f
6701 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6702 int UNUSED written
= 0 ;
6703 IADDR UNUSED pc
= abuf
-> addr
;
6704 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6706 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6709 if ( NESI ( FLD ( f_GRk
), 0 )) {
6711 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6713 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
6714 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
6715 written
|= ( 1 << 7 );
6716 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
6720 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
6722 SI opval
= tmp_address
;
6723 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6724 written
|= ( 1 << 8 );
6725 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6731 abuf
-> written
= written
;
6736 /* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6739 SEM_FN_NAME ( frvbf
, clddfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6741 #define FLD(f) abuf->fields.sfmt_clddfu.f
6742 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6743 int UNUSED written
= 0 ;
6744 IADDR UNUSED pc
= abuf
-> addr
;
6745 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6747 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6751 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6753 DF opval
= frvbf_read_mem_DF ( current_cpu
, pc
, tmp_address
);
6754 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
6755 written
|= ( 1 << 5 );
6756 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
6760 SI opval
= tmp_address
;
6761 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6762 written
|= ( 1 << 6 );
6763 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6768 abuf
-> written
= written
;
6773 /* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6776 SEM_FN_NAME ( frvbf
, cldqu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6778 #define FLD(f) abuf->fields.sfmt_cstdu.f
6779 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6780 int UNUSED written
= 0 ;
6781 IADDR UNUSED pc
= abuf
-> addr
;
6782 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6784 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6788 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6789 frvbf_load_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
6791 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
6793 SI opval
= tmp_address
;
6794 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6795 written
|= ( 1 << 7 );
6796 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6802 abuf
-> written
= written
;
6807 /* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6810 SEM_FN_NAME ( frvbf
, cstb
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6812 #define FLD(f) abuf->fields.sfmt_cswap.f
6813 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6814 int UNUSED written
= 0 ;
6815 IADDR UNUSED pc
= abuf
-> addr
;
6816 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6818 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6819 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
)));
6826 /* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6829 SEM_FN_NAME ( frvbf
, csth
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6831 #define FLD(f) abuf->fields.sfmt_cswap.f
6832 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6833 int UNUSED written
= 0 ;
6834 IADDR UNUSED pc
= abuf
-> addr
;
6835 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6837 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6838 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
)));
6845 /* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6848 SEM_FN_NAME ( frvbf
, cst
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6850 #define FLD(f) abuf->fields.sfmt_cswap.f
6851 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6852 int UNUSED written
= 0 ;
6853 IADDR UNUSED pc
= abuf
-> addr
;
6854 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6856 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6857 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
)));
6864 /* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6867 SEM_FN_NAME ( frvbf
, cstbf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6869 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6870 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6871 int UNUSED written
= 0 ;
6872 IADDR UNUSED pc
= abuf
-> addr
;
6873 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6875 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6876 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
)));
6883 /* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6886 SEM_FN_NAME ( frvbf
, csthf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6888 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6889 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6890 int UNUSED written
= 0 ;
6891 IADDR UNUSED pc
= abuf
-> addr
;
6892 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6894 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6895 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
)));
6902 /* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6905 SEM_FN_NAME ( frvbf
, cstf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6907 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6908 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6909 int UNUSED written
= 0 ;
6910 IADDR UNUSED pc
= abuf
-> addr
;
6911 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6913 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6914 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
)));
6921 /* cstd: cstd$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
6924 SEM_FN_NAME ( frvbf
, cstd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6926 #define FLD(f) abuf->fields.sfmt_cstdu.f
6927 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6928 int UNUSED written
= 0 ;
6929 IADDR UNUSED pc
= abuf
-> addr
;
6930 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6932 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6936 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6937 frvbf_write_mem_DI ( current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE ( FLD ( f_GRk
)));
6946 /* cstdf: cstdf$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
6949 SEM_FN_NAME ( frvbf
, cstdf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6951 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6952 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6953 int UNUSED written
= 0 ;
6954 IADDR UNUSED pc
= abuf
-> addr
;
6955 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6957 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6961 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6962 frvbf_write_mem_DF ( current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE ( FLD ( f_FRk
)));
6971 /* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6974 SEM_FN_NAME ( frvbf
, cstq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6976 #define FLD(f) abuf->fields.sfmt_cswap.f
6977 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6978 int UNUSED written
= 0 ;
6979 IADDR UNUSED pc
= abuf
-> addr
;
6980 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6982 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6986 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6987 frvbf_store_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
6996 /* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6999 SEM_FN_NAME ( frvbf
, cstbu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7001 #define FLD(f) abuf->fields.sfmt_cstbu.f
7002 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7003 int UNUSED written
= 0 ;
7004 IADDR UNUSED pc
= abuf
-> addr
;
7005 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7007 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7010 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7011 frvbf_write_mem_QI ( current_cpu
, pc
, tmp_address
, GET_H_GR ( FLD ( f_GRk
)));
7013 SI opval
= tmp_address
;
7014 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7015 written
|= ( 1 << 6 );
7016 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7021 abuf
-> written
= written
;
7026 /* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7029 SEM_FN_NAME ( frvbf
, csthu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7031 #define FLD(f) abuf->fields.sfmt_cstbu.f
7032 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7033 int UNUSED written
= 0 ;
7034 IADDR UNUSED pc
= abuf
-> addr
;
7035 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7037 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7040 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7041 frvbf_write_mem_HI ( current_cpu
, pc
, tmp_address
, GET_H_GR ( FLD ( f_GRk
)));
7043 SI opval
= tmp_address
;
7044 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7045 written
|= ( 1 << 6 );
7046 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7051 abuf
-> written
= written
;
7056 /* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7059 SEM_FN_NAME ( frvbf
, cstu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7061 #define FLD(f) abuf->fields.sfmt_cstbu.f
7062 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7063 int UNUSED written
= 0 ;
7064 IADDR UNUSED pc
= abuf
-> addr
;
7065 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7067 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7070 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7071 frvbf_write_mem_SI ( current_cpu
, pc
, tmp_address
, GET_H_GR ( FLD ( f_GRk
)));
7073 SI opval
= tmp_address
;
7074 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7075 written
|= ( 1 << 6 );
7076 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7081 abuf
-> written
= written
;
7086 /* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7089 SEM_FN_NAME ( frvbf
, cstbfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7091 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7092 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7093 int UNUSED written
= 0 ;
7094 IADDR UNUSED pc
= abuf
-> addr
;
7095 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7097 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7100 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7101 frvbf_write_mem_QI ( current_cpu
, pc
, tmp_address
, GET_H_FR_INT ( FLD ( f_FRk
)));
7103 SI opval
= tmp_address
;
7104 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7105 written
|= ( 1 << 6 );
7106 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7111 abuf
-> written
= written
;
7116 /* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7119 SEM_FN_NAME ( frvbf
, csthfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7121 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7122 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7123 int UNUSED written
= 0 ;
7124 IADDR UNUSED pc
= abuf
-> addr
;
7125 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7127 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7130 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7131 frvbf_write_mem_HI ( current_cpu
, pc
, tmp_address
, GET_H_FR_INT ( FLD ( f_FRk
)));
7133 SI opval
= tmp_address
;
7134 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7135 written
|= ( 1 << 6 );
7136 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7141 abuf
-> written
= written
;
7146 /* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7149 SEM_FN_NAME ( frvbf
, cstfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7151 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7152 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7153 int UNUSED written
= 0 ;
7154 IADDR UNUSED pc
= abuf
-> addr
;
7155 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7157 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7160 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7161 frvbf_write_mem_SI ( current_cpu
, pc
, tmp_address
, GET_H_FR_INT ( FLD ( f_FRk
)));
7163 SI opval
= tmp_address
;
7164 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7165 written
|= ( 1 << 6 );
7166 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7171 abuf
-> written
= written
;
7176 /* cstdu: cstdu$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
7179 SEM_FN_NAME ( frvbf
, cstdu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7181 #define FLD(f) abuf->fields.sfmt_cstdu.f
7182 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7183 int UNUSED written
= 0 ;
7184 IADDR UNUSED pc
= abuf
-> addr
;
7185 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7187 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7191 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7192 frvbf_write_mem_DI ( current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE ( FLD ( f_GRk
)));
7195 SI opval
= tmp_address
;
7196 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7197 written
|= ( 1 << 6 );
7198 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7203 abuf
-> written
= written
;
7208 /* cstdfu: cstdfu$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
7211 SEM_FN_NAME ( frvbf
, cstdfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7213 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7214 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7215 int UNUSED written
= 0 ;
7216 IADDR UNUSED pc
= abuf
-> addr
;
7217 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7219 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7223 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7224 frvbf_write_mem_DF ( current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE ( FLD ( f_FRk
)));
7227 SI opval
= tmp_address
;
7228 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7229 written
|= ( 1 << 6 );
7230 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7235 abuf
-> written
= written
;
7240 /* stbi: stbi$pack $GRk,@($GRi,$d12) */
7243 SEM_FN_NAME ( frvbf
, stbi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7245 #define FLD(f) abuf->fields.sfmt_swapi.f
7246 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7247 int UNUSED written
= 0 ;
7248 IADDR UNUSED pc
= abuf
-> addr
;
7249 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7251 frvbf_write_mem_QI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), GET_H_GR ( FLD ( f_GRk
)));
7257 /* sthi: sthi$pack $GRk,@($GRi,$d12) */
7260 SEM_FN_NAME ( frvbf
, sthi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7262 #define FLD(f) abuf->fields.sfmt_swapi.f
7263 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7264 int UNUSED written
= 0 ;
7265 IADDR UNUSED pc
= abuf
-> addr
;
7266 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7268 frvbf_write_mem_HI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), GET_H_GR ( FLD ( f_GRk
)));
7274 /* sti: sti$pack $GRk,@($GRi,$d12) */
7277 SEM_FN_NAME ( frvbf
, sti
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7279 #define FLD(f) abuf->fields.sfmt_swapi.f
7280 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7281 int UNUSED written
= 0 ;
7282 IADDR UNUSED pc
= abuf
-> addr
;
7283 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7285 frvbf_write_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), GET_H_GR ( FLD ( f_GRk
)));
7291 /* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7294 SEM_FN_NAME ( frvbf
, stbfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7296 #define FLD(f) abuf->fields.sfmt_stbfi.f
7297 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7298 int UNUSED written
= 0 ;
7299 IADDR UNUSED pc
= abuf
-> addr
;
7300 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7302 frvbf_write_mem_QI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), GET_H_FR_INT ( FLD ( f_FRk
)));
7308 /* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7311 SEM_FN_NAME ( frvbf
, sthfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7313 #define FLD(f) abuf->fields.sfmt_stbfi.f
7314 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7315 int UNUSED written
= 0 ;
7316 IADDR UNUSED pc
= abuf
-> addr
;
7317 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7319 frvbf_write_mem_HI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), GET_H_FR_INT ( FLD ( f_FRk
)));
7325 /* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7328 SEM_FN_NAME ( frvbf
, stfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7330 #define FLD(f) abuf->fields.sfmt_stbfi.f
7331 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7332 int UNUSED written
= 0 ;
7333 IADDR UNUSED pc
= abuf
-> addr
;
7334 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7336 frvbf_write_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), GET_H_FR_INT ( FLD ( f_FRk
)));
7342 /* stdi: stdi$pack $GRdoublek,@($GRi,$d12) */
7345 SEM_FN_NAME ( frvbf
, stdi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7347 #define FLD(f) abuf->fields.sfmt_stdi.f
7348 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7349 int UNUSED written
= 0 ;
7350 IADDR UNUSED pc
= abuf
-> addr
;
7351 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7356 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
7357 frvbf_write_mem_DI ( current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE ( FLD ( f_GRk
)));
7365 /* stdfi: stdfi$pack $FRdoublek,@($GRi,$d12) */
7368 SEM_FN_NAME ( frvbf
, stdfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7370 #define FLD(f) abuf->fields.sfmt_stdfi.f
7371 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7372 int UNUSED written
= 0 ;
7373 IADDR UNUSED pc
= abuf
-> addr
;
7374 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7379 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
7380 frvbf_write_mem_DF ( current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE ( FLD ( f_FRk
)));
7388 /* stqi: stqi$pack $GRk,@($GRi,$d12) */
7391 SEM_FN_NAME ( frvbf
, stqi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7393 #define FLD(f) abuf->fields.sfmt_stdi.f
7394 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7395 int UNUSED written
= 0 ;
7396 IADDR UNUSED pc
= abuf
-> addr
;
7397 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7402 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
7403 frvbf_store_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
7411 /* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7414 SEM_FN_NAME ( frvbf
, stqfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7416 #define FLD(f) abuf->fields.sfmt_stdfi.f
7417 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7418 int UNUSED written
= 0 ;
7419 IADDR UNUSED pc
= abuf
-> addr
;
7420 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7425 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
7426 frvbf_store_quad_FRint ( current_cpu
, pc
, tmp_address
, FLD ( f_FRk
));
7434 /* swap: swap$pack @($GRi,$GRj),$GRk */
7437 SEM_FN_NAME ( frvbf
, swap
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7439 #define FLD(f) abuf->fields.sfmt_cswap.f
7440 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7441 int UNUSED written
= 0 ;
7442 IADDR UNUSED pc
= abuf
-> addr
;
7443 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7448 tmp_tmp
= GET_H_GR ( FLD ( f_GRk
));
7449 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7450 frvbf_check_swap_address ( current_cpu
, tmp_address
);
7452 SI opval
= frvbf_read_mem_WI ( current_cpu
, pc
, tmp_address
);
7453 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
7454 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7456 frvbf_write_mem_WI ( current_cpu
, pc
, tmp_address
, tmp_tmp
);
7463 /* swapi: swapi$pack @($GRi,$d12),$GRk */
7466 SEM_FN_NAME ( frvbf
, swapi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7468 #define FLD(f) abuf->fields.sfmt_swapi.f
7469 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7470 int UNUSED written
= 0 ;
7471 IADDR UNUSED pc
= abuf
-> addr
;
7472 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7477 tmp_tmp
= GET_H_GR ( FLD ( f_GRk
));
7478 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
7479 frvbf_check_swap_address ( current_cpu
, tmp_address
);
7481 SI opval
= frvbf_read_mem_WI ( current_cpu
, pc
, tmp_address
);
7482 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
7483 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7485 frvbf_write_mem_WI ( current_cpu
, pc
, tmp_address
, tmp_tmp
);
7492 /* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7495 SEM_FN_NAME ( frvbf
, cswap
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7497 #define FLD(f) abuf->fields.sfmt_cswap.f
7498 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7499 int UNUSED written
= 0 ;
7500 IADDR UNUSED pc
= abuf
-> addr
;
7501 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7503 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7507 tmp_tmp
= GET_H_GR ( FLD ( f_GRk
));
7508 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7509 frvbf_check_swap_address ( current_cpu
, tmp_address
);
7511 SI opval
= frvbf_read_mem_WI ( current_cpu
, pc
, tmp_address
);
7512 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
7513 written
|= ( 1 << 6 );
7514 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7516 frvbf_write_mem_WI ( current_cpu
, pc
, tmp_address
, tmp_tmp
);
7520 abuf
-> written
= written
;
7525 /* movgf: movgf$pack $GRj,$FRintk */
7528 SEM_FN_NAME ( frvbf
, movgf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7530 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7531 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7532 int UNUSED written
= 0 ;
7533 IADDR UNUSED pc
= abuf
-> addr
;
7534 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7537 SI opval
= GET_H_GR ( FLD ( f_GRj
));
7538 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7539 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7546 /* movfg: movfg$pack $FRintk,$GRj */
7549 SEM_FN_NAME ( frvbf
, movfg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7551 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7552 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7553 int UNUSED written
= 0 ;
7554 IADDR UNUSED pc
= abuf
-> addr
;
7555 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7558 SI opval
= GET_H_FR_INT ( FLD ( f_FRk
));
7559 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRj
), opval
);
7560 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7567 /* movgfd: movgfd$pack $GRj,$FRintk */
7570 SEM_FN_NAME ( frvbf
, movgfd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7572 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7573 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7574 int UNUSED written
= 0 ;
7575 IADDR UNUSED pc
= abuf
-> addr
;
7576 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7578 if ( EQSI ( FLD ( f_GRj
), 0 )) {
7582 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7583 written
|= ( 1 << 4 );
7584 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7588 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
7589 written
|= ( 1 << 5 );
7590 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7596 SI opval
= GET_H_GR ( FLD ( f_GRj
));
7597 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7598 written
|= ( 1 << 4 );
7599 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7602 USI opval
= GET_H_GR ( ADDSI ( FLD ( f_GRj
), 1 ));
7603 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
7604 written
|= ( 1 << 5 );
7605 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7610 abuf
-> written
= written
;
7615 /* movfgd: movfgd$pack $FRintk,$GRj */
7618 SEM_FN_NAME ( frvbf
, movfgd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7620 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7621 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7622 int UNUSED written
= 0 ;
7623 IADDR UNUSED pc
= abuf
-> addr
;
7624 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7626 if ( NESI ( FLD ( f_GRj
), 0 )) {
7629 SI opval
= GET_H_FR_INT ( FLD ( f_FRk
));
7630 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRj
), opval
);
7631 written
|= ( 1 << 4 );
7632 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7635 USI opval
= GET_H_FR_INT ( ADDSI ( FLD ( f_FRk
), 1 ));
7636 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, ADDSI ( FLD ( f_GRj
), 1 ), opval
);
7637 written
|= ( 1 << 5 );
7638 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7643 abuf
-> written
= written
;
7648 /* movgfq: movgfq$pack $GRj,$FRintk */
7651 SEM_FN_NAME ( frvbf
, movgfq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7653 #define FLD(f) abuf->fields.sfmt_movgfq.f
7654 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7655 int UNUSED written
= 0 ;
7656 IADDR UNUSED pc
= abuf
-> addr
;
7657 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7659 if ( EQSI ( FLD ( f_GRj
), 0 )) {
7663 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7664 written
|= ( 1 << 6 );
7665 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7669 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
7670 written
|= ( 1 << 7 );
7671 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7675 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, ADDSI ( FLD ( f_FRk
), 2 ), opval
);
7676 written
|= ( 1 << 8 );
7677 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7681 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, ADDSI ( FLD ( f_FRk
), 3 ), opval
);
7682 written
|= ( 1 << 9 );
7683 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7689 SI opval
= GET_H_GR ( FLD ( f_GRj
));
7690 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7691 written
|= ( 1 << 6 );
7692 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7695 USI opval
= GET_H_GR ( ADDSI ( FLD ( f_GRj
), 1 ));
7696 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
7697 written
|= ( 1 << 7 );
7698 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7701 USI opval
= GET_H_GR ( ADDSI ( FLD ( f_GRj
), 2 ));
7702 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, ADDSI ( FLD ( f_FRk
), 2 ), opval
);
7703 written
|= ( 1 << 8 );
7704 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7707 USI opval
= GET_H_GR ( ADDSI ( FLD ( f_GRj
), 3 ));
7708 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, ADDSI ( FLD ( f_FRk
), 3 ), opval
);
7709 written
|= ( 1 << 9 );
7710 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7715 abuf
-> written
= written
;
7720 /* movfgq: movfgq$pack $FRintk,$GRj */
7723 SEM_FN_NAME ( frvbf
, movfgq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7725 #define FLD(f) abuf->fields.sfmt_movfgq.f
7726 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7727 int UNUSED written
= 0 ;
7728 IADDR UNUSED pc
= abuf
-> addr
;
7729 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7731 if ( NESI ( FLD ( f_GRj
), 0 )) {
7734 SI opval
= GET_H_FR_INT ( FLD ( f_FRk
));
7735 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRj
), opval
);
7736 written
|= ( 1 << 6 );
7737 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7740 USI opval
= GET_H_FR_INT ( ADDSI ( FLD ( f_FRk
), 1 ));
7741 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, ADDSI ( FLD ( f_GRj
), 1 ), opval
);
7742 written
|= ( 1 << 7 );
7743 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7746 USI opval
= GET_H_FR_INT ( ADDSI ( FLD ( f_FRk
), 2 ));
7747 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, ADDSI ( FLD ( f_GRj
), 2 ), opval
);
7748 written
|= ( 1 << 8 );
7749 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7752 USI opval
= GET_H_FR_INT ( ADDSI ( FLD ( f_FRk
), 3 ));
7753 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, ADDSI ( FLD ( f_GRj
), 3 ), opval
);
7754 written
|= ( 1 << 9 );
7755 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7760 abuf
-> written
= written
;
7765 /* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
7768 SEM_FN_NAME ( frvbf
, cmovgf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7770 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7771 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7772 int UNUSED written
= 0 ;
7773 IADDR UNUSED pc
= abuf
-> addr
;
7774 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7776 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7778 SI opval
= GET_H_GR ( FLD ( f_GRj
));
7779 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7780 written
|= ( 1 << 3 );
7781 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7785 abuf
-> written
= written
;
7790 /* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
7793 SEM_FN_NAME ( frvbf
, cmovfg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7795 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7796 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7797 int UNUSED written
= 0 ;
7798 IADDR UNUSED pc
= abuf
-> addr
;
7799 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7801 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7803 SI opval
= GET_H_FR_INT ( FLD ( f_FRk
));
7804 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRj
), opval
);
7805 written
|= ( 1 << 3 );
7806 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7810 abuf
-> written
= written
;
7815 /* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
7818 SEM_FN_NAME ( frvbf
, cmovgfd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7820 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7821 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7822 int UNUSED written
= 0 ;
7823 IADDR UNUSED pc
= abuf
-> addr
;
7824 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7826 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7827 if ( EQSI ( FLD ( f_GRj
), 0 )) {
7831 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7832 written
|= ( 1 << 6 );
7833 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7837 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
7838 written
|= ( 1 << 7 );
7839 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7845 SI opval
= GET_H_GR ( FLD ( f_GRj
));
7846 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7847 written
|= ( 1 << 6 );
7848 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7851 USI opval
= GET_H_GR ( ADDSI ( FLD ( f_GRj
), 1 ));
7852 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
7853 written
|= ( 1 << 7 );
7854 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7860 abuf
-> written
= written
;
7865 /* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
7868 SEM_FN_NAME ( frvbf
, cmovfgd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7870 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7871 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7872 int UNUSED written
= 0 ;
7873 IADDR UNUSED pc
= abuf
-> addr
;
7874 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7876 if ( ANDIF ( NESI ( FLD ( f_GRj
), 0 ), EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 )))) {
7879 SI opval
= GET_H_FR_INT ( FLD ( f_FRk
));
7880 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRj
), opval
);
7881 written
|= ( 1 << 6 );
7882 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7885 USI opval
= GET_H_FR_INT ( ADDSI ( FLD ( f_FRk
), 1 ));
7886 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, ADDSI ( FLD ( f_GRj
), 1 ), opval
);
7887 written
|= ( 1 << 7 );
7888 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7893 abuf
-> written
= written
;
7898 /* movgs: movgs$pack $GRj,$spr */
7901 SEM_FN_NAME ( frvbf
, movgs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7903 #define FLD(f) abuf->fields.sfmt_movgs.f
7904 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7905 int UNUSED written
= 0 ;
7906 IADDR UNUSED pc
= abuf
-> addr
;
7907 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7910 USI opval
= GET_H_GR ( FLD ( f_GRj
));
7911 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, FLD ( f_spr
), opval
);
7912 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
7919 /* movsg: movsg$pack $spr,$GRj */
7922 SEM_FN_NAME ( frvbf
, movsg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7924 #define FLD(f) abuf->fields.sfmt_movsg.f
7925 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7926 int UNUSED written
= 0 ;
7927 IADDR UNUSED pc
= abuf
-> addr
;
7928 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7931 SI opval
= GET_H_SPR ( FLD ( f_spr
));
7932 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRj
), opval
);
7933 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7940 /* bra: bra$pack $hint_taken$label16 */
7943 SEM_FN_NAME ( frvbf
, bra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7945 #define FLD(f) abuf->fields.sfmt_fbne.f
7946 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7947 int UNUSED written
= 0 ;
7948 IADDR UNUSED pc
= abuf
-> addr
;
7949 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7952 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
7954 USI opval
= FLD ( i_label16
);
7955 sim_queue_pc_write ( current_cpu
, opval
);
7956 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
7964 /* bno: bno$pack$hint_not_taken */
7967 SEM_FN_NAME ( frvbf
, bno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7969 #define FLD(f) abuf->fields.sfmt_fbne.f
7970 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7971 int UNUSED written
= 0 ;
7972 IADDR UNUSED pc
= abuf
-> addr
;
7973 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7975 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
7981 /* beq: beq$pack $ICCi_2,$hint,$label16 */
7984 SEM_FN_NAME ( frvbf
, beq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7986 #define FLD(f) abuf->fields.sfmt_beq.f
7987 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7988 int UNUSED written
= 0 ;
7989 IADDR UNUSED pc
= abuf
-> addr
;
7990 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7993 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
7994 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 ))) {
7996 USI opval
= FLD ( i_label16
);
7997 sim_queue_pc_write ( current_cpu
, opval
);
7998 written
|= ( 1 << 3 );
7999 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8004 abuf
-> written
= written
;
8009 /* bne: bne$pack $ICCi_2,$hint,$label16 */
8012 SEM_FN_NAME ( frvbf
, bne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8014 #define FLD(f) abuf->fields.sfmt_beq.f
8015 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8016 int UNUSED written
= 0 ;
8017 IADDR UNUSED pc
= abuf
-> addr
;
8018 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8021 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8022 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
8024 USI opval
= FLD ( i_label16
);
8025 sim_queue_pc_write ( current_cpu
, opval
);
8026 written
|= ( 1 << 3 );
8027 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8032 abuf
-> written
= written
;
8037 /* ble: ble$pack $ICCi_2,$hint,$label16 */
8040 SEM_FN_NAME ( frvbf
, ble
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8042 #define FLD(f) abuf->fields.sfmt_beq.f
8043 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8044 int UNUSED written
= 0 ;
8045 IADDR UNUSED pc
= abuf
-> addr
;
8046 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8049 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8050 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 ))))) {
8052 USI opval
= FLD ( i_label16
);
8053 sim_queue_pc_write ( current_cpu
, opval
);
8054 written
|= ( 1 << 3 );
8055 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8060 abuf
-> written
= written
;
8065 /* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8068 SEM_FN_NAME ( frvbf
, bgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8070 #define FLD(f) abuf->fields.sfmt_beq.f
8071 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8072 int UNUSED written
= 0 ;
8073 IADDR UNUSED pc
= abuf
-> addr
;
8074 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8077 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8078 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 )))))) {
8080 USI opval
= FLD ( i_label16
);
8081 sim_queue_pc_write ( current_cpu
, opval
);
8082 written
|= ( 1 << 3 );
8083 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8088 abuf
-> written
= written
;
8093 /* blt: blt$pack $ICCi_2,$hint,$label16 */
8096 SEM_FN_NAME ( frvbf
, blt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8098 #define FLD(f) abuf->fields.sfmt_beq.f
8099 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8100 int UNUSED written
= 0 ;
8101 IADDR UNUSED pc
= abuf
-> addr
;
8102 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8105 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8106 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 )))) {
8108 USI opval
= FLD ( i_label16
);
8109 sim_queue_pc_write ( current_cpu
, opval
);
8110 written
|= ( 1 << 3 );
8111 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8116 abuf
-> written
= written
;
8121 /* bge: bge$pack $ICCi_2,$hint,$label16 */
8124 SEM_FN_NAME ( frvbf
, bge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8126 #define FLD(f) abuf->fields.sfmt_beq.f
8127 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8128 int UNUSED written
= 0 ;
8129 IADDR UNUSED pc
= abuf
-> addr
;
8130 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8133 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8134 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 ))))) {
8136 USI opval
= FLD ( i_label16
);
8137 sim_queue_pc_write ( current_cpu
, opval
);
8138 written
|= ( 1 << 3 );
8139 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8144 abuf
-> written
= written
;
8149 /* bls: bls$pack $ICCi_2,$hint,$label16 */
8152 SEM_FN_NAME ( frvbf
, bls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8154 #define FLD(f) abuf->fields.sfmt_beq.f
8155 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8156 int UNUSED written
= 0 ;
8157 IADDR UNUSED pc
= abuf
-> addr
;
8158 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8161 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8162 if ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
8164 USI opval
= FLD ( i_label16
);
8165 sim_queue_pc_write ( current_cpu
, opval
);
8166 written
|= ( 1 << 3 );
8167 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8172 abuf
-> written
= written
;
8177 /* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8180 SEM_FN_NAME ( frvbf
, bhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8182 #define FLD(f) abuf->fields.sfmt_beq.f
8183 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8184 int UNUSED written
= 0 ;
8185 IADDR UNUSED pc
= abuf
-> addr
;
8186 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8189 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8190 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 ))))) {
8192 USI opval
= FLD ( i_label16
);
8193 sim_queue_pc_write ( current_cpu
, opval
);
8194 written
|= ( 1 << 3 );
8195 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8200 abuf
-> written
= written
;
8205 /* bc: bc$pack $ICCi_2,$hint,$label16 */
8208 SEM_FN_NAME ( frvbf
, bc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8210 #define FLD(f) abuf->fields.sfmt_beq.f
8211 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8212 int UNUSED written
= 0 ;
8213 IADDR UNUSED pc
= abuf
-> addr
;
8214 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8217 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8218 if ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 ))) {
8220 USI opval
= FLD ( i_label16
);
8221 sim_queue_pc_write ( current_cpu
, opval
);
8222 written
|= ( 1 << 3 );
8223 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8228 abuf
-> written
= written
;
8233 /* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8236 SEM_FN_NAME ( frvbf
, bnc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8238 #define FLD(f) abuf->fields.sfmt_beq.f
8239 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8240 int UNUSED written
= 0 ;
8241 IADDR UNUSED pc
= abuf
-> addr
;
8242 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8245 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8246 if ( NOTBI ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )))) {
8248 USI opval
= FLD ( i_label16
);
8249 sim_queue_pc_write ( current_cpu
, opval
);
8250 written
|= ( 1 << 3 );
8251 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8256 abuf
-> written
= written
;
8261 /* bn: bn$pack $ICCi_2,$hint,$label16 */
8264 SEM_FN_NAME ( frvbf
, bn
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8266 #define FLD(f) abuf->fields.sfmt_beq.f
8267 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8268 int UNUSED written
= 0 ;
8269 IADDR UNUSED pc
= abuf
-> addr
;
8270 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8273 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8274 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 ))) {
8276 USI opval
= FLD ( i_label16
);
8277 sim_queue_pc_write ( current_cpu
, opval
);
8278 written
|= ( 1 << 3 );
8279 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8284 abuf
-> written
= written
;
8289 /* bp: bp$pack $ICCi_2,$hint,$label16 */
8292 SEM_FN_NAME ( frvbf
, bp
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8294 #define FLD(f) abuf->fields.sfmt_beq.f
8295 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8296 int UNUSED written
= 0 ;
8297 IADDR UNUSED pc
= abuf
-> addr
;
8298 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8301 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8302 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )))) {
8304 USI opval
= FLD ( i_label16
);
8305 sim_queue_pc_write ( current_cpu
, opval
);
8306 written
|= ( 1 << 3 );
8307 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8312 abuf
-> written
= written
;
8317 /* bv: bv$pack $ICCi_2,$hint,$label16 */
8320 SEM_FN_NAME ( frvbf
, bv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8322 #define FLD(f) abuf->fields.sfmt_beq.f
8323 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8324 int UNUSED written
= 0 ;
8325 IADDR UNUSED pc
= abuf
-> addr
;
8326 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8329 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8330 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))) {
8332 USI opval
= FLD ( i_label16
);
8333 sim_queue_pc_write ( current_cpu
, opval
);
8334 written
|= ( 1 << 3 );
8335 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8340 abuf
-> written
= written
;
8345 /* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8348 SEM_FN_NAME ( frvbf
, bnv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8350 #define FLD(f) abuf->fields.sfmt_beq.f
8351 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8352 int UNUSED written
= 0 ;
8353 IADDR UNUSED pc
= abuf
-> addr
;
8354 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8357 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8358 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))) {
8360 USI opval
= FLD ( i_label16
);
8361 sim_queue_pc_write ( current_cpu
, opval
);
8362 written
|= ( 1 << 3 );
8363 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8368 abuf
-> written
= written
;
8373 /* fbra: fbra$pack $hint_taken$label16 */
8376 SEM_FN_NAME ( frvbf
, fbra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8378 #define FLD(f) abuf->fields.sfmt_fbne.f
8379 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8380 int UNUSED written
= 0 ;
8381 IADDR UNUSED pc
= abuf
-> addr
;
8382 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8385 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8387 USI opval
= FLD ( i_label16
);
8388 sim_queue_pc_write ( current_cpu
, opval
);
8389 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8397 /* fbno: fbno$pack$hint_not_taken */
8400 SEM_FN_NAME ( frvbf
, fbno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8402 #define FLD(f) abuf->fields.sfmt_fbne.f
8403 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8404 int UNUSED written
= 0 ;
8405 IADDR UNUSED pc
= abuf
-> addr
;
8406 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8408 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8414 /* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8417 SEM_FN_NAME ( frvbf
, fbne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8419 #define FLD(f) abuf->fields.sfmt_fbne.f
8420 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8421 int UNUSED written
= 0 ;
8422 IADDR UNUSED pc
= abuf
-> addr
;
8423 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8426 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8427 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 ))))) {
8429 USI opval
= FLD ( i_label16
);
8430 sim_queue_pc_write ( current_cpu
, opval
);
8431 written
|= ( 1 << 3 );
8432 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8437 abuf
-> written
= written
;
8442 /* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8445 SEM_FN_NAME ( frvbf
, fbeq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8447 #define FLD(f) abuf->fields.sfmt_fbne.f
8448 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8449 int UNUSED written
= 0 ;
8450 IADDR UNUSED pc
= abuf
-> addr
;
8451 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8454 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8455 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 ))) {
8457 USI opval
= FLD ( i_label16
);
8458 sim_queue_pc_write ( current_cpu
, opval
);
8459 written
|= ( 1 << 3 );
8460 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8465 abuf
-> written
= written
;
8470 /* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8473 SEM_FN_NAME ( frvbf
, fblg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8475 #define FLD(f) abuf->fields.sfmt_fbne.f
8476 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8477 int UNUSED written
= 0 ;
8478 IADDR UNUSED pc
= abuf
-> addr
;
8479 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8482 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8483 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 )))) {
8485 USI opval
= FLD ( i_label16
);
8486 sim_queue_pc_write ( current_cpu
, opval
);
8487 written
|= ( 1 << 3 );
8488 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8493 abuf
-> written
= written
;
8498 /* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8501 SEM_FN_NAME ( frvbf
, fbue
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8503 #define FLD(f) abuf->fields.sfmt_fbne.f
8504 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8505 int UNUSED written
= 0 ;
8506 IADDR UNUSED pc
= abuf
-> addr
;
8507 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8510 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8511 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
8513 USI opval
= FLD ( i_label16
);
8514 sim_queue_pc_write ( current_cpu
, opval
);
8515 written
|= ( 1 << 3 );
8516 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8521 abuf
-> written
= written
;
8526 /* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8529 SEM_FN_NAME ( frvbf
, fbul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8531 #define FLD(f) abuf->fields.sfmt_fbne.f
8532 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8533 int UNUSED written
= 0 ;
8534 IADDR UNUSED pc
= abuf
-> addr
;
8535 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8538 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8539 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
8541 USI opval
= FLD ( i_label16
);
8542 sim_queue_pc_write ( current_cpu
, opval
);
8543 written
|= ( 1 << 3 );
8544 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8549 abuf
-> written
= written
;
8554 /* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8557 SEM_FN_NAME ( frvbf
, fbge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8559 #define FLD(f) abuf->fields.sfmt_fbne.f
8560 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8561 int UNUSED written
= 0 ;
8562 IADDR UNUSED pc
= abuf
-> addr
;
8563 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8566 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8567 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 )))) {
8569 USI opval
= FLD ( i_label16
);
8570 sim_queue_pc_write ( current_cpu
, opval
);
8571 written
|= ( 1 << 3 );
8572 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8577 abuf
-> written
= written
;
8582 /* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8585 SEM_FN_NAME ( frvbf
, fblt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8587 #define FLD(f) abuf->fields.sfmt_fbne.f
8588 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8589 int UNUSED written
= 0 ;
8590 IADDR UNUSED pc
= abuf
-> addr
;
8591 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8594 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8595 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 ))) {
8597 USI opval
= FLD ( i_label16
);
8598 sim_queue_pc_write ( current_cpu
, opval
);
8599 written
|= ( 1 << 3 );
8600 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8605 abuf
-> written
= written
;
8610 /* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8613 SEM_FN_NAME ( frvbf
, fbuge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8615 #define FLD(f) abuf->fields.sfmt_fbne.f
8616 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8617 int UNUSED written
= 0 ;
8618 IADDR UNUSED pc
= abuf
-> addr
;
8619 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8622 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8623 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 ))))) {
8625 USI opval
= FLD ( i_label16
);
8626 sim_queue_pc_write ( current_cpu
, opval
);
8627 written
|= ( 1 << 3 );
8628 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8633 abuf
-> written
= written
;
8638 /* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8641 SEM_FN_NAME ( frvbf
, fbug
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8643 #define FLD(f) abuf->fields.sfmt_fbne.f
8644 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8645 int UNUSED written
= 0 ;
8646 IADDR UNUSED pc
= abuf
-> addr
;
8647 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8650 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8651 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
8653 USI opval
= FLD ( i_label16
);
8654 sim_queue_pc_write ( current_cpu
, opval
);
8655 written
|= ( 1 << 3 );
8656 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8661 abuf
-> written
= written
;
8666 /* fble: fble$pack $FCCi_2,$hint,$label16 */
8669 SEM_FN_NAME ( frvbf
, fble
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8671 #define FLD(f) abuf->fields.sfmt_fbne.f
8672 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8673 int UNUSED written
= 0 ;
8674 IADDR UNUSED pc
= abuf
-> addr
;
8675 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8678 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8679 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 )))) {
8681 USI opval
= FLD ( i_label16
);
8682 sim_queue_pc_write ( current_cpu
, opval
);
8683 written
|= ( 1 << 3 );
8684 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8689 abuf
-> written
= written
;
8694 /* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8697 SEM_FN_NAME ( frvbf
, fbgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8699 #define FLD(f) abuf->fields.sfmt_fbne.f
8700 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8701 int UNUSED written
= 0 ;
8702 IADDR UNUSED pc
= abuf
-> addr
;
8703 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8706 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8707 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 ))) {
8709 USI opval
= FLD ( i_label16
);
8710 sim_queue_pc_write ( current_cpu
, opval
);
8711 written
|= ( 1 << 3 );
8712 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8717 abuf
-> written
= written
;
8722 /* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8725 SEM_FN_NAME ( frvbf
, fbule
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8727 #define FLD(f) abuf->fields.sfmt_fbne.f
8728 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8729 int UNUSED written
= 0 ;
8730 IADDR UNUSED pc
= abuf
-> addr
;
8731 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8734 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8735 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 ))))) {
8737 USI opval
= FLD ( i_label16
);
8738 sim_queue_pc_write ( current_cpu
, opval
);
8739 written
|= ( 1 << 3 );
8740 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8745 abuf
-> written
= written
;
8750 /* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8753 SEM_FN_NAME ( frvbf
, fbu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8755 #define FLD(f) abuf->fields.sfmt_fbne.f
8756 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8757 int UNUSED written
= 0 ;
8758 IADDR UNUSED pc
= abuf
-> addr
;
8759 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8762 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8763 if ( TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))) {
8765 USI opval
= FLD ( i_label16
);
8766 sim_queue_pc_write ( current_cpu
, opval
);
8767 written
|= ( 1 << 3 );
8768 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8773 abuf
-> written
= written
;
8778 /* fbo: fbo$pack $FCCi_2,$hint,$label16 */
8781 SEM_FN_NAME ( frvbf
, fbo
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8783 #define FLD(f) abuf->fields.sfmt_fbne.f
8784 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8785 int UNUSED written
= 0 ;
8786 IADDR UNUSED pc
= abuf
-> addr
;
8787 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8790 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8791 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 ))))) {
8793 USI opval
= FLD ( i_label16
);
8794 sim_queue_pc_write ( current_cpu
, opval
);
8795 written
|= ( 1 << 3 );
8796 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8801 abuf
-> written
= written
;
8806 /* bctrlr: bctrlr$pack $ccond,$hint */
8809 SEM_FN_NAME ( frvbf
, bctrlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8811 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8812 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8813 int UNUSED written
= 0 ;
8814 IADDR UNUSED pc
= abuf
-> addr
;
8815 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8818 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
8821 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
8823 USI opval
= tmp_tmp
;
8824 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
8825 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
8827 if ( EQSI ( FLD ( f_ccond
), 0 )) {
8828 if ( NESI ( tmp_tmp
, 0 )) {
8830 USI opval
= GET_H_SPR ((( UINT
) 272 ));
8831 sim_queue_pc_write ( current_cpu
, opval
);
8832 written
|= ( 1 << 5 );
8833 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8837 if ( EQSI ( tmp_tmp
, 0 )) {
8839 USI opval
= GET_H_SPR ((( UINT
) 272 ));
8840 sim_queue_pc_write ( current_cpu
, opval
);
8841 written
|= ( 1 << 5 );
8842 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8849 abuf
-> written
= written
;
8854 /* bralr: bralr$pack$hint_taken */
8857 SEM_FN_NAME ( frvbf
, bralr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8859 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8860 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8861 int UNUSED written
= 0 ;
8862 IADDR UNUSED pc
= abuf
-> addr
;
8863 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8866 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
8868 USI opval
= GET_H_SPR ((( UINT
) 272 ));
8869 sim_queue_pc_write ( current_cpu
, opval
);
8870 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8878 /* bnolr: bnolr$pack$hint_not_taken */
8881 SEM_FN_NAME ( frvbf
, bnolr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8883 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8884 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8885 int UNUSED written
= 0 ;
8886 IADDR UNUSED pc
= abuf
-> addr
;
8887 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8889 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
8895 /* beqlr: beqlr$pack $ICCi_2,$hint */
8898 SEM_FN_NAME ( frvbf
, beqlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8900 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8901 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8902 int UNUSED written
= 0 ;
8903 IADDR UNUSED pc
= abuf
-> addr
;
8904 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8907 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
8908 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 ))) {
8910 USI opval
= GET_H_SPR ((( UINT
) 272 ));
8911 sim_queue_pc_write ( current_cpu
, opval
);
8912 written
|= ( 1 << 3 );
8913 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8918 abuf
-> written
= written
;
8923 /* bnelr: bnelr$pack $ICCi_2,$hint */
8926 SEM_FN_NAME ( frvbf
, bnelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8928 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8929 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8930 int UNUSED written
= 0 ;
8931 IADDR UNUSED pc
= abuf
-> addr
;
8932 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8935 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
8936 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
8938 USI opval
= GET_H_SPR ((( UINT
) 272 ));
8939 sim_queue_pc_write ( current_cpu
, opval
);
8940 written
|= ( 1 << 3 );
8941 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8946 abuf
-> written
= written
;
8951 /* blelr: blelr$pack $ICCi_2,$hint */
8954 SEM_FN_NAME ( frvbf
, blelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8956 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8957 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8958 int UNUSED written
= 0 ;
8959 IADDR UNUSED pc
= abuf
-> addr
;
8960 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8963 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
8964 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 ))))) {
8966 USI opval
= GET_H_SPR ((( UINT
) 272 ));
8967 sim_queue_pc_write ( current_cpu
, opval
);
8968 written
|= ( 1 << 3 );
8969 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8974 abuf
-> written
= written
;
8979 /* bgtlr: bgtlr$pack $ICCi_2,$hint */
8982 SEM_FN_NAME ( frvbf
, bgtlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8984 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8985 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8986 int UNUSED written
= 0 ;
8987 IADDR UNUSED pc
= abuf
-> addr
;
8988 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8991 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
8992 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 )))))) {
8994 USI opval
= GET_H_SPR ((( UINT
) 272 ));
8995 sim_queue_pc_write ( current_cpu
, opval
);
8996 written
|= ( 1 << 3 );
8997 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9002 abuf
-> written
= written
;
9007 /* bltlr: bltlr$pack $ICCi_2,$hint */
9010 SEM_FN_NAME ( frvbf
, bltlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9012 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9013 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9014 int UNUSED written
= 0 ;
9015 IADDR UNUSED pc
= abuf
-> addr
;
9016 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9019 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9020 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 )))) {
9022 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9023 sim_queue_pc_write ( current_cpu
, opval
);
9024 written
|= ( 1 << 3 );
9025 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9030 abuf
-> written
= written
;
9035 /* bgelr: bgelr$pack $ICCi_2,$hint */
9038 SEM_FN_NAME ( frvbf
, bgelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9040 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9041 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9042 int UNUSED written
= 0 ;
9043 IADDR UNUSED pc
= abuf
-> addr
;
9044 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9047 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9048 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 ))))) {
9050 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9051 sim_queue_pc_write ( current_cpu
, opval
);
9052 written
|= ( 1 << 3 );
9053 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9058 abuf
-> written
= written
;
9063 /* blslr: blslr$pack $ICCi_2,$hint */
9066 SEM_FN_NAME ( frvbf
, blslr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9068 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9069 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9070 int UNUSED written
= 0 ;
9071 IADDR UNUSED pc
= abuf
-> addr
;
9072 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9075 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9076 if ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
9078 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9079 sim_queue_pc_write ( current_cpu
, opval
);
9080 written
|= ( 1 << 3 );
9081 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9086 abuf
-> written
= written
;
9091 /* bhilr: bhilr$pack $ICCi_2,$hint */
9094 SEM_FN_NAME ( frvbf
, bhilr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9096 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9097 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9098 int UNUSED written
= 0 ;
9099 IADDR UNUSED pc
= abuf
-> addr
;
9100 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9103 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9104 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 ))))) {
9106 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9107 sim_queue_pc_write ( current_cpu
, opval
);
9108 written
|= ( 1 << 3 );
9109 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9114 abuf
-> written
= written
;
9119 /* bclr: bclr$pack $ICCi_2,$hint */
9122 SEM_FN_NAME ( frvbf
, bclr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9124 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9125 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9126 int UNUSED written
= 0 ;
9127 IADDR UNUSED pc
= abuf
-> addr
;
9128 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9131 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9132 if ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 ))) {
9134 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9135 sim_queue_pc_write ( current_cpu
, opval
);
9136 written
|= ( 1 << 3 );
9137 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9142 abuf
-> written
= written
;
9147 /* bnclr: bnclr$pack $ICCi_2,$hint */
9150 SEM_FN_NAME ( frvbf
, bnclr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9152 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9153 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9154 int UNUSED written
= 0 ;
9155 IADDR UNUSED pc
= abuf
-> addr
;
9156 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9159 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9160 if ( NOTBI ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )))) {
9162 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9163 sim_queue_pc_write ( current_cpu
, opval
);
9164 written
|= ( 1 << 3 );
9165 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9170 abuf
-> written
= written
;
9175 /* bnlr: bnlr$pack $ICCi_2,$hint */
9178 SEM_FN_NAME ( frvbf
, bnlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9180 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9181 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9182 int UNUSED written
= 0 ;
9183 IADDR UNUSED pc
= abuf
-> addr
;
9184 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9187 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9188 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 ))) {
9190 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9191 sim_queue_pc_write ( current_cpu
, opval
);
9192 written
|= ( 1 << 3 );
9193 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9198 abuf
-> written
= written
;
9203 /* bplr: bplr$pack $ICCi_2,$hint */
9206 SEM_FN_NAME ( frvbf
, bplr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9208 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9209 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9210 int UNUSED written
= 0 ;
9211 IADDR UNUSED pc
= abuf
-> addr
;
9212 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9215 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9216 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )))) {
9218 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9219 sim_queue_pc_write ( current_cpu
, opval
);
9220 written
|= ( 1 << 3 );
9221 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9226 abuf
-> written
= written
;
9231 /* bvlr: bvlr$pack $ICCi_2,$hint */
9234 SEM_FN_NAME ( frvbf
, bvlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9236 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9237 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9238 int UNUSED written
= 0 ;
9239 IADDR UNUSED pc
= abuf
-> addr
;
9240 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9243 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9244 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))) {
9246 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9247 sim_queue_pc_write ( current_cpu
, opval
);
9248 written
|= ( 1 << 3 );
9249 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9254 abuf
-> written
= written
;
9259 /* bnvlr: bnvlr$pack $ICCi_2,$hint */
9262 SEM_FN_NAME ( frvbf
, bnvlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9264 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9265 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9266 int UNUSED written
= 0 ;
9267 IADDR UNUSED pc
= abuf
-> addr
;
9268 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9271 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9272 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))) {
9274 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9275 sim_queue_pc_write ( current_cpu
, opval
);
9276 written
|= ( 1 << 3 );
9277 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9282 abuf
-> written
= written
;
9287 /* fbralr: fbralr$pack$hint_taken */
9290 SEM_FN_NAME ( frvbf
, fbralr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9292 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9293 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9294 int UNUSED written
= 0 ;
9295 IADDR UNUSED pc
= abuf
-> addr
;
9296 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9299 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9301 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9302 sim_queue_pc_write ( current_cpu
, opval
);
9303 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9311 /* fbnolr: fbnolr$pack$hint_not_taken */
9314 SEM_FN_NAME ( frvbf
, fbnolr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9316 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9317 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9318 int UNUSED written
= 0 ;
9319 IADDR UNUSED pc
= abuf
-> addr
;
9320 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9322 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9328 /* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9331 SEM_FN_NAME ( frvbf
, fbeqlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9333 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9334 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9335 int UNUSED written
= 0 ;
9336 IADDR UNUSED pc
= abuf
-> addr
;
9337 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9340 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9341 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 ))) {
9343 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9344 sim_queue_pc_write ( current_cpu
, opval
);
9345 written
|= ( 1 << 3 );
9346 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9351 abuf
-> written
= written
;
9356 /* fbnelr: fbnelr$pack $FCCi_2,$hint */
9359 SEM_FN_NAME ( frvbf
, fbnelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9361 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9362 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9363 int UNUSED written
= 0 ;
9364 IADDR UNUSED pc
= abuf
-> addr
;
9365 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9368 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9369 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 ))))) {
9371 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9372 sim_queue_pc_write ( current_cpu
, opval
);
9373 written
|= ( 1 << 3 );
9374 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9379 abuf
-> written
= written
;
9384 /* fblglr: fblglr$pack $FCCi_2,$hint */
9387 SEM_FN_NAME ( frvbf
, fblglr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9389 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9390 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9391 int UNUSED written
= 0 ;
9392 IADDR UNUSED pc
= abuf
-> addr
;
9393 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9396 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9397 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 )))) {
9399 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9400 sim_queue_pc_write ( current_cpu
, opval
);
9401 written
|= ( 1 << 3 );
9402 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9407 abuf
-> written
= written
;
9412 /* fbuelr: fbuelr$pack $FCCi_2,$hint */
9415 SEM_FN_NAME ( frvbf
, fbuelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9417 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9418 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9419 int UNUSED written
= 0 ;
9420 IADDR UNUSED pc
= abuf
-> addr
;
9421 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9424 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9425 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
9427 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9428 sim_queue_pc_write ( current_cpu
, opval
);
9429 written
|= ( 1 << 3 );
9430 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9435 abuf
-> written
= written
;
9440 /* fbullr: fbullr$pack $FCCi_2,$hint */
9443 SEM_FN_NAME ( frvbf
, fbullr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9445 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9446 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9447 int UNUSED written
= 0 ;
9448 IADDR UNUSED pc
= abuf
-> addr
;
9449 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9452 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9453 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
9455 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9456 sim_queue_pc_write ( current_cpu
, opval
);
9457 written
|= ( 1 << 3 );
9458 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9463 abuf
-> written
= written
;
9468 /* fbgelr: fbgelr$pack $FCCi_2,$hint */
9471 SEM_FN_NAME ( frvbf
, fbgelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9473 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9474 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9475 int UNUSED written
= 0 ;
9476 IADDR UNUSED pc
= abuf
-> addr
;
9477 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9480 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9481 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 )))) {
9483 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9484 sim_queue_pc_write ( current_cpu
, opval
);
9485 written
|= ( 1 << 3 );
9486 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9491 abuf
-> written
= written
;
9496 /* fbltlr: fbltlr$pack $FCCi_2,$hint */
9499 SEM_FN_NAME ( frvbf
, fbltlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9501 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9502 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9503 int UNUSED written
= 0 ;
9504 IADDR UNUSED pc
= abuf
-> addr
;
9505 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9508 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9509 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 ))) {
9511 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9512 sim_queue_pc_write ( current_cpu
, opval
);
9513 written
|= ( 1 << 3 );
9514 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9519 abuf
-> written
= written
;
9524 /* fbugelr: fbugelr$pack $FCCi_2,$hint */
9527 SEM_FN_NAME ( frvbf
, fbugelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9529 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9530 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9531 int UNUSED written
= 0 ;
9532 IADDR UNUSED pc
= abuf
-> addr
;
9533 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9536 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9537 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 ))))) {
9539 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9540 sim_queue_pc_write ( current_cpu
, opval
);
9541 written
|= ( 1 << 3 );
9542 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9547 abuf
-> written
= written
;
9552 /* fbuglr: fbuglr$pack $FCCi_2,$hint */
9555 SEM_FN_NAME ( frvbf
, fbuglr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9557 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9558 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9559 int UNUSED written
= 0 ;
9560 IADDR UNUSED pc
= abuf
-> addr
;
9561 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9564 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9565 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
9567 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9568 sim_queue_pc_write ( current_cpu
, opval
);
9569 written
|= ( 1 << 3 );
9570 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9575 abuf
-> written
= written
;
9580 /* fblelr: fblelr$pack $FCCi_2,$hint */
9583 SEM_FN_NAME ( frvbf
, fblelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9585 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9586 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9587 int UNUSED written
= 0 ;
9588 IADDR UNUSED pc
= abuf
-> addr
;
9589 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9592 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9593 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 )))) {
9595 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9596 sim_queue_pc_write ( current_cpu
, opval
);
9597 written
|= ( 1 << 3 );
9598 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9603 abuf
-> written
= written
;
9608 /* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9611 SEM_FN_NAME ( frvbf
, fbgtlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9613 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9614 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9615 int UNUSED written
= 0 ;
9616 IADDR UNUSED pc
= abuf
-> addr
;
9617 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9620 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9621 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 ))) {
9623 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9624 sim_queue_pc_write ( current_cpu
, opval
);
9625 written
|= ( 1 << 3 );
9626 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9631 abuf
-> written
= written
;
9636 /* fbulelr: fbulelr$pack $FCCi_2,$hint */
9639 SEM_FN_NAME ( frvbf
, fbulelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9641 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9642 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9643 int UNUSED written
= 0 ;
9644 IADDR UNUSED pc
= abuf
-> addr
;
9645 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9648 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9649 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 ))))) {
9651 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9652 sim_queue_pc_write ( current_cpu
, opval
);
9653 written
|= ( 1 << 3 );
9654 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9659 abuf
-> written
= written
;
9664 /* fbulr: fbulr$pack $FCCi_2,$hint */
9667 SEM_FN_NAME ( frvbf
, fbulr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9669 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9670 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9671 int UNUSED written
= 0 ;
9672 IADDR UNUSED pc
= abuf
-> addr
;
9673 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9676 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9677 if ( TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))) {
9679 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9680 sim_queue_pc_write ( current_cpu
, opval
);
9681 written
|= ( 1 << 3 );
9682 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9687 abuf
-> written
= written
;
9692 /* fbolr: fbolr$pack $FCCi_2,$hint */
9695 SEM_FN_NAME ( frvbf
, fbolr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9697 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9698 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9699 int UNUSED written
= 0 ;
9700 IADDR UNUSED pc
= abuf
-> addr
;
9701 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9704 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9705 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 ))))) {
9707 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9708 sim_queue_pc_write ( current_cpu
, opval
);
9709 written
|= ( 1 << 3 );
9710 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9715 abuf
-> written
= written
;
9720 /* bcralr: bcralr$pack $ccond$hint_taken */
9723 SEM_FN_NAME ( frvbf
, bcralr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9725 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9726 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9727 int UNUSED written
= 0 ;
9728 IADDR UNUSED pc
= abuf
-> addr
;
9729 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9732 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9735 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
9737 USI opval
= tmp_tmp
;
9738 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
9739 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
9741 if ( EQSI ( FLD ( f_ccond
), 0 )) {
9742 if ( NESI ( tmp_tmp
, 0 )) {
9744 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9745 sim_queue_pc_write ( current_cpu
, opval
);
9746 written
|= ( 1 << 5 );
9747 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9751 if ( EQSI ( tmp_tmp
, 0 )) {
9753 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9754 sim_queue_pc_write ( current_cpu
, opval
);
9755 written
|= ( 1 << 5 );
9756 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9763 abuf
-> written
= written
;
9768 /* bcnolr: bcnolr$pack$hint_not_taken */
9771 SEM_FN_NAME ( frvbf
, bcnolr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9773 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9774 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9775 int UNUSED written
= 0 ;
9776 IADDR UNUSED pc
= abuf
-> addr
;
9777 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9780 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9783 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
9785 USI opval
= tmp_tmp
;
9786 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
9787 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
9797 /* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
9800 SEM_FN_NAME ( frvbf
, bceqlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9802 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9803 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9804 int UNUSED written
= 0 ;
9805 IADDR UNUSED pc
= abuf
-> addr
;
9806 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9809 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9812 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
9814 USI opval
= tmp_tmp
;
9815 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
9816 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
9818 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 ))) {
9819 if ( EQSI ( FLD ( f_ccond
), 0 )) {
9820 if ( NESI ( tmp_tmp
, 0 )) {
9822 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9823 sim_queue_pc_write ( current_cpu
, opval
);
9824 written
|= ( 1 << 6 );
9825 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9829 if ( EQSI ( tmp_tmp
, 0 )) {
9831 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9832 sim_queue_pc_write ( current_cpu
, opval
);
9833 written
|= ( 1 << 6 );
9834 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9842 abuf
-> written
= written
;
9847 /* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
9850 SEM_FN_NAME ( frvbf
, bcnelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9852 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9853 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9854 int UNUSED written
= 0 ;
9855 IADDR UNUSED pc
= abuf
-> addr
;
9856 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9859 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9862 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
9864 USI opval
= tmp_tmp
;
9865 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
9866 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
9868 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
9869 if ( EQSI ( FLD ( f_ccond
), 0 )) {
9870 if ( NESI ( tmp_tmp
, 0 )) {
9872 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9873 sim_queue_pc_write ( current_cpu
, opval
);
9874 written
|= ( 1 << 6 );
9875 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9879 if ( EQSI ( tmp_tmp
, 0 )) {
9881 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9882 sim_queue_pc_write ( current_cpu
, opval
);
9883 written
|= ( 1 << 6 );
9884 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9892 abuf
-> written
= written
;
9897 /* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
9900 SEM_FN_NAME ( frvbf
, bclelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9902 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9903 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9904 int UNUSED written
= 0 ;
9905 IADDR UNUSED pc
= abuf
-> addr
;
9906 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9909 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9912 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
9914 USI opval
= tmp_tmp
;
9915 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
9916 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
9918 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 ))))) {
9919 if ( EQSI ( FLD ( f_ccond
), 0 )) {
9920 if ( NESI ( tmp_tmp
, 0 )) {
9922 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9923 sim_queue_pc_write ( current_cpu
, opval
);
9924 written
|= ( 1 << 6 );
9925 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9929 if ( EQSI ( tmp_tmp
, 0 )) {
9931 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9932 sim_queue_pc_write ( current_cpu
, opval
);
9933 written
|= ( 1 << 6 );
9934 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9942 abuf
-> written
= written
;
9947 /* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
9950 SEM_FN_NAME ( frvbf
, bcgtlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9952 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9953 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9954 int UNUSED written
= 0 ;
9955 IADDR UNUSED pc
= abuf
-> addr
;
9956 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9959 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9962 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
9964 USI opval
= tmp_tmp
;
9965 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
9966 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
9968 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 )))))) {
9969 if ( EQSI ( FLD ( f_ccond
), 0 )) {
9970 if ( NESI ( tmp_tmp
, 0 )) {
9972 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9973 sim_queue_pc_write ( current_cpu
, opval
);
9974 written
|= ( 1 << 6 );
9975 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9979 if ( EQSI ( tmp_tmp
, 0 )) {
9981 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9982 sim_queue_pc_write ( current_cpu
, opval
);
9983 written
|= ( 1 << 6 );
9984 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9992 abuf
-> written
= written
;
9997 /* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
10000 SEM_FN_NAME ( frvbf
, bcltlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10002 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10003 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10004 int UNUSED written
= 0 ;
10005 IADDR UNUSED pc
= abuf
-> addr
;
10006 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10009 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10012 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10014 USI opval
= tmp_tmp
;
10015 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10016 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10018 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 )))) {
10019 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10020 if ( NESI ( tmp_tmp
, 0 )) {
10022 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10023 sim_queue_pc_write ( current_cpu
, opval
);
10024 written
|= ( 1 << 6 );
10025 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10029 if ( EQSI ( tmp_tmp
, 0 )) {
10031 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10032 sim_queue_pc_write ( current_cpu
, opval
);
10033 written
|= ( 1 << 6 );
10034 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10042 abuf
-> written
= written
;
10047 /* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10050 SEM_FN_NAME ( frvbf
, bcgelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10052 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10053 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10054 int UNUSED written
= 0 ;
10055 IADDR UNUSED pc
= abuf
-> addr
;
10056 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10059 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10062 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10064 USI opval
= tmp_tmp
;
10065 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10066 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10068 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 ))))) {
10069 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10070 if ( NESI ( tmp_tmp
, 0 )) {
10072 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10073 sim_queue_pc_write ( current_cpu
, opval
);
10074 written
|= ( 1 << 6 );
10075 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10079 if ( EQSI ( tmp_tmp
, 0 )) {
10081 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10082 sim_queue_pc_write ( current_cpu
, opval
);
10083 written
|= ( 1 << 6 );
10084 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10092 abuf
-> written
= written
;
10097 /* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10100 SEM_FN_NAME ( frvbf
, bclslr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10102 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10103 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10104 int UNUSED written
= 0 ;
10105 IADDR UNUSED pc
= abuf
-> addr
;
10106 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10109 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10112 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10114 USI opval
= tmp_tmp
;
10115 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10116 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10118 if ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
10119 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10120 if ( NESI ( tmp_tmp
, 0 )) {
10122 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10123 sim_queue_pc_write ( current_cpu
, opval
);
10124 written
|= ( 1 << 6 );
10125 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10129 if ( EQSI ( tmp_tmp
, 0 )) {
10131 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10132 sim_queue_pc_write ( current_cpu
, opval
);
10133 written
|= ( 1 << 6 );
10134 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10142 abuf
-> written
= written
;
10147 /* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10150 SEM_FN_NAME ( frvbf
, bchilr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10152 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10153 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10154 int UNUSED written
= 0 ;
10155 IADDR UNUSED pc
= abuf
-> addr
;
10156 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10159 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10162 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10164 USI opval
= tmp_tmp
;
10165 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10166 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10168 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 ))))) {
10169 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10170 if ( NESI ( tmp_tmp
, 0 )) {
10172 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10173 sim_queue_pc_write ( current_cpu
, opval
);
10174 written
|= ( 1 << 6 );
10175 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10179 if ( EQSI ( tmp_tmp
, 0 )) {
10181 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10182 sim_queue_pc_write ( current_cpu
, opval
);
10183 written
|= ( 1 << 6 );
10184 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10192 abuf
-> written
= written
;
10197 /* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10200 SEM_FN_NAME ( frvbf
, bcclr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10202 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10203 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10204 int UNUSED written
= 0 ;
10205 IADDR UNUSED pc
= abuf
-> addr
;
10206 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10209 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10212 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10214 USI opval
= tmp_tmp
;
10215 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10216 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10218 if ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 ))) {
10219 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10220 if ( NESI ( tmp_tmp
, 0 )) {
10222 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10223 sim_queue_pc_write ( current_cpu
, opval
);
10224 written
|= ( 1 << 6 );
10225 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10229 if ( EQSI ( tmp_tmp
, 0 )) {
10231 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10232 sim_queue_pc_write ( current_cpu
, opval
);
10233 written
|= ( 1 << 6 );
10234 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10242 abuf
-> written
= written
;
10247 /* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10250 SEM_FN_NAME ( frvbf
, bcnclr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10252 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10253 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10254 int UNUSED written
= 0 ;
10255 IADDR UNUSED pc
= abuf
-> addr
;
10256 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10259 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10262 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10264 USI opval
= tmp_tmp
;
10265 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10266 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10268 if ( NOTBI ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )))) {
10269 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10270 if ( NESI ( tmp_tmp
, 0 )) {
10272 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10273 sim_queue_pc_write ( current_cpu
, opval
);
10274 written
|= ( 1 << 6 );
10275 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10279 if ( EQSI ( tmp_tmp
, 0 )) {
10281 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10282 sim_queue_pc_write ( current_cpu
, opval
);
10283 written
|= ( 1 << 6 );
10284 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10292 abuf
-> written
= written
;
10297 /* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10300 SEM_FN_NAME ( frvbf
, bcnlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10302 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10303 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10304 int UNUSED written
= 0 ;
10305 IADDR UNUSED pc
= abuf
-> addr
;
10306 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10309 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10312 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10314 USI opval
= tmp_tmp
;
10315 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10316 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10318 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 ))) {
10319 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10320 if ( NESI ( tmp_tmp
, 0 )) {
10322 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10323 sim_queue_pc_write ( current_cpu
, opval
);
10324 written
|= ( 1 << 6 );
10325 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10329 if ( EQSI ( tmp_tmp
, 0 )) {
10331 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10332 sim_queue_pc_write ( current_cpu
, opval
);
10333 written
|= ( 1 << 6 );
10334 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10342 abuf
-> written
= written
;
10347 /* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10350 SEM_FN_NAME ( frvbf
, bcplr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10352 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10353 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10354 int UNUSED written
= 0 ;
10355 IADDR UNUSED pc
= abuf
-> addr
;
10356 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10359 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10362 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10364 USI opval
= tmp_tmp
;
10365 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10366 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10368 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )))) {
10369 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10370 if ( NESI ( tmp_tmp
, 0 )) {
10372 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10373 sim_queue_pc_write ( current_cpu
, opval
);
10374 written
|= ( 1 << 6 );
10375 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10379 if ( EQSI ( tmp_tmp
, 0 )) {
10381 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10382 sim_queue_pc_write ( current_cpu
, opval
);
10383 written
|= ( 1 << 6 );
10384 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10392 abuf
-> written
= written
;
10397 /* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10400 SEM_FN_NAME ( frvbf
, bcvlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10402 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10403 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10404 int UNUSED written
= 0 ;
10405 IADDR UNUSED pc
= abuf
-> addr
;
10406 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10409 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10412 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10414 USI opval
= tmp_tmp
;
10415 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10416 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10418 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))) {
10419 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10420 if ( NESI ( tmp_tmp
, 0 )) {
10422 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10423 sim_queue_pc_write ( current_cpu
, opval
);
10424 written
|= ( 1 << 6 );
10425 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10429 if ( EQSI ( tmp_tmp
, 0 )) {
10431 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10432 sim_queue_pc_write ( current_cpu
, opval
);
10433 written
|= ( 1 << 6 );
10434 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10442 abuf
-> written
= written
;
10447 /* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10450 SEM_FN_NAME ( frvbf
, bcnvlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10452 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10453 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10454 int UNUSED written
= 0 ;
10455 IADDR UNUSED pc
= abuf
-> addr
;
10456 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10459 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10462 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10464 USI opval
= tmp_tmp
;
10465 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10466 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10468 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))) {
10469 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10470 if ( NESI ( tmp_tmp
, 0 )) {
10472 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10473 sim_queue_pc_write ( current_cpu
, opval
);
10474 written
|= ( 1 << 6 );
10475 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10479 if ( EQSI ( tmp_tmp
, 0 )) {
10481 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10482 sim_queue_pc_write ( current_cpu
, opval
);
10483 written
|= ( 1 << 6 );
10484 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10492 abuf
-> written
= written
;
10497 /* fcbralr: fcbralr$pack $ccond$hint_taken */
10500 SEM_FN_NAME ( frvbf
, fcbralr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10502 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10503 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10504 int UNUSED written
= 0 ;
10505 IADDR UNUSED pc
= abuf
-> addr
;
10506 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10509 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10512 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10514 USI opval
= tmp_tmp
;
10515 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10516 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10518 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10519 if ( NESI ( tmp_tmp
, 0 )) {
10521 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10522 sim_queue_pc_write ( current_cpu
, opval
);
10523 written
|= ( 1 << 5 );
10524 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10528 if ( EQSI ( tmp_tmp
, 0 )) {
10530 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10531 sim_queue_pc_write ( current_cpu
, opval
);
10532 written
|= ( 1 << 5 );
10533 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10540 abuf
-> written
= written
;
10545 /* fcbnolr: fcbnolr$pack$hint_not_taken */
10548 SEM_FN_NAME ( frvbf
, fcbnolr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10550 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10551 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10552 int UNUSED written
= 0 ;
10553 IADDR UNUSED pc
= abuf
-> addr
;
10554 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10557 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10560 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10562 USI opval
= tmp_tmp
;
10563 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10564 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10566 (( void ) 0 ); /*nop*/
10574 /* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10577 SEM_FN_NAME ( frvbf
, fcbeqlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10579 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10580 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10581 int UNUSED written
= 0 ;
10582 IADDR UNUSED pc
= abuf
-> addr
;
10583 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10586 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10589 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10591 USI opval
= tmp_tmp
;
10592 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10593 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10595 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 ))) {
10596 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10597 if ( NESI ( tmp_tmp
, 0 )) {
10599 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10600 sim_queue_pc_write ( current_cpu
, opval
);
10601 written
|= ( 1 << 6 );
10602 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10606 if ( EQSI ( tmp_tmp
, 0 )) {
10608 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10609 sim_queue_pc_write ( current_cpu
, opval
);
10610 written
|= ( 1 << 6 );
10611 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10619 abuf
-> written
= written
;
10624 /* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10627 SEM_FN_NAME ( frvbf
, fcbnelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10629 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10630 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10631 int UNUSED written
= 0 ;
10632 IADDR UNUSED pc
= abuf
-> addr
;
10633 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10636 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10639 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10641 USI opval
= tmp_tmp
;
10642 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10643 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10645 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 ))))) {
10646 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10647 if ( NESI ( tmp_tmp
, 0 )) {
10649 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10650 sim_queue_pc_write ( current_cpu
, opval
);
10651 written
|= ( 1 << 6 );
10652 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10656 if ( EQSI ( tmp_tmp
, 0 )) {
10658 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10659 sim_queue_pc_write ( current_cpu
, opval
);
10660 written
|= ( 1 << 6 );
10661 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10669 abuf
-> written
= written
;
10674 /* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10677 SEM_FN_NAME ( frvbf
, fcblglr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10679 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10680 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10681 int UNUSED written
= 0 ;
10682 IADDR UNUSED pc
= abuf
-> addr
;
10683 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10686 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10689 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10691 USI opval
= tmp_tmp
;
10692 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10693 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10695 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 )))) {
10696 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10697 if ( NESI ( tmp_tmp
, 0 )) {
10699 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10700 sim_queue_pc_write ( current_cpu
, opval
);
10701 written
|= ( 1 << 6 );
10702 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10706 if ( EQSI ( tmp_tmp
, 0 )) {
10708 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10709 sim_queue_pc_write ( current_cpu
, opval
);
10710 written
|= ( 1 << 6 );
10711 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10719 abuf
-> written
= written
;
10724 /* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10727 SEM_FN_NAME ( frvbf
, fcbuelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10729 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10730 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10731 int UNUSED written
= 0 ;
10732 IADDR UNUSED pc
= abuf
-> addr
;
10733 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10736 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10739 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10741 USI opval
= tmp_tmp
;
10742 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10743 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10745 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
10746 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10747 if ( NESI ( tmp_tmp
, 0 )) {
10749 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10750 sim_queue_pc_write ( current_cpu
, opval
);
10751 written
|= ( 1 << 6 );
10752 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10756 if ( EQSI ( tmp_tmp
, 0 )) {
10758 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10759 sim_queue_pc_write ( current_cpu
, opval
);
10760 written
|= ( 1 << 6 );
10761 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10769 abuf
-> written
= written
;
10774 /* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
10777 SEM_FN_NAME ( frvbf
, fcbullr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10779 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10780 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10781 int UNUSED written
= 0 ;
10782 IADDR UNUSED pc
= abuf
-> addr
;
10783 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10786 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10789 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10791 USI opval
= tmp_tmp
;
10792 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10793 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10795 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
10796 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10797 if ( NESI ( tmp_tmp
, 0 )) {
10799 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10800 sim_queue_pc_write ( current_cpu
, opval
);
10801 written
|= ( 1 << 6 );
10802 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10806 if ( EQSI ( tmp_tmp
, 0 )) {
10808 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10809 sim_queue_pc_write ( current_cpu
, opval
);
10810 written
|= ( 1 << 6 );
10811 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10819 abuf
-> written
= written
;
10824 /* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
10827 SEM_FN_NAME ( frvbf
, fcbgelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10829 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10830 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10831 int UNUSED written
= 0 ;
10832 IADDR UNUSED pc
= abuf
-> addr
;
10833 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10836 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10839 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10841 USI opval
= tmp_tmp
;
10842 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10843 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10845 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 )))) {
10846 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10847 if ( NESI ( tmp_tmp
, 0 )) {
10849 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10850 sim_queue_pc_write ( current_cpu
, opval
);
10851 written
|= ( 1 << 6 );
10852 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10856 if ( EQSI ( tmp_tmp
, 0 )) {
10858 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10859 sim_queue_pc_write ( current_cpu
, opval
);
10860 written
|= ( 1 << 6 );
10861 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10869 abuf
-> written
= written
;
10874 /* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
10877 SEM_FN_NAME ( frvbf
, fcbltlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10879 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10880 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10881 int UNUSED written
= 0 ;
10882 IADDR UNUSED pc
= abuf
-> addr
;
10883 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10886 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10889 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10891 USI opval
= tmp_tmp
;
10892 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10893 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10895 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 ))) {
10896 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10897 if ( NESI ( tmp_tmp
, 0 )) {
10899 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10900 sim_queue_pc_write ( current_cpu
, opval
);
10901 written
|= ( 1 << 6 );
10902 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10906 if ( EQSI ( tmp_tmp
, 0 )) {
10908 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10909 sim_queue_pc_write ( current_cpu
, opval
);
10910 written
|= ( 1 << 6 );
10911 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10919 abuf
-> written
= written
;
10924 /* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
10927 SEM_FN_NAME ( frvbf
, fcbugelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10929 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10930 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10931 int UNUSED written
= 0 ;
10932 IADDR UNUSED pc
= abuf
-> addr
;
10933 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10936 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10939 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10941 USI opval
= tmp_tmp
;
10942 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10943 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10945 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 ))))) {
10946 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10947 if ( NESI ( tmp_tmp
, 0 )) {
10949 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10950 sim_queue_pc_write ( current_cpu
, opval
);
10951 written
|= ( 1 << 6 );
10952 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10956 if ( EQSI ( tmp_tmp
, 0 )) {
10958 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10959 sim_queue_pc_write ( current_cpu
, opval
);
10960 written
|= ( 1 << 6 );
10961 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10969 abuf
-> written
= written
;
10974 /* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
10977 SEM_FN_NAME ( frvbf
, fcbuglr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10979 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10980 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10981 int UNUSED written
= 0 ;
10982 IADDR UNUSED pc
= abuf
-> addr
;
10983 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10986 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10989 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10991 USI opval
= tmp_tmp
;
10992 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10993 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10995 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
10996 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10997 if ( NESI ( tmp_tmp
, 0 )) {
10999 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11000 sim_queue_pc_write ( current_cpu
, opval
);
11001 written
|= ( 1 << 6 );
11002 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11006 if ( EQSI ( tmp_tmp
, 0 )) {
11008 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11009 sim_queue_pc_write ( current_cpu
, opval
);
11010 written
|= ( 1 << 6 );
11011 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11019 abuf
-> written
= written
;
11024 /* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11027 SEM_FN_NAME ( frvbf
, fcblelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11029 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11030 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11031 int UNUSED written
= 0 ;
11032 IADDR UNUSED pc
= abuf
-> addr
;
11033 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11036 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
11039 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
11041 USI opval
= tmp_tmp
;
11042 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
11043 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
11045 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 )))) {
11046 if ( EQSI ( FLD ( f_ccond
), 0 )) {
11047 if ( NESI ( tmp_tmp
, 0 )) {
11049 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11050 sim_queue_pc_write ( current_cpu
, opval
);
11051 written
|= ( 1 << 6 );
11052 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11056 if ( EQSI ( tmp_tmp
, 0 )) {
11058 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11059 sim_queue_pc_write ( current_cpu
, opval
);
11060 written
|= ( 1 << 6 );
11061 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11069 abuf
-> written
= written
;
11074 /* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11077 SEM_FN_NAME ( frvbf
, fcbgtlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11079 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11080 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11081 int UNUSED written
= 0 ;
11082 IADDR UNUSED pc
= abuf
-> addr
;
11083 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11086 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
11089 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
11091 USI opval
= tmp_tmp
;
11092 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
11093 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
11095 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 ))) {
11096 if ( EQSI ( FLD ( f_ccond
), 0 )) {
11097 if ( NESI ( tmp_tmp
, 0 )) {
11099 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11100 sim_queue_pc_write ( current_cpu
, opval
);
11101 written
|= ( 1 << 6 );
11102 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11106 if ( EQSI ( tmp_tmp
, 0 )) {
11108 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11109 sim_queue_pc_write ( current_cpu
, opval
);
11110 written
|= ( 1 << 6 );
11111 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11119 abuf
-> written
= written
;
11124 /* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11127 SEM_FN_NAME ( frvbf
, fcbulelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11129 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11130 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11131 int UNUSED written
= 0 ;
11132 IADDR UNUSED pc
= abuf
-> addr
;
11133 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11136 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
11139 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
11141 USI opval
= tmp_tmp
;
11142 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
11143 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
11145 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 ))))) {
11146 if ( EQSI ( FLD ( f_ccond
), 0 )) {
11147 if ( NESI ( tmp_tmp
, 0 )) {
11149 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11150 sim_queue_pc_write ( current_cpu
, opval
);
11151 written
|= ( 1 << 6 );
11152 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11156 if ( EQSI ( tmp_tmp
, 0 )) {
11158 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11159 sim_queue_pc_write ( current_cpu
, opval
);
11160 written
|= ( 1 << 6 );
11161 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11169 abuf
-> written
= written
;
11174 /* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11177 SEM_FN_NAME ( frvbf
, fcbulr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11179 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11180 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11181 int UNUSED written
= 0 ;
11182 IADDR UNUSED pc
= abuf
-> addr
;
11183 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11186 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
11189 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
11191 USI opval
= tmp_tmp
;
11192 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
11193 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
11195 if ( TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))) {
11196 if ( EQSI ( FLD ( f_ccond
), 0 )) {
11197 if ( NESI ( tmp_tmp
, 0 )) {
11199 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11200 sim_queue_pc_write ( current_cpu
, opval
);
11201 written
|= ( 1 << 6 );
11202 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11206 if ( EQSI ( tmp_tmp
, 0 )) {
11208 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11209 sim_queue_pc_write ( current_cpu
, opval
);
11210 written
|= ( 1 << 6 );
11211 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11219 abuf
-> written
= written
;
11224 /* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11227 SEM_FN_NAME ( frvbf
, fcbolr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11229 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11230 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11231 int UNUSED written
= 0 ;
11232 IADDR UNUSED pc
= abuf
-> addr
;
11233 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11236 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
11239 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
11241 USI opval
= tmp_tmp
;
11242 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
11243 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
11245 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 ))))) {
11246 if ( EQSI ( FLD ( f_ccond
), 0 )) {
11247 if ( NESI ( tmp_tmp
, 0 )) {
11249 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11250 sim_queue_pc_write ( current_cpu
, opval
);
11251 written
|= ( 1 << 6 );
11252 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11256 if ( EQSI ( tmp_tmp
, 0 )) {
11258 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11259 sim_queue_pc_write ( current_cpu
, opval
);
11260 written
|= ( 1 << 6 );
11261 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11269 abuf
-> written
= written
;
11274 /* jmpl: jmpl$pack @($GRi,$GRj) */
11277 SEM_FN_NAME ( frvbf
, jmpl
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11279 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11280 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11281 int UNUSED written
= 0 ;
11282 IADDR UNUSED pc
= abuf
-> addr
;
11283 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11286 if ( EQSI ( FLD ( f_LI
), 1 )) {
11287 frvbf_set_write_next_vliw_addr_to_LR ( current_cpu
, 1 );
11290 USI opval
= ANDSI ( ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), 0xfffffffc );
11291 sim_queue_pc_write ( current_cpu
, opval
);
11292 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11294 frvbf_model_branch ( current_cpu
, pc
, 2 );
11301 /* calll: calll$pack $callann($GRi,$GRj) */
11304 SEM_FN_NAME ( frvbf
, calll
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11306 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11307 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11308 int UNUSED written
= 0 ;
11309 IADDR UNUSED pc
= abuf
-> addr
;
11310 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11313 if ( EQSI ( FLD ( f_LI
), 1 )) {
11314 frvbf_set_write_next_vliw_addr_to_LR ( current_cpu
, 1 );
11317 USI opval
= ANDSI ( ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), 0xfffffffc );
11318 sim_queue_pc_write ( current_cpu
, opval
);
11319 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11321 frvbf_model_branch ( current_cpu
, pc
, 2 );
11328 /* jmpil: jmpil$pack @($GRi,$s12) */
11331 SEM_FN_NAME ( frvbf
, jmpil
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11333 #define FLD(f) abuf->fields.sfmt_jmpil.f
11334 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11335 int UNUSED written
= 0 ;
11336 IADDR UNUSED pc
= abuf
-> addr
;
11337 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11340 if ( EQSI ( FLD ( f_LI
), 1 )) {
11341 frvbf_set_write_next_vliw_addr_to_LR ( current_cpu
, 1 );
11344 USI opval
= ANDSI ( ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), 0xfffffffc );
11345 sim_queue_pc_write ( current_cpu
, opval
);
11346 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11348 frvbf_model_branch ( current_cpu
, pc
, 2 );
11355 /* callil: callil$pack @($GRi,$s12) */
11358 SEM_FN_NAME ( frvbf
, callil
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11360 #define FLD(f) abuf->fields.sfmt_jmpil.f
11361 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11362 int UNUSED written
= 0 ;
11363 IADDR UNUSED pc
= abuf
-> addr
;
11364 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11367 if ( EQSI ( FLD ( f_LI
), 1 )) {
11368 frvbf_set_write_next_vliw_addr_to_LR ( current_cpu
, 1 );
11371 USI opval
= ANDSI ( ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), 0xfffffffc );
11372 sim_queue_pc_write ( current_cpu
, opval
);
11373 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11375 frvbf_model_branch ( current_cpu
, pc
, 2 );
11382 /* call: call$pack $label24 */
11385 SEM_FN_NAME ( frvbf
, call
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11387 #define FLD(f) abuf->fields.sfmt_call.f
11388 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11389 int UNUSED written
= 0 ;
11390 IADDR UNUSED pc
= abuf
-> addr
;
11391 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11394 frvbf_set_write_next_vliw_addr_to_LR ( current_cpu
, 1 );
11396 USI opval
= FLD ( i_label24
);
11397 sim_queue_pc_write ( current_cpu
, opval
);
11398 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11400 frvbf_model_branch ( current_cpu
, pc
, 2 );
11407 /* rett: rett$pack $debug */
11410 SEM_FN_NAME ( frvbf
, rett
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11412 #define FLD(f) abuf->fields.sfmt_rett.f
11413 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11414 int UNUSED written
= 0 ;
11415 IADDR UNUSED pc
= abuf
-> addr
;
11416 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11420 USI opval
= frv_rett ( current_cpu
, pc
, FLD ( f_debug
));
11421 sim_queue_pc_write ( current_cpu
, opval
);
11422 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11424 frvbf_model_branch ( current_cpu
, pc
, 2 );
11431 /* rei: rei$pack $eir */
11434 SEM_FN_NAME ( frvbf
, rei
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11436 #define FLD(f) abuf->fields.sfmt_empty.f
11437 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11438 int UNUSED written
= 0 ;
11439 IADDR UNUSED pc
= abuf
-> addr
;
11440 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11442 (( void ) 0 ); /*nop*/
11448 /* tra: tra$pack $GRi,$GRj */
11451 SEM_FN_NAME ( frvbf
, tra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11453 #define FLD(f) abuf->fields.sfmt_ftne.f
11454 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11455 int UNUSED written
= 0 ;
11456 IADDR UNUSED pc
= abuf
-> addr
;
11457 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11464 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11472 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11475 abuf
-> written
= written
;
11480 /* tno: tno$pack */
11483 SEM_FN_NAME ( frvbf
, tno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11485 #define FLD(f) abuf->fields.sfmt_empty.f
11486 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11487 int UNUSED written
= 0 ;
11488 IADDR UNUSED pc
= abuf
-> addr
;
11489 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11491 (( void ) 0 ); /*nop*/
11497 /* teq: teq$pack $ICCi_2,$GRi,$GRj */
11500 SEM_FN_NAME ( frvbf
, teq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11502 #define FLD(f) abuf->fields.sfmt_teq.f
11503 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11504 int UNUSED written
= 0 ;
11505 IADDR UNUSED pc
= abuf
-> addr
;
11506 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11508 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 ))) {
11514 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11522 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11526 abuf
-> written
= written
;
11531 /* tne: tne$pack $ICCi_2,$GRi,$GRj */
11534 SEM_FN_NAME ( frvbf
, tne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11536 #define FLD(f) abuf->fields.sfmt_teq.f
11537 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11538 int UNUSED written
= 0 ;
11539 IADDR UNUSED pc
= abuf
-> addr
;
11540 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11542 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
11548 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11556 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11560 abuf
-> written
= written
;
11565 /* tle: tle$pack $ICCi_2,$GRi,$GRj */
11568 SEM_FN_NAME ( frvbf
, tle
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11570 #define FLD(f) abuf->fields.sfmt_teq.f
11571 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11572 int UNUSED written
= 0 ;
11573 IADDR UNUSED pc
= abuf
-> addr
;
11574 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11576 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 ))))) {
11582 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11590 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11594 abuf
-> written
= written
;
11599 /* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11602 SEM_FN_NAME ( frvbf
, tgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11604 #define FLD(f) abuf->fields.sfmt_teq.f
11605 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11606 int UNUSED written
= 0 ;
11607 IADDR UNUSED pc
= abuf
-> addr
;
11608 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11610 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 )))))) {
11616 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11624 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11628 abuf
-> written
= written
;
11633 /* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11636 SEM_FN_NAME ( frvbf
, tlt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11638 #define FLD(f) abuf->fields.sfmt_teq.f
11639 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11640 int UNUSED written
= 0 ;
11641 IADDR UNUSED pc
= abuf
-> addr
;
11642 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11644 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 )))) {
11650 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11658 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11662 abuf
-> written
= written
;
11667 /* tge: tge$pack $ICCi_2,$GRi,$GRj */
11670 SEM_FN_NAME ( frvbf
, tge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11672 #define FLD(f) abuf->fields.sfmt_teq.f
11673 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11674 int UNUSED written
= 0 ;
11675 IADDR UNUSED pc
= abuf
-> addr
;
11676 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11678 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 ))))) {
11684 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11692 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11696 abuf
-> written
= written
;
11701 /* tls: tls$pack $ICCi_2,$GRi,$GRj */
11704 SEM_FN_NAME ( frvbf
, tls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11706 #define FLD(f) abuf->fields.sfmt_teq.f
11707 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11708 int UNUSED written
= 0 ;
11709 IADDR UNUSED pc
= abuf
-> addr
;
11710 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11712 if ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
11718 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11726 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11730 abuf
-> written
= written
;
11735 /* thi: thi$pack $ICCi_2,$GRi,$GRj */
11738 SEM_FN_NAME ( frvbf
, thi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11740 #define FLD(f) abuf->fields.sfmt_teq.f
11741 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11742 int UNUSED written
= 0 ;
11743 IADDR UNUSED pc
= abuf
-> addr
;
11744 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11746 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 ))))) {
11752 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11760 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11764 abuf
-> written
= written
;
11769 /* tc: tc$pack $ICCi_2,$GRi,$GRj */
11772 SEM_FN_NAME ( frvbf
, tc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11774 #define FLD(f) abuf->fields.sfmt_teq.f
11775 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11776 int UNUSED written
= 0 ;
11777 IADDR UNUSED pc
= abuf
-> addr
;
11778 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11780 if ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 ))) {
11786 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11794 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11798 abuf
-> written
= written
;
11803 /* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
11806 SEM_FN_NAME ( frvbf
, tnc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11808 #define FLD(f) abuf->fields.sfmt_teq.f
11809 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11810 int UNUSED written
= 0 ;
11811 IADDR UNUSED pc
= abuf
-> addr
;
11812 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11814 if ( NOTBI ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )))) {
11820 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11828 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11832 abuf
-> written
= written
;
11837 /* tn: tn$pack $ICCi_2,$GRi,$GRj */
11840 SEM_FN_NAME ( frvbf
, tn
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11842 #define FLD(f) abuf->fields.sfmt_teq.f
11843 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11844 int UNUSED written
= 0 ;
11845 IADDR UNUSED pc
= abuf
-> addr
;
11846 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11848 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 ))) {
11854 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11862 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11866 abuf
-> written
= written
;
11871 /* tp: tp$pack $ICCi_2,$GRi,$GRj */
11874 SEM_FN_NAME ( frvbf
, tp
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11876 #define FLD(f) abuf->fields.sfmt_teq.f
11877 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11878 int UNUSED written
= 0 ;
11879 IADDR UNUSED pc
= abuf
-> addr
;
11880 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11882 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )))) {
11888 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11896 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11900 abuf
-> written
= written
;
11905 /* tv: tv$pack $ICCi_2,$GRi,$GRj */
11908 SEM_FN_NAME ( frvbf
, tv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11910 #define FLD(f) abuf->fields.sfmt_teq.f
11911 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11912 int UNUSED written
= 0 ;
11913 IADDR UNUSED pc
= abuf
-> addr
;
11914 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11916 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))) {
11922 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11930 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11934 abuf
-> written
= written
;
11939 /* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
11942 SEM_FN_NAME ( frvbf
, tnv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11944 #define FLD(f) abuf->fields.sfmt_teq.f
11945 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11946 int UNUSED written
= 0 ;
11947 IADDR UNUSED pc
= abuf
-> addr
;
11948 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11950 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))) {
11956 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11964 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11968 abuf
-> written
= written
;
11973 /* ftra: ftra$pack $GRi,$GRj */
11976 SEM_FN_NAME ( frvbf
, ftra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11978 #define FLD(f) abuf->fields.sfmt_ftne.f
11979 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11980 int UNUSED written
= 0 ;
11981 IADDR UNUSED pc
= abuf
-> addr
;
11982 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11989 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11997 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12000 abuf
-> written
= written
;
12005 /* ftno: ftno$pack */
12008 SEM_FN_NAME ( frvbf
, ftno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12010 #define FLD(f) abuf->fields.sfmt_empty.f
12011 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12012 int UNUSED written
= 0 ;
12013 IADDR UNUSED pc
= abuf
-> addr
;
12014 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12016 (( void ) 0 ); /*nop*/
12022 /* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12025 SEM_FN_NAME ( frvbf
, ftne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12027 #define FLD(f) abuf->fields.sfmt_ftne.f
12028 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12029 int UNUSED written
= 0 ;
12030 IADDR UNUSED pc
= abuf
-> addr
;
12031 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12033 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 ))))) {
12039 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12047 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12051 abuf
-> written
= written
;
12056 /* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12059 SEM_FN_NAME ( frvbf
, fteq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12061 #define FLD(f) abuf->fields.sfmt_ftne.f
12062 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12063 int UNUSED written
= 0 ;
12064 IADDR UNUSED pc
= abuf
-> addr
;
12065 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12067 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 ))) {
12073 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12081 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12085 abuf
-> written
= written
;
12090 /* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12093 SEM_FN_NAME ( frvbf
, ftlg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12095 #define FLD(f) abuf->fields.sfmt_ftne.f
12096 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12097 int UNUSED written
= 0 ;
12098 IADDR UNUSED pc
= abuf
-> addr
;
12099 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12101 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 )))) {
12107 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12115 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12119 abuf
-> written
= written
;
12124 /* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12127 SEM_FN_NAME ( frvbf
, ftue
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12129 #define FLD(f) abuf->fields.sfmt_ftne.f
12130 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12131 int UNUSED written
= 0 ;
12132 IADDR UNUSED pc
= abuf
-> addr
;
12133 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12135 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
12141 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12149 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12153 abuf
-> written
= written
;
12158 /* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12161 SEM_FN_NAME ( frvbf
, ftul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12163 #define FLD(f) abuf->fields.sfmt_ftne.f
12164 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12165 int UNUSED written
= 0 ;
12166 IADDR UNUSED pc
= abuf
-> addr
;
12167 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12169 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
12175 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12183 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12187 abuf
-> written
= written
;
12192 /* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12195 SEM_FN_NAME ( frvbf
, ftge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12197 #define FLD(f) abuf->fields.sfmt_ftne.f
12198 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12199 int UNUSED written
= 0 ;
12200 IADDR UNUSED pc
= abuf
-> addr
;
12201 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12203 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 )))) {
12209 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12217 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12221 abuf
-> written
= written
;
12226 /* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12229 SEM_FN_NAME ( frvbf
, ftlt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12231 #define FLD(f) abuf->fields.sfmt_ftne.f
12232 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12233 int UNUSED written
= 0 ;
12234 IADDR UNUSED pc
= abuf
-> addr
;
12235 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12237 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 ))) {
12243 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12251 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12255 abuf
-> written
= written
;
12260 /* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12263 SEM_FN_NAME ( frvbf
, ftuge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12265 #define FLD(f) abuf->fields.sfmt_ftne.f
12266 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12267 int UNUSED written
= 0 ;
12268 IADDR UNUSED pc
= abuf
-> addr
;
12269 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12271 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 ))))) {
12277 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12285 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12289 abuf
-> written
= written
;
12294 /* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12297 SEM_FN_NAME ( frvbf
, ftug
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12299 #define FLD(f) abuf->fields.sfmt_ftne.f
12300 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12301 int UNUSED written
= 0 ;
12302 IADDR UNUSED pc
= abuf
-> addr
;
12303 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12305 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
12311 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12319 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12323 abuf
-> written
= written
;
12328 /* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12331 SEM_FN_NAME ( frvbf
, ftle
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12333 #define FLD(f) abuf->fields.sfmt_ftne.f
12334 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12335 int UNUSED written
= 0 ;
12336 IADDR UNUSED pc
= abuf
-> addr
;
12337 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12339 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 )))) {
12345 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12353 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12357 abuf
-> written
= written
;
12362 /* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12365 SEM_FN_NAME ( frvbf
, ftgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12367 #define FLD(f) abuf->fields.sfmt_ftne.f
12368 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12369 int UNUSED written
= 0 ;
12370 IADDR UNUSED pc
= abuf
-> addr
;
12371 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12373 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 ))) {
12379 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12387 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12391 abuf
-> written
= written
;
12396 /* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12399 SEM_FN_NAME ( frvbf
, ftule
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12401 #define FLD(f) abuf->fields.sfmt_ftne.f
12402 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12403 int UNUSED written
= 0 ;
12404 IADDR UNUSED pc
= abuf
-> addr
;
12405 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12407 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 ))))) {
12413 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12421 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12425 abuf
-> written
= written
;
12430 /* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12433 SEM_FN_NAME ( frvbf
, ftu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12435 #define FLD(f) abuf->fields.sfmt_ftne.f
12436 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12437 int UNUSED written
= 0 ;
12438 IADDR UNUSED pc
= abuf
-> addr
;
12439 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12441 if ( TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))) {
12447 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12455 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12459 abuf
-> written
= written
;
12464 /* fto: fto$pack $FCCi_2,$GRi,$GRj */
12467 SEM_FN_NAME ( frvbf
, fto
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12469 #define FLD(f) abuf->fields.sfmt_ftne.f
12470 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12471 int UNUSED written
= 0 ;
12472 IADDR UNUSED pc
= abuf
-> addr
;
12473 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12475 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 ))))) {
12481 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12489 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12493 abuf
-> written
= written
;
12498 /* tira: tira$pack $GRi,$s12 */
12501 SEM_FN_NAME ( frvbf
, tira
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12503 #define FLD(f) abuf->fields.sfmt_ftine.f
12504 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12505 int UNUSED written
= 0 ;
12506 IADDR UNUSED pc
= abuf
-> addr
;
12507 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12514 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12522 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12525 abuf
-> written
= written
;
12530 /* tino: tino$pack */
12533 SEM_FN_NAME ( frvbf
, tino
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12535 #define FLD(f) abuf->fields.sfmt_empty.f
12536 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12537 int UNUSED written
= 0 ;
12538 IADDR UNUSED pc
= abuf
-> addr
;
12539 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12541 (( void ) 0 ); /*nop*/
12547 /* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12550 SEM_FN_NAME ( frvbf
, tieq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12552 #define FLD(f) abuf->fields.sfmt_tieq.f
12553 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12554 int UNUSED written
= 0 ;
12555 IADDR UNUSED pc
= abuf
-> addr
;
12556 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12558 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 ))) {
12564 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12572 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12576 abuf
-> written
= written
;
12581 /* tine: tine$pack $ICCi_2,$GRi,$s12 */
12584 SEM_FN_NAME ( frvbf
, tine
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12586 #define FLD(f) abuf->fields.sfmt_tieq.f
12587 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12588 int UNUSED written
= 0 ;
12589 IADDR UNUSED pc
= abuf
-> addr
;
12590 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12592 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
12598 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12606 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12610 abuf
-> written
= written
;
12615 /* tile: tile$pack $ICCi_2,$GRi,$s12 */
12618 SEM_FN_NAME ( frvbf
, tile
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12620 #define FLD(f) abuf->fields.sfmt_tieq.f
12621 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12622 int UNUSED written
= 0 ;
12623 IADDR UNUSED pc
= abuf
-> addr
;
12624 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12626 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 ))))) {
12632 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12640 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12644 abuf
-> written
= written
;
12649 /* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12652 SEM_FN_NAME ( frvbf
, tigt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12654 #define FLD(f) abuf->fields.sfmt_tieq.f
12655 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12656 int UNUSED written
= 0 ;
12657 IADDR UNUSED pc
= abuf
-> addr
;
12658 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12660 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 )))))) {
12666 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12674 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12678 abuf
-> written
= written
;
12683 /* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12686 SEM_FN_NAME ( frvbf
, tilt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12688 #define FLD(f) abuf->fields.sfmt_tieq.f
12689 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12690 int UNUSED written
= 0 ;
12691 IADDR UNUSED pc
= abuf
-> addr
;
12692 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12694 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 )))) {
12700 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12708 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12712 abuf
-> written
= written
;
12717 /* tige: tige$pack $ICCi_2,$GRi,$s12 */
12720 SEM_FN_NAME ( frvbf
, tige
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12722 #define FLD(f) abuf->fields.sfmt_tieq.f
12723 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12724 int UNUSED written
= 0 ;
12725 IADDR UNUSED pc
= abuf
-> addr
;
12726 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12728 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 ))))) {
12734 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12742 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12746 abuf
-> written
= written
;
12751 /* tils: tils$pack $ICCi_2,$GRi,$s12 */
12754 SEM_FN_NAME ( frvbf
, tils
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12756 #define FLD(f) abuf->fields.sfmt_tieq.f
12757 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12758 int UNUSED written
= 0 ;
12759 IADDR UNUSED pc
= abuf
-> addr
;
12760 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12762 if ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
12768 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12776 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12780 abuf
-> written
= written
;
12785 /* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
12788 SEM_FN_NAME ( frvbf
, tihi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12790 #define FLD(f) abuf->fields.sfmt_tieq.f
12791 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12792 int UNUSED written
= 0 ;
12793 IADDR UNUSED pc
= abuf
-> addr
;
12794 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12796 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 ))))) {
12802 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12810 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12814 abuf
-> written
= written
;
12819 /* tic: tic$pack $ICCi_2,$GRi,$s12 */
12822 SEM_FN_NAME ( frvbf
, tic
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12824 #define FLD(f) abuf->fields.sfmt_tieq.f
12825 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12826 int UNUSED written
= 0 ;
12827 IADDR UNUSED pc
= abuf
-> addr
;
12828 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12830 if ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 ))) {
12836 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12844 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12848 abuf
-> written
= written
;
12853 /* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
12856 SEM_FN_NAME ( frvbf
, tinc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12858 #define FLD(f) abuf->fields.sfmt_tieq.f
12859 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12860 int UNUSED written
= 0 ;
12861 IADDR UNUSED pc
= abuf
-> addr
;
12862 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12864 if ( NOTBI ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )))) {
12870 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12878 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12882 abuf
-> written
= written
;
12887 /* tin: tin$pack $ICCi_2,$GRi,$s12 */
12890 SEM_FN_NAME ( frvbf
, tin
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12892 #define FLD(f) abuf->fields.sfmt_tieq.f
12893 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12894 int UNUSED written
= 0 ;
12895 IADDR UNUSED pc
= abuf
-> addr
;
12896 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12898 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 ))) {
12904 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12912 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12916 abuf
-> written
= written
;
12921 /* tip: tip$pack $ICCi_2,$GRi,$s12 */
12924 SEM_FN_NAME ( frvbf
, tip
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12926 #define FLD(f) abuf->fields.sfmt_tieq.f
12927 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12928 int UNUSED written
= 0 ;
12929 IADDR UNUSED pc
= abuf
-> addr
;
12930 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12932 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )))) {
12938 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12946 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12950 abuf
-> written
= written
;
12955 /* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
12958 SEM_FN_NAME ( frvbf
, tiv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12960 #define FLD(f) abuf->fields.sfmt_tieq.f
12961 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12962 int UNUSED written
= 0 ;
12963 IADDR UNUSED pc
= abuf
-> addr
;
12964 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12966 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))) {
12972 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12980 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12984 abuf
-> written
= written
;
12989 /* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
12992 SEM_FN_NAME ( frvbf
, tinv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12994 #define FLD(f) abuf->fields.sfmt_tieq.f
12995 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12996 int UNUSED written
= 0 ;
12997 IADDR UNUSED pc
= abuf
-> addr
;
12998 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13000 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))) {
13006 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13014 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13018 abuf
-> written
= written
;
13023 /* ftira: ftira$pack $GRi,$s12 */
13026 SEM_FN_NAME ( frvbf
, ftira
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13028 #define FLD(f) abuf->fields.sfmt_ftine.f
13029 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13030 int UNUSED written
= 0 ;
13031 IADDR UNUSED pc
= abuf
-> addr
;
13032 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13039 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13047 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13050 abuf
-> written
= written
;
13055 /* ftino: ftino$pack */
13058 SEM_FN_NAME ( frvbf
, ftino
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13060 #define FLD(f) abuf->fields.sfmt_empty.f
13061 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13062 int UNUSED written
= 0 ;
13063 IADDR UNUSED pc
= abuf
-> addr
;
13064 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13066 (( void ) 0 ); /*nop*/
13072 /* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13075 SEM_FN_NAME ( frvbf
, ftine
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13077 #define FLD(f) abuf->fields.sfmt_ftine.f
13078 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13079 int UNUSED written
= 0 ;
13080 IADDR UNUSED pc
= abuf
-> addr
;
13081 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13083 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 ))))) {
13089 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13097 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13101 abuf
-> written
= written
;
13106 /* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13109 SEM_FN_NAME ( frvbf
, ftieq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13111 #define FLD(f) abuf->fields.sfmt_ftine.f
13112 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13113 int UNUSED written
= 0 ;
13114 IADDR UNUSED pc
= abuf
-> addr
;
13115 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13117 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 ))) {
13123 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13131 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13135 abuf
-> written
= written
;
13140 /* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13143 SEM_FN_NAME ( frvbf
, ftilg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13145 #define FLD(f) abuf->fields.sfmt_ftine.f
13146 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13147 int UNUSED written
= 0 ;
13148 IADDR UNUSED pc
= abuf
-> addr
;
13149 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13151 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 )))) {
13157 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13165 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13169 abuf
-> written
= written
;
13174 /* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13177 SEM_FN_NAME ( frvbf
, ftiue
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13179 #define FLD(f) abuf->fields.sfmt_ftine.f
13180 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13181 int UNUSED written
= 0 ;
13182 IADDR UNUSED pc
= abuf
-> addr
;
13183 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13185 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
13191 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13199 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13203 abuf
-> written
= written
;
13208 /* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13211 SEM_FN_NAME ( frvbf
, ftiul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13213 #define FLD(f) abuf->fields.sfmt_ftine.f
13214 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13215 int UNUSED written
= 0 ;
13216 IADDR UNUSED pc
= abuf
-> addr
;
13217 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13219 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
13225 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13233 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13237 abuf
-> written
= written
;
13242 /* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13245 SEM_FN_NAME ( frvbf
, ftige
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13247 #define FLD(f) abuf->fields.sfmt_ftine.f
13248 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13249 int UNUSED written
= 0 ;
13250 IADDR UNUSED pc
= abuf
-> addr
;
13251 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13253 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 )))) {
13259 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13267 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13271 abuf
-> written
= written
;
13276 /* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13279 SEM_FN_NAME ( frvbf
, ftilt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13281 #define FLD(f) abuf->fields.sfmt_ftine.f
13282 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13283 int UNUSED written
= 0 ;
13284 IADDR UNUSED pc
= abuf
-> addr
;
13285 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13287 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 ))) {
13293 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13301 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13305 abuf
-> written
= written
;
13310 /* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13313 SEM_FN_NAME ( frvbf
, ftiuge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13315 #define FLD(f) abuf->fields.sfmt_ftine.f
13316 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13317 int UNUSED written
= 0 ;
13318 IADDR UNUSED pc
= abuf
-> addr
;
13319 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13321 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 ))))) {
13327 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13335 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13339 abuf
-> written
= written
;
13344 /* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13347 SEM_FN_NAME ( frvbf
, ftiug
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13349 #define FLD(f) abuf->fields.sfmt_ftine.f
13350 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13351 int UNUSED written
= 0 ;
13352 IADDR UNUSED pc
= abuf
-> addr
;
13353 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13355 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
13361 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13369 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13373 abuf
-> written
= written
;
13378 /* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13381 SEM_FN_NAME ( frvbf
, ftile
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13383 #define FLD(f) abuf->fields.sfmt_ftine.f
13384 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13385 int UNUSED written
= 0 ;
13386 IADDR UNUSED pc
= abuf
-> addr
;
13387 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13389 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 )))) {
13395 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13403 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13407 abuf
-> written
= written
;
13412 /* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13415 SEM_FN_NAME ( frvbf
, ftigt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13417 #define FLD(f) abuf->fields.sfmt_ftine.f
13418 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13419 int UNUSED written
= 0 ;
13420 IADDR UNUSED pc
= abuf
-> addr
;
13421 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13423 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 ))) {
13429 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13437 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13441 abuf
-> written
= written
;
13446 /* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13449 SEM_FN_NAME ( frvbf
, ftiule
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13451 #define FLD(f) abuf->fields.sfmt_ftine.f
13452 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13453 int UNUSED written
= 0 ;
13454 IADDR UNUSED pc
= abuf
-> addr
;
13455 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13457 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 ))))) {
13463 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13471 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13475 abuf
-> written
= written
;
13480 /* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13483 SEM_FN_NAME ( frvbf
, ftiu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13485 #define FLD(f) abuf->fields.sfmt_ftine.f
13486 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13487 int UNUSED written
= 0 ;
13488 IADDR UNUSED pc
= abuf
-> addr
;
13489 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13491 if ( TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))) {
13497 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13505 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13509 abuf
-> written
= written
;
13514 /* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13517 SEM_FN_NAME ( frvbf
, ftio
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13519 #define FLD(f) abuf->fields.sfmt_ftine.f
13520 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13521 int UNUSED written
= 0 ;
13522 IADDR UNUSED pc
= abuf
-> addr
;
13523 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13525 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 ))))) {
13531 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13539 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13543 abuf
-> written
= written
;
13548 /* break: break$pack */
13551 SEM_FN_NAME ( frvbf
, break ) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13553 #define FLD(f) abuf->fields.sfmt_break.f
13554 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13555 int UNUSED written
= 0 ;
13556 IADDR UNUSED pc
= abuf
-> addr
;
13557 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13566 frv_break ( current_cpu
);
13573 /* mtrap: mtrap$pack */
13576 SEM_FN_NAME ( frvbf
, mtrap
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13578 #define FLD(f) abuf->fields.sfmt_empty.f
13579 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13580 int UNUSED written
= 0 ;
13581 IADDR UNUSED pc
= abuf
-> addr
;
13582 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13584 frv_mtrap ( current_cpu
);
13590 /* andcr: andcr$pack $CRi,$CRj,$CRk */
13593 SEM_FN_NAME ( frvbf
, andcr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13595 #define FLD(f) abuf->fields.sfmt_andcr.f
13596 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13597 int UNUSED written
= 0 ;
13598 IADDR UNUSED pc
= abuf
-> addr
;
13599 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13602 UQI opval
= frvbf_cr_logic ( current_cpu
, 0 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13603 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13604 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13611 /* orcr: orcr$pack $CRi,$CRj,$CRk */
13614 SEM_FN_NAME ( frvbf
, orcr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13616 #define FLD(f) abuf->fields.sfmt_andcr.f
13617 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13618 int UNUSED written
= 0 ;
13619 IADDR UNUSED pc
= abuf
-> addr
;
13620 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13623 UQI opval
= frvbf_cr_logic ( current_cpu
, 1 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13624 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13625 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13632 /* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13635 SEM_FN_NAME ( frvbf
, xorcr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13637 #define FLD(f) abuf->fields.sfmt_andcr.f
13638 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13639 int UNUSED written
= 0 ;
13640 IADDR UNUSED pc
= abuf
-> addr
;
13641 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13644 UQI opval
= frvbf_cr_logic ( current_cpu
, 2 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13645 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13646 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13653 /* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13656 SEM_FN_NAME ( frvbf
, nandcr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13658 #define FLD(f) abuf->fields.sfmt_andcr.f
13659 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13660 int UNUSED written
= 0 ;
13661 IADDR UNUSED pc
= abuf
-> addr
;
13662 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13665 UQI opval
= frvbf_cr_logic ( current_cpu
, 3 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13666 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13667 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13674 /* norcr: norcr$pack $CRi,$CRj,$CRk */
13677 SEM_FN_NAME ( frvbf
, norcr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13679 #define FLD(f) abuf->fields.sfmt_andcr.f
13680 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13681 int UNUSED written
= 0 ;
13682 IADDR UNUSED pc
= abuf
-> addr
;
13683 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13686 UQI opval
= frvbf_cr_logic ( current_cpu
, 4 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13687 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13688 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13695 /* andncr: andncr$pack $CRi,$CRj,$CRk */
13698 SEM_FN_NAME ( frvbf
, andncr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13700 #define FLD(f) abuf->fields.sfmt_andcr.f
13701 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13702 int UNUSED written
= 0 ;
13703 IADDR UNUSED pc
= abuf
-> addr
;
13704 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13707 UQI opval
= frvbf_cr_logic ( current_cpu
, 5 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13708 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13709 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13716 /* orncr: orncr$pack $CRi,$CRj,$CRk */
13719 SEM_FN_NAME ( frvbf
, orncr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13721 #define FLD(f) abuf->fields.sfmt_andcr.f
13722 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13723 int UNUSED written
= 0 ;
13724 IADDR UNUSED pc
= abuf
-> addr
;
13725 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13728 UQI opval
= frvbf_cr_logic ( current_cpu
, 6 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13729 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13730 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13737 /* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13740 SEM_FN_NAME ( frvbf
, nandncr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13742 #define FLD(f) abuf->fields.sfmt_andcr.f
13743 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13744 int UNUSED written
= 0 ;
13745 IADDR UNUSED pc
= abuf
-> addr
;
13746 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13749 UQI opval
= frvbf_cr_logic ( current_cpu
, 7 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13750 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13751 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13758 /* norncr: norncr$pack $CRi,$CRj,$CRk */
13761 SEM_FN_NAME ( frvbf
, norncr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13763 #define FLD(f) abuf->fields.sfmt_andcr.f
13764 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13765 int UNUSED written
= 0 ;
13766 IADDR UNUSED pc
= abuf
-> addr
;
13767 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13770 UQI opval
= frvbf_cr_logic ( current_cpu
, 8 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13771 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13772 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13779 /* notcr: notcr$pack $CRj,$CRk */
13782 SEM_FN_NAME ( frvbf
, notcr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13784 #define FLD(f) abuf->fields.sfmt_andcr.f
13785 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13786 int UNUSED written
= 0 ;
13787 IADDR UNUSED pc
= abuf
-> addr
;
13788 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13791 UQI opval
= XORQI ( CPU ( h_cccr
[ FLD ( f_CRj
)]), 1 );
13792 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13793 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13800 /* ckra: ckra$pack $CRj_int */
13803 SEM_FN_NAME ( frvbf
, ckra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13805 #define FLD(f) abuf->fields.sfmt_cckeq.f
13806 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13807 int UNUSED written
= 0 ;
13808 IADDR UNUSED pc
= abuf
-> addr
;
13809 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13813 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13814 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13821 /* ckno: ckno$pack $CRj_int */
13824 SEM_FN_NAME ( frvbf
, ckno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13826 #define FLD(f) abuf->fields.sfmt_cckeq.f
13827 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13828 int UNUSED written
= 0 ;
13829 IADDR UNUSED pc
= abuf
-> addr
;
13830 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13834 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13835 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13842 /* ckeq: ckeq$pack $ICCi_3,$CRj_int */
13845 SEM_FN_NAME ( frvbf
, ckeq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13847 #define FLD(f) abuf->fields.sfmt_cckeq.f
13848 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13849 int UNUSED written
= 0 ;
13850 IADDR UNUSED pc
= abuf
-> addr
;
13851 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13853 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 ))) {
13856 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13857 written
|= ( 1 << 1 );
13858 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13863 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13864 written
|= ( 1 << 1 );
13865 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13869 abuf
-> written
= written
;
13874 /* ckne: ckne$pack $ICCi_3,$CRj_int */
13877 SEM_FN_NAME ( frvbf
, ckne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13879 #define FLD(f) abuf->fields.sfmt_cckeq.f
13880 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13881 int UNUSED written
= 0 ;
13882 IADDR UNUSED pc
= abuf
-> addr
;
13883 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13885 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 )))) {
13888 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13889 written
|= ( 1 << 1 );
13890 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13895 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13896 written
|= ( 1 << 1 );
13897 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13901 abuf
-> written
= written
;
13906 /* ckle: ckle$pack $ICCi_3,$CRj_int */
13909 SEM_FN_NAME ( frvbf
, ckle
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13911 #define FLD(f) abuf->fields.sfmt_cckeq.f
13912 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13913 int UNUSED written
= 0 ;
13914 IADDR UNUSED pc
= abuf
-> addr
;
13915 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13917 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 ))))) {
13920 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13921 written
|= ( 1 << 1 );
13922 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13927 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13928 written
|= ( 1 << 1 );
13929 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13933 abuf
-> written
= written
;
13938 /* ckgt: ckgt$pack $ICCi_3,$CRj_int */
13941 SEM_FN_NAME ( frvbf
, ckgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13943 #define FLD(f) abuf->fields.sfmt_cckeq.f
13944 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13945 int UNUSED written
= 0 ;
13946 IADDR UNUSED pc
= abuf
-> addr
;
13947 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13949 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 )))))) {
13952 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13953 written
|= ( 1 << 1 );
13954 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13959 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13960 written
|= ( 1 << 1 );
13961 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13965 abuf
-> written
= written
;
13970 /* cklt: cklt$pack $ICCi_3,$CRj_int */
13973 SEM_FN_NAME ( frvbf
, cklt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13975 #define FLD(f) abuf->fields.sfmt_cckeq.f
13976 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13977 int UNUSED written
= 0 ;
13978 IADDR UNUSED pc
= abuf
-> addr
;
13979 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13981 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 )))) {
13984 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13985 written
|= ( 1 << 1 );
13986 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13991 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13992 written
|= ( 1 << 1 );
13993 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13997 abuf
-> written
= written
;
14002 /* ckge: ckge$pack $ICCi_3,$CRj_int */
14005 SEM_FN_NAME ( frvbf
, ckge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14007 #define FLD(f) abuf->fields.sfmt_cckeq.f
14008 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14009 int UNUSED written
= 0 ;
14010 IADDR UNUSED pc
= abuf
-> addr
;
14011 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14013 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 ))))) {
14016 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14017 written
|= ( 1 << 1 );
14018 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14023 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14024 written
|= ( 1 << 1 );
14025 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14029 abuf
-> written
= written
;
14034 /* ckls: ckls$pack $ICCi_3,$CRj_int */
14037 SEM_FN_NAME ( frvbf
, ckls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14039 #define FLD(f) abuf->fields.sfmt_cckeq.f
14040 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14041 int UNUSED written
= 0 ;
14042 IADDR UNUSED pc
= abuf
-> addr
;
14043 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14045 if ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 )))) {
14048 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14049 written
|= ( 1 << 1 );
14050 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14055 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14056 written
|= ( 1 << 1 );
14057 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14061 abuf
-> written
= written
;
14066 /* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14069 SEM_FN_NAME ( frvbf
, ckhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14071 #define FLD(f) abuf->fields.sfmt_cckeq.f
14072 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14073 int UNUSED written
= 0 ;
14074 IADDR UNUSED pc
= abuf
-> addr
;
14075 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14077 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 ))))) {
14080 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14081 written
|= ( 1 << 1 );
14082 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14087 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14088 written
|= ( 1 << 1 );
14089 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14093 abuf
-> written
= written
;
14098 /* ckc: ckc$pack $ICCi_3,$CRj_int */
14101 SEM_FN_NAME ( frvbf
, ckc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14103 #define FLD(f) abuf->fields.sfmt_cckeq.f
14104 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14105 int UNUSED written
= 0 ;
14106 IADDR UNUSED pc
= abuf
-> addr
;
14107 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14109 if ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 1 ))) {
14112 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14113 written
|= ( 1 << 1 );
14114 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14119 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14120 written
|= ( 1 << 1 );
14121 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14125 abuf
-> written
= written
;
14130 /* cknc: cknc$pack $ICCi_3,$CRj_int */
14133 SEM_FN_NAME ( frvbf
, cknc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14135 #define FLD(f) abuf->fields.sfmt_cckeq.f
14136 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14137 int UNUSED written
= 0 ;
14138 IADDR UNUSED pc
= abuf
-> addr
;
14139 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14141 if ( NOTBI ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 1 )))) {
14144 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14145 written
|= ( 1 << 1 );
14146 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14151 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14152 written
|= ( 1 << 1 );
14153 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14157 abuf
-> written
= written
;
14162 /* ckn: ckn$pack $ICCi_3,$CRj_int */
14165 SEM_FN_NAME ( frvbf
, ckn
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14167 #define FLD(f) abuf->fields.sfmt_cckeq.f
14168 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14169 int UNUSED written
= 0 ;
14170 IADDR UNUSED pc
= abuf
-> addr
;
14171 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14173 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 8 ), 3 ))) {
14176 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14177 written
|= ( 1 << 1 );
14178 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14183 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14184 written
|= ( 1 << 1 );
14185 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14189 abuf
-> written
= written
;
14194 /* ckp: ckp$pack $ICCi_3,$CRj_int */
14197 SEM_FN_NAME ( frvbf
, ckp
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14199 #define FLD(f) abuf->fields.sfmt_cckeq.f
14200 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14201 int UNUSED written
= 0 ;
14202 IADDR UNUSED pc
= abuf
-> addr
;
14203 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14205 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 8 ), 3 )))) {
14208 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14209 written
|= ( 1 << 1 );
14210 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14215 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14216 written
|= ( 1 << 1 );
14217 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14221 abuf
-> written
= written
;
14226 /* ckv: ckv$pack $ICCi_3,$CRj_int */
14229 SEM_FN_NAME ( frvbf
, ckv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14231 #define FLD(f) abuf->fields.sfmt_cckeq.f
14232 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14233 int UNUSED written
= 0 ;
14234 IADDR UNUSED pc
= abuf
-> addr
;
14235 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14237 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 2 ), 1 ))) {
14240 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14241 written
|= ( 1 << 1 );
14242 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14247 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14248 written
|= ( 1 << 1 );
14249 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14253 abuf
-> written
= written
;
14258 /* cknv: cknv$pack $ICCi_3,$CRj_int */
14261 SEM_FN_NAME ( frvbf
, cknv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14263 #define FLD(f) abuf->fields.sfmt_cckeq.f
14264 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14265 int UNUSED written
= 0 ;
14266 IADDR UNUSED pc
= abuf
-> addr
;
14267 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14269 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 2 ), 1 )))) {
14272 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14273 written
|= ( 1 << 1 );
14274 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14279 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14280 written
|= ( 1 << 1 );
14281 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14285 abuf
-> written
= written
;
14290 /* fckra: fckra$pack $CRj_float */
14293 SEM_FN_NAME ( frvbf
, fckra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14295 #define FLD(f) abuf->fields.sfmt_cfckne.f
14296 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14297 int UNUSED written
= 0 ;
14298 IADDR UNUSED pc
= abuf
-> addr
;
14299 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14303 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14304 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14311 /* fckno: fckno$pack $CRj_float */
14314 SEM_FN_NAME ( frvbf
, fckno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14316 #define FLD(f) abuf->fields.sfmt_cfckne.f
14317 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14318 int UNUSED written
= 0 ;
14319 IADDR UNUSED pc
= abuf
-> addr
;
14320 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14324 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14325 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14332 /* fckne: fckne$pack $FCCi_3,$CRj_float */
14335 SEM_FN_NAME ( frvbf
, fckne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14337 #define FLD(f) abuf->fields.sfmt_cfckne.f
14338 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14339 int UNUSED written
= 0 ;
14340 IADDR UNUSED pc
= abuf
-> addr
;
14341 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14343 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 ))))) {
14346 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14347 written
|= ( 1 << 1 );
14348 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14353 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14354 written
|= ( 1 << 1 );
14355 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14359 abuf
-> written
= written
;
14364 /* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14367 SEM_FN_NAME ( frvbf
, fckeq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14369 #define FLD(f) abuf->fields.sfmt_cfckne.f
14370 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14371 int UNUSED written
= 0 ;
14372 IADDR UNUSED pc
= abuf
-> addr
;
14373 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14375 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 ))) {
14378 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14379 written
|= ( 1 << 1 );
14380 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14385 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14386 written
|= ( 1 << 1 );
14387 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14391 abuf
-> written
= written
;
14396 /* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14399 SEM_FN_NAME ( frvbf
, fcklg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14401 #define FLD(f) abuf->fields.sfmt_cfckne.f
14402 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14403 int UNUSED written
= 0 ;
14404 IADDR UNUSED pc
= abuf
-> addr
;
14405 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14407 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 )))) {
14410 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14411 written
|= ( 1 << 1 );
14412 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14417 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14418 written
|= ( 1 << 1 );
14419 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14423 abuf
-> written
= written
;
14428 /* fckue: fckue$pack $FCCi_3,$CRj_float */
14431 SEM_FN_NAME ( frvbf
, fckue
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14433 #define FLD(f) abuf->fields.sfmt_cfckne.f
14434 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14435 int UNUSED written
= 0 ;
14436 IADDR UNUSED pc
= abuf
-> addr
;
14437 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14439 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 )))) {
14442 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14443 written
|= ( 1 << 1 );
14444 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14449 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14450 written
|= ( 1 << 1 );
14451 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14455 abuf
-> written
= written
;
14460 /* fckul: fckul$pack $FCCi_3,$CRj_float */
14463 SEM_FN_NAME ( frvbf
, fckul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14465 #define FLD(f) abuf->fields.sfmt_cfckne.f
14466 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14467 int UNUSED written
= 0 ;
14468 IADDR UNUSED pc
= abuf
-> addr
;
14469 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14471 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 )))) {
14474 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14475 written
|= ( 1 << 1 );
14476 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14481 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14482 written
|= ( 1 << 1 );
14483 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14487 abuf
-> written
= written
;
14492 /* fckge: fckge$pack $FCCi_3,$CRj_float */
14495 SEM_FN_NAME ( frvbf
, fckge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14497 #define FLD(f) abuf->fields.sfmt_cfckne.f
14498 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14499 int UNUSED written
= 0 ;
14500 IADDR UNUSED pc
= abuf
-> addr
;
14501 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14503 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 )))) {
14506 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14507 written
|= ( 1 << 1 );
14508 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14513 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14514 written
|= ( 1 << 1 );
14515 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14519 abuf
-> written
= written
;
14524 /* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14527 SEM_FN_NAME ( frvbf
, fcklt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14529 #define FLD(f) abuf->fields.sfmt_cfckne.f
14530 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14531 int UNUSED written
= 0 ;
14532 IADDR UNUSED pc
= abuf
-> addr
;
14533 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14535 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 ))) {
14538 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14539 written
|= ( 1 << 1 );
14540 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14545 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14546 written
|= ( 1 << 1 );
14547 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14551 abuf
-> written
= written
;
14556 /* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14559 SEM_FN_NAME ( frvbf
, fckuge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14561 #define FLD(f) abuf->fields.sfmt_cfckne.f
14562 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14563 int UNUSED written
= 0 ;
14564 IADDR UNUSED pc
= abuf
-> addr
;
14565 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14567 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 ))))) {
14570 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14571 written
|= ( 1 << 1 );
14572 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14577 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14578 written
|= ( 1 << 1 );
14579 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14583 abuf
-> written
= written
;
14588 /* fckug: fckug$pack $FCCi_3,$CRj_float */
14591 SEM_FN_NAME ( frvbf
, fckug
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14593 #define FLD(f) abuf->fields.sfmt_cfckne.f
14594 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14595 int UNUSED written
= 0 ;
14596 IADDR UNUSED pc
= abuf
-> addr
;
14597 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14599 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 )))) {
14602 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14603 written
|= ( 1 << 1 );
14604 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14609 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14610 written
|= ( 1 << 1 );
14611 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14615 abuf
-> written
= written
;
14620 /* fckle: fckle$pack $FCCi_3,$CRj_float */
14623 SEM_FN_NAME ( frvbf
, fckle
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14625 #define FLD(f) abuf->fields.sfmt_cfckne.f
14626 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14627 int UNUSED written
= 0 ;
14628 IADDR UNUSED pc
= abuf
-> addr
;
14629 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14631 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 )))) {
14634 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14635 written
|= ( 1 << 1 );
14636 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14641 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14642 written
|= ( 1 << 1 );
14643 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14647 abuf
-> written
= written
;
14652 /* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14655 SEM_FN_NAME ( frvbf
, fckgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14657 #define FLD(f) abuf->fields.sfmt_cfckne.f
14658 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14659 int UNUSED written
= 0 ;
14660 IADDR UNUSED pc
= abuf
-> addr
;
14661 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14663 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 ))) {
14666 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14667 written
|= ( 1 << 1 );
14668 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14673 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14674 written
|= ( 1 << 1 );
14675 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14679 abuf
-> written
= written
;
14684 /* fckule: fckule$pack $FCCi_3,$CRj_float */
14687 SEM_FN_NAME ( frvbf
, fckule
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14689 #define FLD(f) abuf->fields.sfmt_cfckne.f
14690 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14691 int UNUSED written
= 0 ;
14692 IADDR UNUSED pc
= abuf
-> addr
;
14693 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14695 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 ))))) {
14698 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14699 written
|= ( 1 << 1 );
14700 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14705 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14706 written
|= ( 1 << 1 );
14707 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14711 abuf
-> written
= written
;
14716 /* fcku: fcku$pack $FCCi_3,$CRj_float */
14719 SEM_FN_NAME ( frvbf
, fcku
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14721 #define FLD(f) abuf->fields.sfmt_cfckne.f
14722 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14723 int UNUSED written
= 0 ;
14724 IADDR UNUSED pc
= abuf
-> addr
;
14725 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14727 if ( TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 ))) {
14730 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14731 written
|= ( 1 << 1 );
14732 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14737 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14738 written
|= ( 1 << 1 );
14739 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14743 abuf
-> written
= written
;
14748 /* fcko: fcko$pack $FCCi_3,$CRj_float */
14751 SEM_FN_NAME ( frvbf
, fcko
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14753 #define FLD(f) abuf->fields.sfmt_cfckne.f
14754 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14755 int UNUSED written
= 0 ;
14756 IADDR UNUSED pc
= abuf
-> addr
;
14757 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14759 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 ))))) {
14762 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14763 written
|= ( 1 << 1 );
14764 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14769 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14770 written
|= ( 1 << 1 );
14771 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14775 abuf
-> written
= written
;
14780 /* cckra: cckra$pack $CRj_int,$CCi,$cond */
14783 SEM_FN_NAME ( frvbf
, cckra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14785 #define FLD(f) abuf->fields.sfmt_cckeq.f
14786 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14787 int UNUSED written
= 0 ;
14788 IADDR UNUSED pc
= abuf
-> addr
;
14789 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14791 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
14794 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14795 written
|= ( 1 << 2 );
14796 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14801 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14802 written
|= ( 1 << 2 );
14803 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14807 abuf
-> written
= written
;
14812 /* cckno: cckno$pack $CRj_int,$CCi,$cond */
14815 SEM_FN_NAME ( frvbf
, cckno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14817 #define FLD(f) abuf->fields.sfmt_cckeq.f
14818 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14819 int UNUSED written
= 0 ;
14820 IADDR UNUSED pc
= abuf
-> addr
;
14821 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14823 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
14826 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14827 written
|= ( 1 << 2 );
14828 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14833 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14834 written
|= ( 1 << 2 );
14835 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14839 abuf
-> written
= written
;
14844 /* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
14847 SEM_FN_NAME ( frvbf
, cckeq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14849 #define FLD(f) abuf->fields.sfmt_cckeq.f
14850 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14851 int UNUSED written
= 0 ;
14852 IADDR UNUSED pc
= abuf
-> addr
;
14853 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14855 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
14856 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 ))) {
14859 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14860 written
|= ( 1 << 3 );
14861 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14866 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14867 written
|= ( 1 << 3 );
14868 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14874 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14875 written
|= ( 1 << 3 );
14876 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14880 abuf
-> written
= written
;
14885 /* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
14888 SEM_FN_NAME ( frvbf
, cckne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14890 #define FLD(f) abuf->fields.sfmt_cckeq.f
14891 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14892 int UNUSED written
= 0 ;
14893 IADDR UNUSED pc
= abuf
-> addr
;
14894 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14896 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
14897 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 )))) {
14900 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14901 written
|= ( 1 << 3 );
14902 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14907 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14908 written
|= ( 1 << 3 );
14909 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14915 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14916 written
|= ( 1 << 3 );
14917 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14921 abuf
-> written
= written
;
14926 /* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
14929 SEM_FN_NAME ( frvbf
, cckle
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14931 #define FLD(f) abuf->fields.sfmt_cckeq.f
14932 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14933 int UNUSED written
= 0 ;
14934 IADDR UNUSED pc
= abuf
-> addr
;
14935 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14937 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
14938 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 ))))) {
14941 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14942 written
|= ( 1 << 3 );
14943 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14948 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14949 written
|= ( 1 << 3 );
14950 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14956 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14957 written
|= ( 1 << 3 );
14958 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14962 abuf
-> written
= written
;
14967 /* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
14970 SEM_FN_NAME ( frvbf
, cckgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14972 #define FLD(f) abuf->fields.sfmt_cckeq.f
14973 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14974 int UNUSED written
= 0 ;
14975 IADDR UNUSED pc
= abuf
-> addr
;
14976 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14978 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
14979 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 )))))) {
14982 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14983 written
|= ( 1 << 3 );
14984 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14989 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14990 written
|= ( 1 << 3 );
14991 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14997 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14998 written
|= ( 1 << 3 );
14999 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15003 abuf
-> written
= written
;
15008 /* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15011 SEM_FN_NAME ( frvbf
, ccklt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15013 #define FLD(f) abuf->fields.sfmt_cckeq.f
15014 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15015 int UNUSED written
= 0 ;
15016 IADDR UNUSED pc
= abuf
-> addr
;
15017 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15019 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15020 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 )))) {
15023 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15024 written
|= ( 1 << 3 );
15025 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15030 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15031 written
|= ( 1 << 3 );
15032 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15038 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15039 written
|= ( 1 << 3 );
15040 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15044 abuf
-> written
= written
;
15049 /* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15052 SEM_FN_NAME ( frvbf
, cckge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15054 #define FLD(f) abuf->fields.sfmt_cckeq.f
15055 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15056 int UNUSED written
= 0 ;
15057 IADDR UNUSED pc
= abuf
-> addr
;
15058 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15060 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15061 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 ))))) {
15064 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15065 written
|= ( 1 << 3 );
15066 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15071 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15072 written
|= ( 1 << 3 );
15073 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15079 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15080 written
|= ( 1 << 3 );
15081 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15085 abuf
-> written
= written
;
15090 /* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15093 SEM_FN_NAME ( frvbf
, cckls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15095 #define FLD(f) abuf->fields.sfmt_cckeq.f
15096 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15097 int UNUSED written
= 0 ;
15098 IADDR UNUSED pc
= abuf
-> addr
;
15099 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15101 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15102 if ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 )))) {
15105 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15106 written
|= ( 1 << 3 );
15107 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15112 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15113 written
|= ( 1 << 3 );
15114 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15120 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15121 written
|= ( 1 << 3 );
15122 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15126 abuf
-> written
= written
;
15131 /* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15134 SEM_FN_NAME ( frvbf
, cckhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15136 #define FLD(f) abuf->fields.sfmt_cckeq.f
15137 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15138 int UNUSED written
= 0 ;
15139 IADDR UNUSED pc
= abuf
-> addr
;
15140 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15142 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15143 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 ))))) {
15146 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15147 written
|= ( 1 << 3 );
15148 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15153 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15154 written
|= ( 1 << 3 );
15155 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15161 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15162 written
|= ( 1 << 3 );
15163 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15167 abuf
-> written
= written
;
15172 /* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15175 SEM_FN_NAME ( frvbf
, cckc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15177 #define FLD(f) abuf->fields.sfmt_cckeq.f
15178 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15179 int UNUSED written
= 0 ;
15180 IADDR UNUSED pc
= abuf
-> addr
;
15181 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15183 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15184 if ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 1 ))) {
15187 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15188 written
|= ( 1 << 3 );
15189 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15194 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15195 written
|= ( 1 << 3 );
15196 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15202 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15203 written
|= ( 1 << 3 );
15204 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15208 abuf
-> written
= written
;
15213 /* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15216 SEM_FN_NAME ( frvbf
, ccknc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15218 #define FLD(f) abuf->fields.sfmt_cckeq.f
15219 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15220 int UNUSED written
= 0 ;
15221 IADDR UNUSED pc
= abuf
-> addr
;
15222 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15224 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15225 if ( NOTBI ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 1 )))) {
15228 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15229 written
|= ( 1 << 3 );
15230 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15235 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15236 written
|= ( 1 << 3 );
15237 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15243 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15244 written
|= ( 1 << 3 );
15245 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15249 abuf
-> written
= written
;
15254 /* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15257 SEM_FN_NAME ( frvbf
, cckn
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15259 #define FLD(f) abuf->fields.sfmt_cckeq.f
15260 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15261 int UNUSED written
= 0 ;
15262 IADDR UNUSED pc
= abuf
-> addr
;
15263 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15265 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15266 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 8 ), 3 ))) {
15269 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15270 written
|= ( 1 << 3 );
15271 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15276 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15277 written
|= ( 1 << 3 );
15278 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15284 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15285 written
|= ( 1 << 3 );
15286 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15290 abuf
-> written
= written
;
15295 /* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15298 SEM_FN_NAME ( frvbf
, cckp
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15300 #define FLD(f) abuf->fields.sfmt_cckeq.f
15301 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15302 int UNUSED written
= 0 ;
15303 IADDR UNUSED pc
= abuf
-> addr
;
15304 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15306 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15307 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 8 ), 3 )))) {
15310 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15311 written
|= ( 1 << 3 );
15312 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15317 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15318 written
|= ( 1 << 3 );
15319 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15325 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15326 written
|= ( 1 << 3 );
15327 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15331 abuf
-> written
= written
;
15336 /* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15339 SEM_FN_NAME ( frvbf
, cckv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15341 #define FLD(f) abuf->fields.sfmt_cckeq.f
15342 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15343 int UNUSED written
= 0 ;
15344 IADDR UNUSED pc
= abuf
-> addr
;
15345 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15347 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15348 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 2 ), 1 ))) {
15351 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15352 written
|= ( 1 << 3 );
15353 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15358 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15359 written
|= ( 1 << 3 );
15360 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15366 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15367 written
|= ( 1 << 3 );
15368 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15372 abuf
-> written
= written
;
15377 /* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15380 SEM_FN_NAME ( frvbf
, ccknv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15382 #define FLD(f) abuf->fields.sfmt_cckeq.f
15383 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15384 int UNUSED written
= 0 ;
15385 IADDR UNUSED pc
= abuf
-> addr
;
15386 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15388 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15389 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 2 ), 1 )))) {
15392 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15393 written
|= ( 1 << 3 );
15394 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15399 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15400 written
|= ( 1 << 3 );
15401 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15407 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15408 written
|= ( 1 << 3 );
15409 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15413 abuf
-> written
= written
;
15418 /* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15421 SEM_FN_NAME ( frvbf
, cfckra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15423 #define FLD(f) abuf->fields.sfmt_cfckne.f
15424 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15425 int UNUSED written
= 0 ;
15426 IADDR UNUSED pc
= abuf
-> addr
;
15427 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15429 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15432 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15433 written
|= ( 1 << 2 );
15434 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15439 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15440 written
|= ( 1 << 2 );
15441 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15445 abuf
-> written
= written
;
15450 /* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15453 SEM_FN_NAME ( frvbf
, cfckno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15455 #define FLD(f) abuf->fields.sfmt_cfckne.f
15456 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15457 int UNUSED written
= 0 ;
15458 IADDR UNUSED pc
= abuf
-> addr
;
15459 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15461 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15464 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15465 written
|= ( 1 << 2 );
15466 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15471 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15472 written
|= ( 1 << 2 );
15473 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15477 abuf
-> written
= written
;
15482 /* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15485 SEM_FN_NAME ( frvbf
, cfckne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15487 #define FLD(f) abuf->fields.sfmt_cfckne.f
15488 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15489 int UNUSED written
= 0 ;
15490 IADDR UNUSED pc
= abuf
-> addr
;
15491 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15493 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15494 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 ))))) {
15497 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15498 written
|= ( 1 << 3 );
15499 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15504 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15505 written
|= ( 1 << 3 );
15506 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15512 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15513 written
|= ( 1 << 3 );
15514 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15518 abuf
-> written
= written
;
15523 /* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15526 SEM_FN_NAME ( frvbf
, cfckeq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15528 #define FLD(f) abuf->fields.sfmt_cfckne.f
15529 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15530 int UNUSED written
= 0 ;
15531 IADDR UNUSED pc
= abuf
-> addr
;
15532 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15534 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15535 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 ))) {
15538 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15539 written
|= ( 1 << 3 );
15540 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15545 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15546 written
|= ( 1 << 3 );
15547 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15553 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15554 written
|= ( 1 << 3 );
15555 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15559 abuf
-> written
= written
;
15564 /* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15567 SEM_FN_NAME ( frvbf
, cfcklg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15569 #define FLD(f) abuf->fields.sfmt_cfckne.f
15570 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15571 int UNUSED written
= 0 ;
15572 IADDR UNUSED pc
= abuf
-> addr
;
15573 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15575 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15576 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 )))) {
15579 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15580 written
|= ( 1 << 3 );
15581 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15586 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15587 written
|= ( 1 << 3 );
15588 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15594 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15595 written
|= ( 1 << 3 );
15596 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15600 abuf
-> written
= written
;
15605 /* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15608 SEM_FN_NAME ( frvbf
, cfckue
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15610 #define FLD(f) abuf->fields.sfmt_cfckne.f
15611 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15612 int UNUSED written
= 0 ;
15613 IADDR UNUSED pc
= abuf
-> addr
;
15614 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15616 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15617 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 )))) {
15620 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15621 written
|= ( 1 << 3 );
15622 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15627 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15628 written
|= ( 1 << 3 );
15629 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15635 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15636 written
|= ( 1 << 3 );
15637 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15641 abuf
-> written
= written
;
15646 /* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15649 SEM_FN_NAME ( frvbf
, cfckul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15651 #define FLD(f) abuf->fields.sfmt_cfckne.f
15652 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15653 int UNUSED written
= 0 ;
15654 IADDR UNUSED pc
= abuf
-> addr
;
15655 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15657 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15658 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 )))) {
15661 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15662 written
|= ( 1 << 3 );
15663 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15668 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15669 written
|= ( 1 << 3 );
15670 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15676 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15677 written
|= ( 1 << 3 );
15678 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15682 abuf
-> written
= written
;
15687 /* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15690 SEM_FN_NAME ( frvbf
, cfckge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15692 #define FLD(f) abuf->fields.sfmt_cfckne.f
15693 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15694 int UNUSED written
= 0 ;
15695 IADDR UNUSED pc
= abuf
-> addr
;
15696 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15698 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15699 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 )))) {
15702 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15703 written
|= ( 1 << 3 );
15704 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15709 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15710 written
|= ( 1 << 3 );
15711 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15717 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15718 written
|= ( 1 << 3 );
15719 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15723 abuf
-> written
= written
;
15728 /* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15731 SEM_FN_NAME ( frvbf
, cfcklt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15733 #define FLD(f) abuf->fields.sfmt_cfckne.f
15734 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15735 int UNUSED written
= 0 ;
15736 IADDR UNUSED pc
= abuf
-> addr
;
15737 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15739 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15740 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 ))) {
15743 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15744 written
|= ( 1 << 3 );
15745 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15750 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15751 written
|= ( 1 << 3 );
15752 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15758 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15759 written
|= ( 1 << 3 );
15760 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15764 abuf
-> written
= written
;
15769 /* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15772 SEM_FN_NAME ( frvbf
, cfckuge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15774 #define FLD(f) abuf->fields.sfmt_cfckne.f
15775 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15776 int UNUSED written
= 0 ;
15777 IADDR UNUSED pc
= abuf
-> addr
;
15778 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15780 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15781 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 ))))) {
15784 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15785 written
|= ( 1 << 3 );
15786 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15791 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15792 written
|= ( 1 << 3 );
15793 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15799 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15800 written
|= ( 1 << 3 );
15801 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15805 abuf
-> written
= written
;
15810 /* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
15813 SEM_FN_NAME ( frvbf
, cfckug
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15815 #define FLD(f) abuf->fields.sfmt_cfckne.f
15816 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15817 int UNUSED written
= 0 ;
15818 IADDR UNUSED pc
= abuf
-> addr
;
15819 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15821 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15822 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 )))) {
15825 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15826 written
|= ( 1 << 3 );
15827 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15832 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15833 written
|= ( 1 << 3 );
15834 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15840 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15841 written
|= ( 1 << 3 );
15842 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15846 abuf
-> written
= written
;
15851 /* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
15854 SEM_FN_NAME ( frvbf
, cfckle
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15856 #define FLD(f) abuf->fields.sfmt_cfckne.f
15857 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15858 int UNUSED written
= 0 ;
15859 IADDR UNUSED pc
= abuf
-> addr
;
15860 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15862 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15863 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 )))) {
15866 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15867 written
|= ( 1 << 3 );
15868 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15873 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15874 written
|= ( 1 << 3 );
15875 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15881 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15882 written
|= ( 1 << 3 );
15883 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15887 abuf
-> written
= written
;
15892 /* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15895 SEM_FN_NAME ( frvbf
, cfckgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15897 #define FLD(f) abuf->fields.sfmt_cfckne.f
15898 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15899 int UNUSED written
= 0 ;
15900 IADDR UNUSED pc
= abuf
-> addr
;
15901 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15903 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15904 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 ))) {
15907 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15908 written
|= ( 1 << 3 );
15909 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15914 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15915 written
|= ( 1 << 3 );
15916 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15922 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15923 written
|= ( 1 << 3 );
15924 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15928 abuf
-> written
= written
;
15933 /* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
15936 SEM_FN_NAME ( frvbf
, cfckule
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15938 #define FLD(f) abuf->fields.sfmt_cfckne.f
15939 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15940 int UNUSED written
= 0 ;
15941 IADDR UNUSED pc
= abuf
-> addr
;
15942 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15944 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15945 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 ))))) {
15948 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15949 written
|= ( 1 << 3 );
15950 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15955 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15956 written
|= ( 1 << 3 );
15957 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15963 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15964 written
|= ( 1 << 3 );
15965 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15969 abuf
-> written
= written
;
15974 /* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
15977 SEM_FN_NAME ( frvbf
, cfcku
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15979 #define FLD(f) abuf->fields.sfmt_cfckne.f
15980 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15981 int UNUSED written
= 0 ;
15982 IADDR UNUSED pc
= abuf
-> addr
;
15983 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15985 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15986 if ( TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 ))) {
15989 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15990 written
|= ( 1 << 3 );
15991 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15996 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15997 written
|= ( 1 << 3 );
15998 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
16004 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
16005 written
|= ( 1 << 3 );
16006 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
16010 abuf
-> written
= written
;
16015 /* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16018 SEM_FN_NAME ( frvbf
, cfcko
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16020 #define FLD(f) abuf->fields.sfmt_cfckne.f
16021 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16022 int UNUSED written
= 0 ;
16023 IADDR UNUSED pc
= abuf
-> addr
;
16024 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16026 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
16027 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 ))))) {
16030 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
16031 written
|= ( 1 << 3 );
16032 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
16037 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
16038 written
|= ( 1 << 3 );
16039 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
16045 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
16046 written
|= ( 1 << 3 );
16047 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
16051 abuf
-> written
= written
;
16056 /* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16059 SEM_FN_NAME ( frvbf
, cjmpl
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16061 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16062 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16063 int UNUSED written
= 0 ;
16064 IADDR UNUSED pc
= abuf
-> addr
;
16065 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16067 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
16069 if ( EQSI ( FLD ( f_LI
), 1 )) {
16070 frvbf_set_write_next_vliw_addr_to_LR ( current_cpu
, 1 );
16073 USI opval
= ANDSI ( ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), 0xfffffffc );
16074 sim_queue_pc_write ( current_cpu
, opval
);
16075 written
|= ( 1 << 6 );
16076 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
16078 frvbf_model_branch ( current_cpu
, pc
, 2 );
16082 abuf
-> written
= written
;
16087 /* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16090 SEM_FN_NAME ( frvbf
, ccalll
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16092 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16093 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16094 int UNUSED written
= 0 ;
16095 IADDR UNUSED pc
= abuf
-> addr
;
16096 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16098 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
16100 if ( EQSI ( FLD ( f_LI
), 1 )) {
16101 frvbf_set_write_next_vliw_addr_to_LR ( current_cpu
, 1 );
16104 USI opval
= ANDSI ( ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), 0xfffffffc );
16105 sim_queue_pc_write ( current_cpu
, opval
);
16106 written
|= ( 1 << 6 );
16107 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
16109 frvbf_model_branch ( current_cpu
, pc
, 2 );
16113 abuf
-> written
= written
;
16118 /* ici: ici$pack @($GRi,$GRj) */
16121 SEM_FN_NAME ( frvbf
, ici
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16123 #define FLD(f) abuf->fields.sfmt_icpl.f
16124 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16125 int UNUSED written
= 0 ;
16126 IADDR UNUSED pc
= abuf
-> addr
;
16127 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16129 frvbf_insn_cache_invalidate ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), 0 );
16135 /* dci: dci$pack @($GRi,$GRj) */
16138 SEM_FN_NAME ( frvbf
, dci
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16140 #define FLD(f) abuf->fields.sfmt_icpl.f
16141 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16142 int UNUSED written
= 0 ;
16143 IADDR UNUSED pc
= abuf
-> addr
;
16144 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16146 frvbf_data_cache_invalidate ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), 0 );
16152 /* icei: icei$pack @($GRi,$GRj),$ae */
16155 SEM_FN_NAME ( frvbf
, icei
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16157 #define FLD(f) abuf->fields.sfmt_icei.f
16158 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16159 int UNUSED written
= 0 ;
16160 IADDR UNUSED pc
= abuf
-> addr
;
16161 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16163 if ( EQSI ( FLD ( f_ae
), 0 )) {
16164 frvbf_insn_cache_invalidate ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), - 1 );
16166 frvbf_insn_cache_invalidate ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), FLD ( f_ae
));
16173 /* dcei: dcei$pack @($GRi,$GRj),$ae */
16176 SEM_FN_NAME ( frvbf
, dcei
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16178 #define FLD(f) abuf->fields.sfmt_icei.f
16179 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16180 int UNUSED written
= 0 ;
16181 IADDR UNUSED pc
= abuf
-> addr
;
16182 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16184 if ( EQSI ( FLD ( f_ae
), 0 )) {
16185 frvbf_data_cache_invalidate ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), - 1 );
16187 frvbf_data_cache_invalidate ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), FLD ( f_ae
));
16194 /* dcf: dcf$pack @($GRi,$GRj) */
16197 SEM_FN_NAME ( frvbf
, dcf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16199 #define FLD(f) abuf->fields.sfmt_icpl.f
16200 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16201 int UNUSED written
= 0 ;
16202 IADDR UNUSED pc
= abuf
-> addr
;
16203 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16205 frvbf_data_cache_flush ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), 0 );
16211 /* dcef: dcef$pack @($GRi,$GRj),$ae */
16214 SEM_FN_NAME ( frvbf
, dcef
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16216 #define FLD(f) abuf->fields.sfmt_icei.f
16217 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16218 int UNUSED written
= 0 ;
16219 IADDR UNUSED pc
= abuf
-> addr
;
16220 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16222 if ( EQSI ( FLD ( f_ae
), 0 )) {
16223 frvbf_data_cache_flush ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), - 1 );
16225 frvbf_data_cache_flush ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), FLD ( f_ae
));
16232 /* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16235 SEM_FN_NAME ( frvbf
, witlb
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16237 #define FLD(f) abuf->fields.sfmt_empty.f
16238 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16239 int UNUSED written
= 0 ;
16240 IADDR UNUSED pc
= abuf
-> addr
;
16241 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16243 (( void ) 0 ); /*nop*/
16249 /* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16252 SEM_FN_NAME ( frvbf
, wdtlb
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16254 #define FLD(f) abuf->fields.sfmt_empty.f
16255 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16256 int UNUSED written
= 0 ;
16257 IADDR UNUSED pc
= abuf
-> addr
;
16258 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16260 (( void ) 0 ); /*nop*/
16266 /* itlbi: itlbi$pack @($GRi,$GRj) */
16269 SEM_FN_NAME ( frvbf
, itlbi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16271 #define FLD(f) abuf->fields.sfmt_empty.f
16272 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16273 int UNUSED written
= 0 ;
16274 IADDR UNUSED pc
= abuf
-> addr
;
16275 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16277 (( void ) 0 ); /*nop*/
16283 /* dtlbi: dtlbi$pack @($GRi,$GRj) */
16286 SEM_FN_NAME ( frvbf
, dtlbi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16288 #define FLD(f) abuf->fields.sfmt_empty.f
16289 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16290 int UNUSED written
= 0 ;
16291 IADDR UNUSED pc
= abuf
-> addr
;
16292 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16294 (( void ) 0 ); /*nop*/
16300 /* icpl: icpl$pack $GRi,$GRj,$lock */
16303 SEM_FN_NAME ( frvbf
, icpl
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16305 #define FLD(f) abuf->fields.sfmt_icpl.f
16306 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16307 int UNUSED written
= 0 ;
16308 IADDR UNUSED pc
= abuf
-> addr
;
16309 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16311 frvbf_insn_cache_preload ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), FLD ( f_lock
));
16317 /* dcpl: dcpl$pack $GRi,$GRj,$lock */
16320 SEM_FN_NAME ( frvbf
, dcpl
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16322 #define FLD(f) abuf->fields.sfmt_icpl.f
16323 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16324 int UNUSED written
= 0 ;
16325 IADDR UNUSED pc
= abuf
-> addr
;
16326 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16328 frvbf_data_cache_preload ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), FLD ( f_lock
));
16334 /* icul: icul$pack $GRi */
16337 SEM_FN_NAME ( frvbf
, icul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16339 #define FLD(f) abuf->fields.sfmt_jmpil.f
16340 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16341 int UNUSED written
= 0 ;
16342 IADDR UNUSED pc
= abuf
-> addr
;
16343 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16345 frvbf_insn_cache_unlock ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)));
16351 /* dcul: dcul$pack $GRi */
16354 SEM_FN_NAME ( frvbf
, dcul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16356 #define FLD(f) abuf->fields.sfmt_jmpil.f
16357 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16358 int UNUSED written
= 0 ;
16359 IADDR UNUSED pc
= abuf
-> addr
;
16360 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16362 frvbf_data_cache_unlock ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)));
16368 /* bar: bar$pack */
16371 SEM_FN_NAME ( frvbf
, bar
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16373 #define FLD(f) abuf->fields.sfmt_empty.f
16374 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16375 int UNUSED written
= 0 ;
16376 IADDR UNUSED pc
= abuf
-> addr
;
16377 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16379 (( void ) 0 ); /*nop*/
16385 /* membar: membar$pack */
16388 SEM_FN_NAME ( frvbf
, membar
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16390 #define FLD(f) abuf->fields.sfmt_empty.f
16391 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16392 int UNUSED written
= 0 ;
16393 IADDR UNUSED pc
= abuf
-> addr
;
16394 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16396 (( void ) 0 ); /*nop*/
16402 /* lrai: lrai$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
16405 SEM_FN_NAME ( frvbf
, lrai
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16407 #define FLD(f) abuf->fields.sfmt_empty.f
16408 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16409 int UNUSED written
= 0 ;
16410 IADDR UNUSED pc
= abuf
-> addr
;
16411 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16413 (( void ) 0 ); /*nop*/
16419 /* lrad: lrad$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
16422 SEM_FN_NAME ( frvbf
, lrad
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16424 #define FLD(f) abuf->fields.sfmt_empty.f
16425 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16426 int UNUSED written
= 0 ;
16427 IADDR UNUSED pc
= abuf
-> addr
;
16428 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16430 (( void ) 0 ); /*nop*/
16436 /* tlbpr: tlbpr$pack $GRi,$GRj,$TLBPRopx,$TLBPRL */
16439 SEM_FN_NAME ( frvbf
, tlbpr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16441 #define FLD(f) abuf->fields.sfmt_empty.f
16442 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16443 int UNUSED written
= 0 ;
16444 IADDR UNUSED pc
= abuf
-> addr
;
16445 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16447 (( void ) 0 ); /*nop*/
16453 /* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16456 SEM_FN_NAME ( frvbf
, cop1
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16458 #define FLD(f) abuf->fields.sfmt_empty.f
16459 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16460 int UNUSED written
= 0 ;
16461 IADDR UNUSED pc
= abuf
-> addr
;
16462 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16464 (( void ) 0 ); /*nop*/
16470 /* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16473 SEM_FN_NAME ( frvbf
, cop2
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16475 #define FLD(f) abuf->fields.sfmt_empty.f
16476 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16477 int UNUSED written
= 0 ;
16478 IADDR UNUSED pc
= abuf
-> addr
;
16479 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16481 (( void ) 0 ); /*nop*/
16487 /* clrgr: clrgr$pack $GRk */
16490 SEM_FN_NAME ( frvbf
, clrgr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16492 #define FLD(f) abuf->fields.sfmt_swapi.f
16493 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16494 int UNUSED written
= 0 ;
16495 IADDR UNUSED pc
= abuf
-> addr
;
16496 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16499 frv_ref_SI ( GET_H_GR ( FLD ( f_GRk
)));
16500 frvbf_clear_ne_flags ( current_cpu
, FLD ( f_GRk
), 0 );
16507 /* clrfr: clrfr$pack $FRk */
16510 SEM_FN_NAME ( frvbf
, clrfr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16512 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16513 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16514 int UNUSED written
= 0 ;
16515 IADDR UNUSED pc
= abuf
-> addr
;
16516 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16519 frv_ref_SI ( GET_H_FR ( FLD ( f_FRk
)));
16520 frvbf_clear_ne_flags ( current_cpu
, FLD ( f_FRk
), 1 );
16527 /* clrga: clrga$pack */
16530 SEM_FN_NAME ( frvbf
, clrga
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16532 #define FLD(f) abuf->fields.sfmt_empty.f
16533 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16534 int UNUSED written
= 0 ;
16535 IADDR UNUSED pc
= abuf
-> addr
;
16536 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16538 frvbf_clear_ne_flags ( current_cpu
, - 1 , 0 );
16544 /* clrfa: clrfa$pack */
16547 SEM_FN_NAME ( frvbf
, clrfa
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16549 #define FLD(f) abuf->fields.sfmt_empty.f
16550 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16551 int UNUSED written
= 0 ;
16552 IADDR UNUSED pc
= abuf
-> addr
;
16553 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16555 frvbf_clear_ne_flags ( current_cpu
, - 1 , 1 );
16561 /* commitgr: commitgr$pack $GRk */
16564 SEM_FN_NAME ( frvbf
, commitgr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16566 #define FLD(f) abuf->fields.sfmt_setlos.f
16567 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16568 int UNUSED written
= 0 ;
16569 IADDR UNUSED pc
= abuf
-> addr
;
16570 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16572 frvbf_commit ( current_cpu
, FLD ( f_GRk
), 0 );
16578 /* commitfr: commitfr$pack $FRk */
16581 SEM_FN_NAME ( frvbf
, commitfr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16583 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16584 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16585 int UNUSED written
= 0 ;
16586 IADDR UNUSED pc
= abuf
-> addr
;
16587 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16589 frvbf_commit ( current_cpu
, FLD ( f_FRk
), 1 );
16595 /* commitga: commitga$pack */
16598 SEM_FN_NAME ( frvbf
, commitga
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16600 #define FLD(f) abuf->fields.sfmt_empty.f
16601 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16602 int UNUSED written
= 0 ;
16603 IADDR UNUSED pc
= abuf
-> addr
;
16604 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16606 frvbf_commit ( current_cpu
, - 1 , 0 );
16612 /* commitfa: commitfa$pack */
16615 SEM_FN_NAME ( frvbf
, commitfa
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16617 #define FLD(f) abuf->fields.sfmt_empty.f
16618 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16619 int UNUSED written
= 0 ;
16620 IADDR UNUSED pc
= abuf
-> addr
;
16621 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16623 frvbf_commit ( current_cpu
, - 1 , 1 );
16629 /* fitos: fitos$pack $FRintj,$FRk */
16632 SEM_FN_NAME ( frvbf
, fitos
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16634 #define FLD(f) abuf->fields.sfmt_fditos.f
16635 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16636 int UNUSED written
= 0 ;
16637 IADDR UNUSED pc
= abuf
-> addr
;
16638 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16641 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsisf ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR_INT ( FLD ( f_FRj
)));
16642 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
16643 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16650 /* fstoi: fstoi$pack $FRj,$FRintk */
16653 SEM_FN_NAME ( frvbf
, fstoi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16655 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16656 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16657 int UNUSED written
= 0 ;
16658 IADDR UNUSED pc
= abuf
-> addr
;
16659 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16662 SI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixsfsi ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR ( FLD ( f_FRj
)));
16663 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
16664 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16671 /* fitod: fitod$pack $FRintj,$FRdoublek */
16674 SEM_FN_NAME ( frvbf
, fitod
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16676 #define FLD(f) abuf->fields.sfmt_fitod.f
16677 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16678 int UNUSED written
= 0 ;
16679 IADDR UNUSED pc
= abuf
-> addr
;
16680 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16683 DF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsidf ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR_INT ( FLD ( f_FRj
)));
16684 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
16685 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
16692 /* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16695 SEM_FN_NAME ( frvbf
, fdtoi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16697 #define FLD(f) abuf->fields.sfmt_fdtoi.f
16698 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16699 int UNUSED written
= 0 ;
16700 IADDR UNUSED pc
= abuf
-> addr
;
16701 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16704 SI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixdfsi ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR_DOUBLE ( FLD ( f_FRj
)));
16705 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
16706 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16713 /* fditos: fditos$pack $FRintj,$FRk */
16716 SEM_FN_NAME ( frvbf
, fditos
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16718 #define FLD(f) abuf->fields.sfmt_fditos.f
16719 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16720 int UNUSED written
= 0 ;
16721 IADDR UNUSED pc
= abuf
-> addr
;
16722 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16726 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsisf ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR_INT ( FLD ( f_FRj
)));
16727 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
16728 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16731 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsisf ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR_INT ( ADDSI ( FLD ( f_FRj
), 1 )));
16732 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
16733 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16741 /* fdstoi: fdstoi$pack $FRj,$FRintk */
16744 SEM_FN_NAME ( frvbf
, fdstoi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16746 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16747 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16748 int UNUSED written
= 0 ;
16749 IADDR UNUSED pc
= abuf
-> addr
;
16750 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16754 SI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixsfsi ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR ( FLD ( f_FRj
)));
16755 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
16756 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16759 USI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixsfsi ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
16760 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
16761 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16769 /* nfditos: nfditos$pack $FRintj,$FRk */
16772 SEM_FN_NAME ( frvbf
, nfditos
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16774 #define FLD(f) abuf->fields.sfmt_fditos.f
16775 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16776 int UNUSED written
= 0 ;
16777 IADDR UNUSED pc
= abuf
-> addr
;
16778 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16781 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
16783 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsisf ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR_INT ( FLD ( f_FRj
)));
16784 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
16785 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16787 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
16789 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsisf ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR_INT ( ADDSI ( FLD ( f_FRj
), 1 )));
16790 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
16791 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16799 /* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16802 SEM_FN_NAME ( frvbf
, nfdstoi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16804 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16805 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16806 int UNUSED written
= 0 ;
16807 IADDR UNUSED pc
= abuf
-> addr
;
16808 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16811 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
16813 SI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixsfsi ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR ( FLD ( f_FRj
)));
16814 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
16815 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16817 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
16819 USI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixsfsi ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
16820 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
16821 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16829 /* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
16832 SEM_FN_NAME ( frvbf
, cfitos
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16834 #define FLD(f) abuf->fields.sfmt_cfitos.f
16835 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16836 int UNUSED written
= 0 ;
16837 IADDR UNUSED pc
= abuf
-> addr
;
16838 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16840 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
16842 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsisf ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR_INT ( FLD ( f_FRj
)));
16843 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
16844 written
|= ( 1 << 3 );
16845 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16849 abuf
-> written
= written
;
16854 /* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
16857 SEM_FN_NAME ( frvbf
, cfstoi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16859 #define FLD(f) abuf->fields.sfmt_cfstoi.f
16860 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16861 int UNUSED written
= 0 ;
16862 IADDR UNUSED pc
= abuf
-> addr
;
16863 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16865 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
16867 SI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixsfsi ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR ( FLD ( f_FRj
)));
16868 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
16869 written
|= ( 1 << 3 );
16870 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16874 abuf
-> written
= written
;
16879 /* nfitos: nfitos$pack $FRintj,$FRk */
16882 SEM_FN_NAME ( frvbf
, nfitos
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16884 #define FLD(f) abuf->fields.sfmt_fditos.f
16885 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16886 int UNUSED written
= 0 ;
16887 IADDR UNUSED pc
= abuf
-> addr
;
16888 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16891 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
16893 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsisf ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR_INT ( FLD ( f_FRj
)));
16894 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
16895 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16903 /* nfstoi: nfstoi$pack $FRj,$FRintk */
16906 SEM_FN_NAME ( frvbf
, nfstoi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16908 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16909 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16910 int UNUSED written
= 0 ;
16911 IADDR UNUSED pc
= abuf
-> addr
;
16912 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16915 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
16917 SI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixsfsi ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR ( FLD ( f_FRj
)));
16918 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
16919 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16927 /* fmovs: fmovs$pack $FRj,$FRk */
16930 SEM_FN_NAME ( frvbf
, fmovs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16932 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16933 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16934 int UNUSED written
= 0 ;
16935 IADDR UNUSED pc
= abuf
-> addr
;
16936 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16939 SF opval
= GET_H_FR ( FLD ( f_FRj
));
16940 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
16941 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16948 /* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
16951 SEM_FN_NAME ( frvbf
, fmovd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16953 #define FLD(f) abuf->fields.sfmt_fmaddd.f
16954 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16955 int UNUSED written
= 0 ;
16956 IADDR UNUSED pc
= abuf
-> addr
;
16957 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16960 DF opval
= GET_H_FR_DOUBLE ( FLD ( f_FRj
));
16961 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
16962 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
16969 /* fdmovs: fdmovs$pack $FRj,$FRk */
16972 SEM_FN_NAME ( frvbf
, fdmovs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16974 #define FLD(f) abuf->fields.sfmt_fdmadds.f
16975 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16976 int UNUSED written
= 0 ;
16977 IADDR UNUSED pc
= abuf
-> addr
;
16978 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16982 SF opval
= GET_H_FR ( FLD ( f_FRj
));
16983 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
16984 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16987 SF opval
= GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 ));
16988 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
16989 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16997 /* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
17000 SEM_FN_NAME ( frvbf
, cfmovs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17002 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17003 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17004 int UNUSED written
= 0 ;
17005 IADDR UNUSED pc
= abuf
-> addr
;
17006 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17008 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17010 SF opval
= GET_H_FR ( FLD ( f_FRj
));
17011 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17012 written
|= ( 1 << 3 );
17013 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17017 abuf
-> written
= written
;
17022 /* fnegs: fnegs$pack $FRj,$FRk */
17025 SEM_FN_NAME ( frvbf
, fnegs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17027 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17028 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17029 int UNUSED written
= 0 ;
17030 IADDR UNUSED pc
= abuf
-> addr
;
17031 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17034 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> negsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17035 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17036 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17043 /* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17046 SEM_FN_NAME ( frvbf
, fnegd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17048 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17049 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17050 int UNUSED written
= 0 ;
17051 IADDR UNUSED pc
= abuf
-> addr
;
17052 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17055 DF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> negdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_DOUBLE ( FLD ( f_FRj
)));
17056 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
17057 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
17064 /* fdnegs: fdnegs$pack $FRj,$FRk */
17067 SEM_FN_NAME ( frvbf
, fdnegs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17069 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17070 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17071 int UNUSED written
= 0 ;
17072 IADDR UNUSED pc
= abuf
-> addr
;
17073 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17077 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> negsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17078 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17079 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17082 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> negsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
17083 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
17084 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17092 /* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17095 SEM_FN_NAME ( frvbf
, cfnegs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17097 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17098 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17099 int UNUSED written
= 0 ;
17100 IADDR UNUSED pc
= abuf
-> addr
;
17101 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17103 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17105 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> negsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17106 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17107 written
|= ( 1 << 3 );
17108 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17112 abuf
-> written
= written
;
17117 /* fabss: fabss$pack $FRj,$FRk */
17120 SEM_FN_NAME ( frvbf
, fabss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17122 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17123 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17124 int UNUSED written
= 0 ;
17125 IADDR UNUSED pc
= abuf
-> addr
;
17126 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17129 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> abssf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17130 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17131 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17138 /* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17141 SEM_FN_NAME ( frvbf
, fabsd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17143 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17144 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17145 int UNUSED written
= 0 ;
17146 IADDR UNUSED pc
= abuf
-> addr
;
17147 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17150 DF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> absdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_DOUBLE ( FLD ( f_FRj
)));
17151 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
17152 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
17159 /* fdabss: fdabss$pack $FRj,$FRk */
17162 SEM_FN_NAME ( frvbf
, fdabss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17164 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17165 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17166 int UNUSED written
= 0 ;
17167 IADDR UNUSED pc
= abuf
-> addr
;
17168 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17172 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> abssf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17173 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17174 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17177 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> abssf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
17178 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
17179 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17187 /* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17190 SEM_FN_NAME ( frvbf
, cfabss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17192 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17193 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17194 int UNUSED written
= 0 ;
17195 IADDR UNUSED pc
= abuf
-> addr
;
17196 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17198 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17200 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> abssf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17201 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17202 written
|= ( 1 << 3 );
17203 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17207 abuf
-> written
= written
;
17212 /* fsqrts: fsqrts$pack $FRj,$FRk */
17215 SEM_FN_NAME ( frvbf
, fsqrts
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17217 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17218 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17219 int UNUSED written
= 0 ;
17220 IADDR UNUSED pc
= abuf
-> addr
;
17221 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17224 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17225 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17226 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17233 /* fdsqrts: fdsqrts$pack $FRj,$FRk */
17236 SEM_FN_NAME ( frvbf
, fdsqrts
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17238 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17239 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17240 int UNUSED written
= 0 ;
17241 IADDR UNUSED pc
= abuf
-> addr
;
17242 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17246 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17247 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17248 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17251 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
17252 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
17253 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17261 /* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17264 SEM_FN_NAME ( frvbf
, nfdsqrts
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17266 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17267 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17268 int UNUSED written
= 0 ;
17269 IADDR UNUSED pc
= abuf
-> addr
;
17270 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17273 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
17275 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17276 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17277 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17279 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
17281 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
17282 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
17283 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17291 /* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17294 SEM_FN_NAME ( frvbf
, fsqrtd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17296 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17297 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17298 int UNUSED written
= 0 ;
17299 IADDR UNUSED pc
= abuf
-> addr
;
17300 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17303 DF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_DOUBLE ( FLD ( f_FRj
)));
17304 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
17305 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
17312 /* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17315 SEM_FN_NAME ( frvbf
, cfsqrts
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17317 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17318 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17319 int UNUSED written
= 0 ;
17320 IADDR UNUSED pc
= abuf
-> addr
;
17321 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17323 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17325 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17326 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17327 written
|= ( 1 << 3 );
17328 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17332 abuf
-> written
= written
;
17337 /* nfsqrts: nfsqrts$pack $FRj,$FRk */
17340 SEM_FN_NAME ( frvbf
, nfsqrts
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17342 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17343 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17344 int UNUSED written
= 0 ;
17345 IADDR UNUSED pc
= abuf
-> addr
;
17346 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17349 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
17351 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17352 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17353 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17361 /* fadds: fadds$pack $FRi,$FRj,$FRk */
17364 SEM_FN_NAME ( frvbf
, fadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17366 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17367 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17368 int UNUSED written
= 0 ;
17369 IADDR UNUSED pc
= abuf
-> addr
;
17370 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17373 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
)));
17374 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17375 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17382 /* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17385 SEM_FN_NAME ( frvbf
, fsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17387 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17388 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17389 int UNUSED written
= 0 ;
17390 IADDR UNUSED pc
= abuf
-> addr
;
17391 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17394 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
)));
17395 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17396 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17403 /* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17406 SEM_FN_NAME ( frvbf
, fmuls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17408 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17409 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17410 int UNUSED written
= 0 ;
17411 IADDR UNUSED pc
= abuf
-> addr
;
17412 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17415 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
)));
17416 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17417 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17424 /* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17427 SEM_FN_NAME ( frvbf
, fdivs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17429 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17430 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17431 int UNUSED written
= 0 ;
17432 IADDR UNUSED pc
= abuf
-> addr
;
17433 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17436 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
)));
17437 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17438 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17445 /* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17448 SEM_FN_NAME ( frvbf
, faddd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17450 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17451 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17452 int UNUSED written
= 0 ;
17453 IADDR UNUSED pc
= abuf
-> addr
;
17454 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17457 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
)));
17458 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
17459 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
17466 /* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17469 SEM_FN_NAME ( frvbf
, fsubd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17471 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17472 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17473 int UNUSED written
= 0 ;
17474 IADDR UNUSED pc
= abuf
-> addr
;
17475 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17478 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
)));
17479 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
17480 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
17487 /* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17490 SEM_FN_NAME ( frvbf
, fmuld
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17492 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17493 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17494 int UNUSED written
= 0 ;
17495 IADDR UNUSED pc
= abuf
-> addr
;
17496 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17499 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
)));
17500 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
17501 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
17508 /* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17511 SEM_FN_NAME ( frvbf
, fdivd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17513 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17514 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17515 int UNUSED written
= 0 ;
17516 IADDR UNUSED pc
= abuf
-> addr
;
17517 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17520 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
)));
17521 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
17522 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
17529 /* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17532 SEM_FN_NAME ( frvbf
, cfadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17534 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17535 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17536 int UNUSED written
= 0 ;
17537 IADDR UNUSED pc
= abuf
-> addr
;
17538 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17540 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17542 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
)));
17543 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17544 written
|= ( 1 << 4 );
17545 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17549 abuf
-> written
= written
;
17554 /* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17557 SEM_FN_NAME ( frvbf
, cfsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17559 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17560 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17561 int UNUSED written
= 0 ;
17562 IADDR UNUSED pc
= abuf
-> addr
;
17563 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17565 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17567 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
)));
17568 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17569 written
|= ( 1 << 4 );
17570 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17574 abuf
-> written
= written
;
17579 /* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17582 SEM_FN_NAME ( frvbf
, cfmuls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17584 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17585 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17586 int UNUSED written
= 0 ;
17587 IADDR UNUSED pc
= abuf
-> addr
;
17588 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17590 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17592 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
)));
17593 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17594 written
|= ( 1 << 4 );
17595 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17599 abuf
-> written
= written
;
17604 /* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17607 SEM_FN_NAME ( frvbf
, cfdivs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17609 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17610 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17611 int UNUSED written
= 0 ;
17612 IADDR UNUSED pc
= abuf
-> addr
;
17613 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17615 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17617 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
)));
17618 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17619 written
|= ( 1 << 4 );
17620 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17624 abuf
-> written
= written
;
17629 /* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17632 SEM_FN_NAME ( frvbf
, nfadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17634 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17635 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17636 int UNUSED written
= 0 ;
17637 IADDR UNUSED pc
= abuf
-> addr
;
17638 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17641 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
17643 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
)));
17644 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17645 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17653 /* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17656 SEM_FN_NAME ( frvbf
, nfsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17658 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17659 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17660 int UNUSED written
= 0 ;
17661 IADDR UNUSED pc
= abuf
-> addr
;
17662 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17665 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
17667 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
)));
17668 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17669 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17677 /* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17680 SEM_FN_NAME ( frvbf
, nfmuls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17682 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17683 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17684 int UNUSED written
= 0 ;
17685 IADDR UNUSED pc
= abuf
-> addr
;
17686 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17689 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
17691 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
)));
17692 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17693 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17701 /* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17704 SEM_FN_NAME ( frvbf
, nfdivs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17706 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17707 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17708 int UNUSED written
= 0 ;
17709 IADDR UNUSED pc
= abuf
-> addr
;
17710 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17713 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
17715 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
)));
17716 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17717 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17725 /* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17728 SEM_FN_NAME ( frvbf
, fcmps
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17730 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17731 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17732 int UNUSED written
= 0 ;
17733 IADDR UNUSED pc
= abuf
-> addr
;
17734 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17736 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
)))) {
17739 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17740 written
|= ( 1 << 2 );
17741 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17744 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
)))) {
17747 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17748 written
|= ( 1 << 2 );
17749 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17752 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
)))) {
17755 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17756 written
|= ( 1 << 2 );
17757 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17762 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17763 written
|= ( 1 << 2 );
17764 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17770 abuf
-> written
= written
;
17775 /* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17778 SEM_FN_NAME ( frvbf
, fcmpd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17780 #define FLD(f) abuf->fields.sfmt_fcmpd.f
17781 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17782 int UNUSED written
= 0 ;
17783 IADDR UNUSED pc
= abuf
-> addr
;
17784 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17786 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
)))) {
17789 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17790 written
|= ( 1 << 2 );
17791 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17794 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
)))) {
17797 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17798 written
|= ( 1 << 2 );
17799 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17802 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
)))) {
17805 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17806 written
|= ( 1 << 2 );
17807 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17812 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17813 written
|= ( 1 << 2 );
17814 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17820 abuf
-> written
= written
;
17825 /* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
17828 SEM_FN_NAME ( frvbf
, cfcmps
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17830 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17831 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17832 int UNUSED written
= 0 ;
17833 IADDR UNUSED pc
= abuf
-> addr
;
17834 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17836 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17837 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
)))) {
17840 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17841 written
|= ( 1 << 4 );
17842 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17845 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
)))) {
17848 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17849 written
|= ( 1 << 4 );
17850 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17853 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
)))) {
17856 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17857 written
|= ( 1 << 4 );
17858 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17863 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17864 written
|= ( 1 << 4 );
17865 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17872 abuf
-> written
= written
;
17877 /* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
17880 SEM_FN_NAME ( frvbf
, fdcmps
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17882 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
17883 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17884 int UNUSED written
= 0 ;
17885 IADDR UNUSED pc
= abuf
-> addr
;
17886 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17889 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
)))) {
17892 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17893 written
|= ( 1 << 7 );
17894 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17897 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
)))) {
17900 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17901 written
|= ( 1 << 7 );
17902 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17905 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
)))) {
17908 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17909 written
|= ( 1 << 7 );
17910 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17915 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17916 written
|= ( 1 << 7 );
17917 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17922 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> gtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )))) {
17925 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ ADDSI ( FLD ( f_FCCi_2
), 1 )]), opval
);
17926 written
|= ( 1 << 8 );
17927 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17930 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> eqsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )))) {
17933 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ ADDSI ( FLD ( f_FCCi_2
), 1 )]), opval
);
17934 written
|= ( 1 << 8 );
17935 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17938 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> ltsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )))) {
17941 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ ADDSI ( FLD ( f_FCCi_2
), 1 )]), opval
);
17942 written
|= ( 1 << 8 );
17943 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17948 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ ADDSI ( FLD ( f_FCCi_2
), 1 )]), opval
);
17949 written
|= ( 1 << 8 );
17950 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17957 abuf
-> written
= written
;
17962 /* fmadds: fmadds$pack $FRi,$FRj,$FRk */
17965 SEM_FN_NAME ( frvbf
, fmadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17967 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17968 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17969 int UNUSED written
= 0 ;
17970 IADDR UNUSED pc
= abuf
-> addr
;
17971 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17974 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
)));
17975 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17976 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17983 /* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
17986 SEM_FN_NAME ( frvbf
, fmsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17988 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17989 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17990 int UNUSED written
= 0 ;
17991 IADDR UNUSED pc
= abuf
-> addr
;
17992 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17995 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
)));
17996 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17997 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18004 /* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18007 SEM_FN_NAME ( frvbf
, fmaddd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18009 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18010 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18011 int UNUSED written
= 0 ;
18012 IADDR UNUSED pc
= abuf
-> addr
;
18013 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18016 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
)));
18017 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
18018 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
18025 /* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18028 SEM_FN_NAME ( frvbf
, fmsubd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18030 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18031 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18032 int UNUSED written
= 0 ;
18033 IADDR UNUSED pc
= abuf
-> addr
;
18034 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18037 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
)));
18038 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
18039 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
18046 /* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18049 SEM_FN_NAME ( frvbf
, fdmadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18051 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18052 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18053 int UNUSED written
= 0 ;
18054 IADDR UNUSED pc
= abuf
-> addr
;
18055 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18059 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
)));
18060 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18061 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
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 ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 ))), GET_H_FR ( ADDSI ( FLD ( f_FRk
), 1 )));
18065 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18066 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18074 /* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18077 SEM_FN_NAME ( frvbf
, nfdmadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18079 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18080 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18081 int UNUSED written
= 0 ;
18082 IADDR UNUSED pc
= abuf
-> addr
;
18083 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18086 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18088 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
)));
18089 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18090 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18092 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18094 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 ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 ))), GET_H_FR ( ADDSI ( FLD ( f_FRk
), 1 )));
18095 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18096 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18104 /* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18107 SEM_FN_NAME ( frvbf
, cfmadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18109 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18110 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18111 int UNUSED written
= 0 ;
18112 IADDR UNUSED pc
= abuf
-> addr
;
18113 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18115 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
18117 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
)));
18118 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18119 written
|= ( 1 << 5 );
18120 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18124 abuf
-> written
= written
;
18129 /* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18132 SEM_FN_NAME ( frvbf
, cfmsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18134 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18135 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18136 int UNUSED written
= 0 ;
18137 IADDR UNUSED pc
= abuf
-> addr
;
18138 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18140 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
18142 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
)));
18143 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18144 written
|= ( 1 << 5 );
18145 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18149 abuf
-> written
= written
;
18154 /* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18157 SEM_FN_NAME ( frvbf
, nfmadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18159 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18160 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18161 int UNUSED written
= 0 ;
18162 IADDR UNUSED pc
= abuf
-> addr
;
18163 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18166 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18168 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
)));
18169 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18170 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18178 /* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18181 SEM_FN_NAME ( frvbf
, nfmsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18183 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18184 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18185 int UNUSED written
= 0 ;
18186 IADDR UNUSED pc
= abuf
-> addr
;
18187 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18190 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18192 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
)));
18193 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18194 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18202 /* fmas: fmas$pack $FRi,$FRj,$FRk */
18205 SEM_FN_NAME ( frvbf
, fmas
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18207 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18208 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18209 int UNUSED written
= 0 ;
18210 IADDR UNUSED pc
= abuf
-> addr
;
18211 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18215 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
)));
18216 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18217 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18220 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18221 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18222 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18230 /* fmss: fmss$pack $FRi,$FRj,$FRk */
18233 SEM_FN_NAME ( frvbf
, fmss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18235 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18236 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18237 int UNUSED written
= 0 ;
18238 IADDR UNUSED pc
= abuf
-> addr
;
18239 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18243 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
)));
18244 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18245 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18248 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18249 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18250 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18258 /* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18261 SEM_FN_NAME ( frvbf
, fdmas
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18263 #define FLD(f) abuf->fields.sfmt_fdmas.f
18264 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18265 int UNUSED written
= 0 ;
18266 IADDR UNUSED pc
= abuf
-> addr
;
18267 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18271 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
)));
18272 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18273 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18276 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18277 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18278 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18281 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 2 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 2 )));
18282 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 2 ), opval
);
18283 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18286 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 3 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 3 )));
18287 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 3 ), opval
);
18288 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18296 /* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18299 SEM_FN_NAME ( frvbf
, fdmss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18301 #define FLD(f) abuf->fields.sfmt_fdmas.f
18302 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18303 int UNUSED written
= 0 ;
18304 IADDR UNUSED pc
= abuf
-> addr
;
18305 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18309 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
)));
18310 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18311 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18314 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18315 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18316 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18319 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 2 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 2 )));
18320 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 2 ), opval
);
18321 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18324 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 3 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 3 )));
18325 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 3 ), opval
);
18326 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18334 /* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18337 SEM_FN_NAME ( frvbf
, nfdmas
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18339 #define FLD(f) abuf->fields.sfmt_fdmas.f
18340 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18341 int UNUSED written
= 0 ;
18342 IADDR UNUSED pc
= abuf
-> addr
;
18343 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18346 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18347 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18348 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 2 ));
18349 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 3 ));
18351 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
)));
18352 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18353 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18356 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18357 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18358 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18361 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 2 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 2 )));
18362 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 2 ), opval
);
18363 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18366 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 3 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 3 )));
18367 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 3 ), opval
);
18368 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18376 /* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18379 SEM_FN_NAME ( frvbf
, nfdmss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18381 #define FLD(f) abuf->fields.sfmt_fdmas.f
18382 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18383 int UNUSED written
= 0 ;
18384 IADDR UNUSED pc
= abuf
-> addr
;
18385 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18388 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18389 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18390 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 2 ));
18391 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 3 ));
18393 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
)));
18394 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18395 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18398 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18399 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18400 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18403 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 2 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 2 )));
18404 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 2 ), opval
);
18405 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18408 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 3 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 3 )));
18409 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 3 ), opval
);
18410 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18418 /* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18421 SEM_FN_NAME ( frvbf
, cfmas
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18423 #define FLD(f) abuf->fields.sfmt_cfmas.f
18424 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18425 int UNUSED written
= 0 ;
18426 IADDR UNUSED pc
= abuf
-> addr
;
18427 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18429 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
18432 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
)));
18433 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18434 written
|= ( 1 << 9 );
18435 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18438 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18439 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18440 written
|= ( 1 << 10 );
18441 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18446 abuf
-> written
= written
;
18451 /* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18454 SEM_FN_NAME ( frvbf
, cfmss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18456 #define FLD(f) abuf->fields.sfmt_cfmas.f
18457 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18458 int UNUSED written
= 0 ;
18459 IADDR UNUSED pc
= abuf
-> addr
;
18460 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18462 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
18465 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
)));
18466 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18467 written
|= ( 1 << 9 );
18468 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18471 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18472 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18473 written
|= ( 1 << 10 );
18474 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18479 abuf
-> written
= written
;
18484 /* fmad: fmad$pack $FRi,$FRj,$FRk */
18487 SEM_FN_NAME ( frvbf
, fmad
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18489 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18490 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18491 int UNUSED written
= 0 ;
18492 IADDR UNUSED pc
= abuf
-> addr
;
18493 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18497 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> ftruncdfsf ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, CGEN_CPU_FPU ( current_cpu
)-> ops
-> muldf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> fextsfdf ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR ( FLD ( f_FRi
))), CGEN_CPU_FPU ( current_cpu
)-> ops
-> fextsfdf ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR ( FLD ( f_FRj
)))));
18498 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18499 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18502 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> ftruncdfsf ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, CGEN_CPU_FPU ( current_cpu
)-> ops
-> adddf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> fextsfdf ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 ))), CGEN_CPU_FPU ( current_cpu
)-> ops
-> fextsfdf ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )))));
18503 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18504 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18512 /* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18515 SEM_FN_NAME ( frvbf
, fmsd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18517 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18518 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18519 int UNUSED written
= 0 ;
18520 IADDR UNUSED pc
= abuf
-> addr
;
18521 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18525 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> ftruncdfsf ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, CGEN_CPU_FPU ( current_cpu
)-> ops
-> muldf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> fextsfdf ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR ( FLD ( f_FRi
))), CGEN_CPU_FPU ( current_cpu
)-> ops
-> fextsfdf ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR ( FLD ( f_FRj
)))));
18526 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18527 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18530 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> ftruncdfsf ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, CGEN_CPU_FPU ( current_cpu
)-> ops
-> subdf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> fextsfdf ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 ))), CGEN_CPU_FPU ( current_cpu
)-> ops
-> fextsfdf ( CGEN_CPU_FPU ( current_cpu
), FPCONV_DEFAULT
, GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )))));
18531 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18532 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18540 /* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18543 SEM_FN_NAME ( frvbf
, nfmas
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18545 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18546 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18547 int UNUSED written
= 0 ;
18548 IADDR UNUSED pc
= abuf
-> addr
;
18549 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18552 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18554 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
)));
18555 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18556 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18558 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18560 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18561 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18562 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18570 /* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18573 SEM_FN_NAME ( frvbf
, nfmss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18575 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18576 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18577 int UNUSED written
= 0 ;
18578 IADDR UNUSED pc
= abuf
-> addr
;
18579 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18582 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18584 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
)));
18585 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18586 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18588 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18590 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18591 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18592 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18600 /* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18603 SEM_FN_NAME ( frvbf
, fdadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18605 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18606 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18607 int UNUSED written
= 0 ;
18608 IADDR UNUSED pc
= abuf
-> addr
;
18609 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18613 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
)));
18614 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18615 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18618 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18619 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18620 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18628 /* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18631 SEM_FN_NAME ( frvbf
, fdsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18633 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18634 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18635 int UNUSED written
= 0 ;
18636 IADDR UNUSED pc
= abuf
-> addr
;
18637 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18641 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
)));
18642 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18643 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18646 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18647 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18648 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18656 /* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18659 SEM_FN_NAME ( frvbf
, fdmuls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18661 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18662 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18663 int UNUSED written
= 0 ;
18664 IADDR UNUSED pc
= abuf
-> addr
;
18665 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18669 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
)));
18670 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18671 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18674 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18675 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18676 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18684 /* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18687 SEM_FN_NAME ( frvbf
, fddivs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18689 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18690 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18691 int UNUSED written
= 0 ;
18692 IADDR UNUSED pc
= abuf
-> addr
;
18693 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18697 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
)));
18698 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18699 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18702 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> divsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18703 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18704 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18712 /* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18715 SEM_FN_NAME ( frvbf
, fdsads
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18717 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18718 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18719 int UNUSED written
= 0 ;
18720 IADDR UNUSED pc
= abuf
-> addr
;
18721 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18725 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
)));
18726 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18727 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18730 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18731 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18732 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18740 /* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18743 SEM_FN_NAME ( frvbf
, fdmulcs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18745 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18746 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18747 int UNUSED written
= 0 ;
18748 IADDR UNUSED pc
= abuf
-> addr
;
18749 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18753 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18754 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18755 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18758 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( FLD ( f_FRj
)));
18759 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18760 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18768 /* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18771 SEM_FN_NAME ( frvbf
, nfdmulcs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18773 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18774 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18775 int UNUSED written
= 0 ;
18776 IADDR UNUSED pc
= abuf
-> addr
;
18777 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18780 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18782 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18783 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18784 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18786 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18788 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( FLD ( f_FRj
)));
18789 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18790 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18798 /* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18801 SEM_FN_NAME ( frvbf
, nfdadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18803 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18804 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18805 int UNUSED written
= 0 ;
18806 IADDR UNUSED pc
= abuf
-> addr
;
18807 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18810 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18812 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
)));
18813 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18814 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18816 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18818 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18819 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18820 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18828 /* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
18831 SEM_FN_NAME ( frvbf
, nfdsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18833 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18834 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18835 int UNUSED written
= 0 ;
18836 IADDR UNUSED pc
= abuf
-> addr
;
18837 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18840 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18842 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
)));
18843 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18844 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18846 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18848 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18849 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18850 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18858 /* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
18861 SEM_FN_NAME ( frvbf
, nfdmuls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18863 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18864 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18865 int UNUSED written
= 0 ;
18866 IADDR UNUSED pc
= abuf
-> addr
;
18867 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18870 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18872 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
)));
18873 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18874 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18876 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18878 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18879 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18880 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18888 /* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
18891 SEM_FN_NAME ( frvbf
, nfddivs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18893 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18894 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18895 int UNUSED written
= 0 ;
18896 IADDR UNUSED pc
= abuf
-> addr
;
18897 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18900 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18902 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
)));
18903 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18904 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18906 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18908 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> divsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18909 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18910 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18918 /* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
18921 SEM_FN_NAME ( frvbf
, nfdsads
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18923 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18924 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18925 int UNUSED written
= 0 ;
18926 IADDR UNUSED pc
= abuf
-> addr
;
18927 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18930 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18932 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
)));
18933 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18934 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18936 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18938 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )));
18939 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
18940 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18948 /* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
18951 SEM_FN_NAME ( frvbf
, nfdcmps
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18953 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
18954 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18955 int UNUSED written
= 0 ;
18956 IADDR UNUSED pc
= abuf
-> addr
;
18957 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18960 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18961 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
)))) {
18964 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
18965 written
|= ( 1 << 8 );
18966 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
18969 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
)))) {
18972 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
18973 written
|= ( 1 << 8 );
18974 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
18977 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
)))) {
18980 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
18981 written
|= ( 1 << 8 );
18982 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
18987 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
18988 written
|= ( 1 << 8 );
18989 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
18994 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18995 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> gtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )))) {
18998 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ ADDSI ( FLD ( f_FCCi_2
), 1 )]), opval
);
18999 written
|= ( 1 << 9 );
19000 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
19003 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> eqsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )))) {
19006 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ ADDSI ( FLD ( f_FCCi_2
), 1 )]), opval
);
19007 written
|= ( 1 << 9 );
19008 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
19011 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> ltsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR ( ADDSI ( FLD ( f_FRj
), 1 )))) {
19014 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ ADDSI ( FLD ( f_FCCi_2
), 1 )]), opval
);
19015 written
|= ( 1 << 9 );
19016 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
19021 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ ADDSI ( FLD ( f_FCCi_2
), 1 )]), opval
);
19022 written
|= ( 1 << 9 );
19023 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
19030 abuf
-> written
= written
;
19035 /* mhsetlos: mhsetlos$pack $u12,$FRklo */
19038 SEM_FN_NAME ( frvbf
, mhsetlos
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19040 #define FLD(f) abuf->fields.sfmt_mhsetlos.f
19041 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19042 int UNUSED written
= 0 ;
19043 IADDR UNUSED pc
= abuf
-> addr
;
19044 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19047 UHI opval
= FLD ( f_u12
);
19048 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, FLD ( f_FRk
), opval
);
19049 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19056 /* mhsethis: mhsethis$pack $u12,$FRkhi */
19059 SEM_FN_NAME ( frvbf
, mhsethis
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19061 #define FLD(f) abuf->fields.sfmt_mhsethis.f
19062 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19063 int UNUSED written
= 0 ;
19064 IADDR UNUSED pc
= abuf
-> addr
;
19065 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19068 UHI opval
= FLD ( f_u12
);
19069 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, FLD ( f_FRk
), opval
);
19070 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19077 /* mhdsets: mhdsets$pack $u12,$FRintk */
19080 SEM_FN_NAME ( frvbf
, mhdsets
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19082 #define FLD(f) abuf->fields.sfmt_mhdsets.f
19083 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19084 int UNUSED written
= 0 ;
19085 IADDR UNUSED pc
= abuf
-> addr
;
19086 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19090 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
19091 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19092 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19095 UHI opval
= FLD ( f_u12
);
19096 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19097 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19100 UHI opval
= FLD ( f_u12
);
19101 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19102 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19110 /* mhsetloh: mhsetloh$pack $s5,$FRklo */
19113 SEM_FN_NAME ( frvbf
, mhsetloh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19115 #define FLD(f) abuf->fields.sfmt_mhsetloh.f
19116 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19117 int UNUSED written
= 0 ;
19118 IADDR UNUSED pc
= abuf
-> addr
;
19119 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19123 tmp_tmp
= GET_H_FR_LO ( FLD ( f_FRk
));
19124 tmp_tmp
= ANDHI ( tmp_tmp
, 2047 );
19125 tmp_tmp
= ORHI ( tmp_tmp
, SLLSI ( ANDSI ( FLD ( f_s5
), 31 ), 11 ));
19127 UHI opval
= tmp_tmp
;
19128 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, FLD ( f_FRk
), opval
);
19129 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19137 /* mhsethih: mhsethih$pack $s5,$FRkhi */
19140 SEM_FN_NAME ( frvbf
, mhsethih
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19142 #define FLD(f) abuf->fields.sfmt_mhsethih.f
19143 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19144 int UNUSED written
= 0 ;
19145 IADDR UNUSED pc
= abuf
-> addr
;
19146 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19150 tmp_tmp
= GET_H_FR_HI ( FLD ( f_FRk
));
19151 tmp_tmp
= ANDHI ( tmp_tmp
, 2047 );
19152 tmp_tmp
= ORHI ( tmp_tmp
, SLLSI ( ANDSI ( FLD ( f_s5
), 31 ), 11 ));
19154 UHI opval
= tmp_tmp
;
19155 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, FLD ( f_FRk
), opval
);
19156 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19164 /* mhdseth: mhdseth$pack $s5,$FRintk */
19167 SEM_FN_NAME ( frvbf
, mhdseth
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19169 #define FLD(f) abuf->fields.sfmt_mhdseth.f
19170 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19171 int UNUSED written
= 0 ;
19172 IADDR UNUSED pc
= abuf
-> addr
;
19173 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19177 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
19178 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19179 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19183 tmp_tmp
= GET_H_FR_HI ( ADDSI ( FLD ( f_FRk
), 0 ));
19184 tmp_tmp
= ANDHI ( tmp_tmp
, 2047 );
19185 tmp_tmp
= ORHI ( tmp_tmp
, SLLSI ( ANDSI ( FLD ( f_s5
), 31 ), 11 ));
19187 UHI opval
= tmp_tmp
;
19188 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19189 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19194 tmp_tmp
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRk
), 0 ));
19195 tmp_tmp
= ANDHI ( tmp_tmp
, 2047 );
19196 tmp_tmp
= ORHI ( tmp_tmp
, SLLSI ( ANDSI ( FLD ( f_s5
), 31 ), 11 ));
19198 UHI opval
= tmp_tmp
;
19199 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19200 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19209 /* mand: mand$pack $FRinti,$FRintj,$FRintk */
19212 SEM_FN_NAME ( frvbf
, mand
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19214 #define FLD(f) abuf->fields.sfmt_mwcut.f
19215 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19216 int UNUSED written
= 0 ;
19217 IADDR UNUSED pc
= abuf
-> addr
;
19218 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19221 SI opval
= ANDSI ( GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19222 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19223 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19230 /* mor: mor$pack $FRinti,$FRintj,$FRintk */
19233 SEM_FN_NAME ( frvbf
, mor
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19235 #define FLD(f) abuf->fields.sfmt_mwcut.f
19236 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19237 int UNUSED written
= 0 ;
19238 IADDR UNUSED pc
= abuf
-> addr
;
19239 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19242 SI opval
= ORSI ( GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19243 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19244 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19251 /* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19254 SEM_FN_NAME ( frvbf
, mxor
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19256 #define FLD(f) abuf->fields.sfmt_mwcut.f
19257 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19258 int UNUSED written
= 0 ;
19259 IADDR UNUSED pc
= abuf
-> addr
;
19260 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19263 SI opval
= XORSI ( GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19264 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19265 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19272 /* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19275 SEM_FN_NAME ( frvbf
, cmand
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19277 #define FLD(f) abuf->fields.sfmt_cmand.f
19278 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19279 int UNUSED written
= 0 ;
19280 IADDR UNUSED pc
= abuf
-> addr
;
19281 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19283 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
19285 SI opval
= ANDSI ( GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19286 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19287 written
|= ( 1 << 4 );
19288 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19292 abuf
-> written
= written
;
19297 /* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19300 SEM_FN_NAME ( frvbf
, cmor
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19302 #define FLD(f) abuf->fields.sfmt_cmand.f
19303 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19304 int UNUSED written
= 0 ;
19305 IADDR UNUSED pc
= abuf
-> addr
;
19306 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19308 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
19310 SI opval
= ORSI ( GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19311 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19312 written
|= ( 1 << 4 );
19313 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19317 abuf
-> written
= written
;
19322 /* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19325 SEM_FN_NAME ( frvbf
, cmxor
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19327 #define FLD(f) abuf->fields.sfmt_cmand.f
19328 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19329 int UNUSED written
= 0 ;
19330 IADDR UNUSED pc
= abuf
-> addr
;
19331 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19333 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
19335 SI opval
= XORSI ( GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19336 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19337 written
|= ( 1 << 4 );
19338 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19342 abuf
-> written
= written
;
19347 /* mnot: mnot$pack $FRintj,$FRintk */
19350 SEM_FN_NAME ( frvbf
, mnot
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19352 #define FLD(f) abuf->fields.sfmt_mcut.f
19353 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19354 int UNUSED written
= 0 ;
19355 IADDR UNUSED pc
= abuf
-> addr
;
19356 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19359 SI opval
= INVSI ( GET_H_FR_INT ( FLD ( f_FRj
)));
19360 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19361 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19368 /* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19371 SEM_FN_NAME ( frvbf
, cmnot
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19373 #define FLD(f) abuf->fields.sfmt_cmand.f
19374 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19375 int UNUSED written
= 0 ;
19376 IADDR UNUSED pc
= abuf
-> addr
;
19377 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19379 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
19381 SI opval
= INVSI ( GET_H_FR_INT ( FLD ( f_FRj
)));
19382 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19383 written
|= ( 1 << 3 );
19384 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19388 abuf
-> written
= written
;
19393 /* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19396 SEM_FN_NAME ( frvbf
, mrotli
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19398 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19399 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19400 int UNUSED written
= 0 ;
19401 IADDR UNUSED pc
= abuf
-> addr
;
19402 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19405 SI opval
= ROLSI ( GET_H_FR_INT ( FLD ( f_FRi
)), ANDSI ( FLD ( f_u6
), 31 ));
19406 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19407 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19414 /* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19417 SEM_FN_NAME ( frvbf
, mrotri
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19419 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19420 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19421 int UNUSED written
= 0 ;
19422 IADDR UNUSED pc
= abuf
-> addr
;
19423 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19426 SI opval
= RORSI ( GET_H_FR_INT ( FLD ( f_FRi
)), ANDSI ( FLD ( f_u6
), 31 ));
19427 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19428 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19435 /* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19438 SEM_FN_NAME ( frvbf
, mwcut
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19440 #define FLD(f) abuf->fields.sfmt_mwcut.f
19441 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19442 int UNUSED written
= 0 ;
19443 IADDR UNUSED pc
= abuf
-> addr
;
19444 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19447 SI opval
= frvbf_cut ( current_cpu
, GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( ADDSI ( FLD ( f_FRi
), 1 )), GET_H_FR_INT ( FLD ( f_FRj
)));
19448 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19449 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19456 /* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19459 SEM_FN_NAME ( frvbf
, mwcuti
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19461 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19462 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19463 int UNUSED written
= 0 ;
19464 IADDR UNUSED pc
= abuf
-> addr
;
19465 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19468 SI opval
= frvbf_cut ( current_cpu
, GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( ADDSI ( FLD ( f_FRi
), 1 )), FLD ( f_u6
));
19469 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19470 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19477 /* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19480 SEM_FN_NAME ( frvbf
, mcut
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19482 #define FLD(f) abuf->fields.sfmt_mcut.f
19483 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19484 int UNUSED written
= 0 ;
19485 IADDR UNUSED pc
= abuf
-> addr
;
19486 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19489 SI opval
= frvbf_media_cut ( current_cpu
, GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19490 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19491 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19498 /* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19501 SEM_FN_NAME ( frvbf
, mcuti
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19503 #define FLD(f) abuf->fields.sfmt_mcuti.f
19504 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19505 int UNUSED written
= 0 ;
19506 IADDR UNUSED pc
= abuf
-> addr
;
19507 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19510 SI opval
= frvbf_media_cut ( current_cpu
, GET_H_ACC40S ( FLD ( f_ACC40Si
)), FLD ( f_s6
));
19511 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19512 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19519 /* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19522 SEM_FN_NAME ( frvbf
, mcutss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19524 #define FLD(f) abuf->fields.sfmt_mcut.f
19525 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19526 int UNUSED written
= 0 ;
19527 IADDR UNUSED pc
= abuf
-> addr
;
19528 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19531 SI opval
= frvbf_media_cut_ss ( current_cpu
, GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19532 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19533 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19540 /* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19543 SEM_FN_NAME ( frvbf
, mcutssi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19545 #define FLD(f) abuf->fields.sfmt_mcuti.f
19546 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19547 int UNUSED written
= 0 ;
19548 IADDR UNUSED pc
= abuf
-> addr
;
19549 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19552 SI opval
= frvbf_media_cut_ss ( current_cpu
, GET_H_ACC40S ( FLD ( f_ACC40Si
)), FLD ( f_s6
));
19553 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19554 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19561 /* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19564 SEM_FN_NAME ( frvbf
, mdcutssi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19566 #define FLD(f) abuf->fields.sfmt_mdcutssi.f
19567 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19568 int UNUSED written
= 0 ;
19569 IADDR UNUSED pc
= abuf
-> addr
;
19570 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19572 if ( ANDSI ( FLD ( f_ACC40Si
), SUBSI ( 2 , 1 ))) {
19573 frvbf_media_acc_not_aligned ( current_cpu
);
19575 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))) {
19576 frvbf_media_register_not_aligned ( current_cpu
);
19580 SI opval
= frvbf_media_cut_ss ( current_cpu
, GET_H_ACC40S ( FLD ( f_ACC40Si
)), FLD ( f_s6
));
19581 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19582 written
|= ( 1 << 5 );
19583 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19586 USI opval
= frvbf_media_cut_ss ( current_cpu
, GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Si
), 1 )), FLD ( f_s6
));
19587 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
19588 written
|= ( 1 << 6 );
19589 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19595 abuf
-> written
= written
;
19600 /* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19603 SEM_FN_NAME ( frvbf
, maveh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19605 #define FLD(f) abuf->fields.sfmt_mwcut.f
19606 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19607 int UNUSED written
= 0 ;
19608 IADDR UNUSED pc
= abuf
-> addr
;
19609 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19612 SI opval
= frvbf_media_average ( current_cpu
, GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19613 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19614 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19621 /* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19624 SEM_FN_NAME ( frvbf
, msllhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19626 #define FLD(f) abuf->fields.sfmt_msllhi.f
19627 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19628 int UNUSED written
= 0 ;
19629 IADDR UNUSED pc
= abuf
-> addr
;
19630 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19634 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
19635 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
19636 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19639 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
19640 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19641 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19644 UHI opval
= SLLHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), ANDSI ( FLD ( f_u6
), 15 ));
19645 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19646 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19649 UHI opval
= SLLHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), ANDSI ( FLD ( f_u6
), 15 ));
19650 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19651 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19659 /* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19662 SEM_FN_NAME ( frvbf
, msrlhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19664 #define FLD(f) abuf->fields.sfmt_msllhi.f
19665 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19666 int UNUSED written
= 0 ;
19667 IADDR UNUSED pc
= abuf
-> addr
;
19668 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19672 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
19673 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
19674 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19677 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
19678 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19679 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19682 UHI opval
= SRLHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), ANDSI ( FLD ( f_u6
), 15 ));
19683 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19684 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19687 UHI opval
= SRLHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), ANDSI ( FLD ( f_u6
), 15 ));
19688 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19689 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19697 /* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19700 SEM_FN_NAME ( frvbf
, msrahi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19702 #define FLD(f) abuf->fields.sfmt_msllhi.f
19703 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19704 int UNUSED written
= 0 ;
19705 IADDR UNUSED pc
= abuf
-> addr
;
19706 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19710 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
19711 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
19712 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19715 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
19716 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19717 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19720 UHI opval
= SRAHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), ANDSI ( FLD ( f_u6
), 15 ));
19721 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19722 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19725 UHI opval
= SRAHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), ANDSI ( FLD ( f_u6
), 15 ));
19726 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19727 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19735 /* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19738 SEM_FN_NAME ( frvbf
, mdrotli
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19740 #define FLD(f) abuf->fields.sfmt_mdrotli.f
19741 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19742 int UNUSED written
= 0 ;
19743 IADDR UNUSED pc
= abuf
-> addr
;
19744 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19746 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 )))) {
19747 frvbf_media_register_not_aligned ( current_cpu
);
19751 SI opval
= ROLSI ( GET_H_FR_INT ( FLD ( f_FRi
)), ANDSI ( FLD ( f_s6
), 31 ));
19752 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19753 written
|= ( 1 << 5 );
19754 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19757 USI opval
= ROLSI ( GET_H_FR_INT ( ADDSI ( FLD ( f_FRi
), 1 )), ANDSI ( FLD ( f_s6
), 31 ));
19758 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
19759 written
|= ( 1 << 6 );
19760 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19765 abuf
-> written
= written
;
19770 /* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19773 SEM_FN_NAME ( frvbf
, mcplhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19775 #define FLD(f) abuf->fields.sfmt_mcplhi.f
19776 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19777 int UNUSED written
= 0 ;
19778 IADDR UNUSED pc
= abuf
-> addr
;
19779 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19786 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
19787 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
19788 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19791 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
19792 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19793 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19795 tmp_shift
= ANDSI ( FLD ( f_u6
), 15 );
19796 tmp_arg1
= SLLHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), tmp_shift
);
19797 if ( NEHI ( tmp_shift
, 0 )) {
19799 tmp_arg2
= GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 ));
19800 tmp_arg2
= SRLHI ( SLLHI ( tmp_arg2
, SUBSI ( 15 , tmp_shift
)), SUBSI ( 15 , tmp_shift
));
19801 tmp_arg1
= ORHI ( tmp_arg1
, tmp_arg2
);
19805 UHI opval
= tmp_arg1
;
19806 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19807 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19815 /* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19818 SEM_FN_NAME ( frvbf
, mcpli
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19820 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19821 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19822 int UNUSED written
= 0 ;
19823 IADDR UNUSED pc
= abuf
-> addr
;
19824 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19829 tmp_shift
= ANDSI ( FLD ( f_u6
), 31 );
19830 tmp_tmp
= SLLSI ( GET_H_FR_INT ( FLD ( f_FRi
)), tmp_shift
);
19831 if ( NESI ( tmp_shift
, 0 )) {
19834 tmp_tmp1
= SRLSI ( SLLSI ( GET_H_FR_INT ( ADDSI ( FLD ( f_FRi
), 1 )), SUBSI ( 31 , tmp_shift
)), SUBSI ( 31 , tmp_shift
));
19835 tmp_tmp
= ORSI ( tmp_tmp
, tmp_tmp1
);
19839 SI opval
= tmp_tmp
;
19840 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19841 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19849 /* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
19852 SEM_FN_NAME ( frvbf
, msaths
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19854 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
19855 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19856 int UNUSED written
= 0 ;
19857 IADDR UNUSED pc
= abuf
-> addr
;
19858 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19866 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
19867 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
19868 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
19869 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
19871 if ( GTHI ( tmp_argihi
, tmp_argjhi
)) {
19873 UHI opval
= tmp_argjhi
;
19874 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19875 written
|= ( 1 << 9 );
19876 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19879 if ( LTHI ( tmp_argihi
, INVHI ( tmp_argjhi
))) {
19881 UHI opval
= INVHI ( tmp_argjhi
);
19882 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19883 written
|= ( 1 << 9 );
19884 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19888 UHI opval
= tmp_argihi
;
19889 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19890 written
|= ( 1 << 9 );
19891 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19895 if ( GTHI ( tmp_argilo
, tmp_argjlo
)) {
19897 UHI opval
= tmp_argjlo
;
19898 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19899 written
|= ( 1 << 10 );
19900 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19903 if ( LTHI ( tmp_argilo
, INVHI ( tmp_argjlo
))) {
19905 UHI opval
= INVHI ( tmp_argjlo
);
19906 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19907 written
|= ( 1 << 10 );
19908 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19912 UHI opval
= tmp_argilo
;
19913 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19914 written
|= ( 1 << 10 );
19915 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19921 abuf
-> written
= written
;
19926 /* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
19929 SEM_FN_NAME ( frvbf
, mqsaths
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19931 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
19932 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19933 int UNUSED written
= 0 ;
19934 IADDR UNUSED pc
= abuf
-> addr
;
19935 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19937 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
19938 frvbf_media_register_not_aligned ( current_cpu
);
19946 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
19947 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19948 written
|= ( 1 << 14 );
19949 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19952 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
19953 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
19954 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
19955 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
19957 if ( GTHI ( tmp_argihi
, tmp_argjhi
)) {
19959 UHI opval
= tmp_argjhi
;
19960 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19961 written
|= ( 1 << 15 );
19962 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19965 if ( LTHI ( tmp_argihi
, INVHI ( tmp_argjhi
))) {
19967 UHI opval
= INVHI ( tmp_argjhi
);
19968 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19969 written
|= ( 1 << 15 );
19970 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19974 UHI opval
= tmp_argihi
;
19975 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19976 written
|= ( 1 << 15 );
19977 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19981 if ( GTHI ( tmp_argilo
, tmp_argjlo
)) {
19983 UHI opval
= tmp_argjlo
;
19984 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19985 written
|= ( 1 << 17 );
19986 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19989 if ( LTHI ( tmp_argilo
, INVHI ( tmp_argjlo
))) {
19991 UHI opval
= INVHI ( tmp_argjlo
);
19992 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
19993 written
|= ( 1 << 17 );
19994 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19998 UHI opval
= tmp_argilo
;
19999 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20000 written
|= ( 1 << 17 );
20001 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20006 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20007 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20008 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20009 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20011 if ( GTHI ( tmp_argihi
, tmp_argjhi
)) {
20013 UHI opval
= tmp_argjhi
;
20014 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
20015 written
|= ( 1 << 16 );
20016 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20019 if ( LTHI ( tmp_argihi
, INVHI ( tmp_argjhi
))) {
20021 UHI opval
= INVHI ( tmp_argjhi
);
20022 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
20023 written
|= ( 1 << 16 );
20024 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20028 UHI opval
= tmp_argihi
;
20029 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
20030 written
|= ( 1 << 16 );
20031 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20035 if ( GTHI ( tmp_argilo
, tmp_argjlo
)) {
20037 UHI opval
= tmp_argjlo
;
20038 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
20039 written
|= ( 1 << 18 );
20040 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20043 if ( LTHI ( tmp_argilo
, INVHI ( tmp_argjlo
))) {
20045 UHI opval
= INVHI ( tmp_argjlo
);
20046 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
20047 written
|= ( 1 << 18 );
20048 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20052 UHI opval
= tmp_argilo
;
20053 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
20054 written
|= ( 1 << 18 );
20055 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20062 abuf
-> written
= written
;
20067 /* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20070 SEM_FN_NAME ( frvbf
, msathu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20072 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20073 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20074 int UNUSED written
= 0 ;
20075 IADDR UNUSED pc
= abuf
-> addr
;
20076 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20084 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20085 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20086 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20087 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20089 if ( GTUHI ( tmp_argihi
, tmp_argjhi
)) {
20091 UHI opval
= tmp_argjhi
;
20092 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20093 written
|= ( 1 << 9 );
20094 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20098 UHI opval
= tmp_argihi
;
20099 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20100 written
|= ( 1 << 9 );
20101 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20104 if ( GTUHI ( tmp_argilo
, tmp_argjlo
)) {
20106 UHI opval
= tmp_argjlo
;
20107 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20108 written
|= ( 1 << 10 );
20109 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20113 UHI opval
= tmp_argilo
;
20114 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20115 written
|= ( 1 << 10 );
20116 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20121 abuf
-> written
= written
;
20126 /* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20129 SEM_FN_NAME ( frvbf
, mcmpsh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20131 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20132 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20133 int UNUSED written
= 0 ;
20134 IADDR UNUSED pc
= abuf
-> addr
;
20135 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20137 if ( ANDSI ( FLD ( f_FCCk
), SUBSI ( 2 , 1 ))) {
20138 frvbf_media_cr_not_aligned ( current_cpu
);
20146 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20147 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20148 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20149 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20151 if ( GTHI ( tmp_argihi
, tmp_argjhi
)) {
20154 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20155 written
|= ( 1 << 9 );
20156 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20159 if ( EQHI ( tmp_argihi
, tmp_argjhi
)) {
20162 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20163 written
|= ( 1 << 9 );
20164 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20167 if ( LTHI ( tmp_argihi
, tmp_argjhi
)) {
20170 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20171 written
|= ( 1 << 9 );
20172 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20177 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20178 written
|= ( 1 << 9 );
20179 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20184 if ( GTHI ( tmp_argilo
, tmp_argjlo
)) {
20187 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ ADDSI ( FLD ( f_FCCk
), 1 )]), opval
);
20188 written
|= ( 1 << 10 );
20189 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20192 if ( EQHI ( tmp_argilo
, tmp_argjlo
)) {
20195 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ ADDSI ( FLD ( f_FCCk
), 1 )]), opval
);
20196 written
|= ( 1 << 10 );
20197 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20200 if ( LTHI ( tmp_argilo
, tmp_argjlo
)) {
20203 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ ADDSI ( FLD ( f_FCCk
), 1 )]), opval
);
20204 written
|= ( 1 << 10 );
20205 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20210 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ ADDSI ( FLD ( f_FCCk
), 1 )]), opval
);
20211 written
|= ( 1 << 10 );
20212 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20220 abuf
-> written
= written
;
20225 /* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20228 SEM_FN_NAME ( frvbf
, mcmpuh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20230 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20231 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20232 int UNUSED written
= 0 ;
20233 IADDR UNUSED pc
= abuf
-> addr
;
20234 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20236 if ( ANDSI ( FLD ( f_FCCk
), SUBSI ( 2 , 1 ))) {
20237 frvbf_media_cr_not_aligned ( current_cpu
);
20245 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20246 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20247 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20248 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20250 if ( GTUHI ( tmp_argihi
, tmp_argjhi
)) {
20253 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20254 written
|= ( 1 << 9 );
20255 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20258 if ( EQHI ( tmp_argihi
, tmp_argjhi
)) {
20261 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20262 written
|= ( 1 << 9 );
20263 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20266 if ( LTUHI ( tmp_argihi
, tmp_argjhi
)) {
20269 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20270 written
|= ( 1 << 9 );
20271 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20276 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20277 written
|= ( 1 << 9 );
20278 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20283 if ( GTUHI ( tmp_argilo
, tmp_argjlo
)) {
20286 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ ADDSI ( FLD ( f_FCCk
), 1 )]), opval
);
20287 written
|= ( 1 << 10 );
20288 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20291 if ( EQHI ( tmp_argilo
, tmp_argjlo
)) {
20294 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ ADDSI ( FLD ( f_FCCk
), 1 )]), opval
);
20295 written
|= ( 1 << 10 );
20296 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20299 if ( LTUHI ( tmp_argilo
, tmp_argjlo
)) {
20302 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ ADDSI ( FLD ( f_FCCk
), 1 )]), opval
);
20303 written
|= ( 1 << 10 );
20304 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20309 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ ADDSI ( FLD ( f_FCCk
), 1 )]), opval
);
20310 written
|= ( 1 << 10 );
20311 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20319 abuf
-> written
= written
;
20324 /* mabshs: mabshs$pack $FRintj,$FRintk */
20327 SEM_FN_NAME ( frvbf
, mabshs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20329 #define FLD(f) abuf->fields.sfmt_mabshs.f
20330 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20331 int UNUSED written
= 0 ;
20332 IADDR UNUSED pc
= abuf
-> addr
;
20333 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20339 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
20340 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
20341 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
20344 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
20345 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
20346 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
20348 tmp_arghi
= GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 ));
20349 tmp_arglo
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 ));
20350 if ( GTDI ( ABSDI ( EXTHIDI ( tmp_arghi
)), 32767 )) {
20354 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20355 written
|= ( 1 << 8 );
20356 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20358 frvbf_media_overflow ( current_cpu
, 8 );
20361 if ( LTDI ( ABSDI ( EXTHIDI ( tmp_arghi
)), - 32768 )) {
20364 UHI opval
= - 32768 ;
20365 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20366 written
|= ( 1 << 8 );
20367 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20369 frvbf_media_overflow ( current_cpu
, 8 );
20373 UHI opval
= ABSDI ( EXTHIDI ( tmp_arghi
));
20374 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20375 written
|= ( 1 << 8 );
20376 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20380 if ( GTDI ( ABSDI ( EXTHIDI ( tmp_arglo
)), 32767 )) {
20384 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20385 written
|= ( 1 << 9 );
20386 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20388 frvbf_media_overflow ( current_cpu
, 4 );
20391 if ( LTDI ( ABSDI ( EXTHIDI ( tmp_arglo
)), - 32768 )) {
20394 UHI opval
= - 32768 ;
20395 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20396 written
|= ( 1 << 9 );
20397 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20399 frvbf_media_overflow ( current_cpu
, 4 );
20403 UHI opval
= ABSDI ( EXTHIDI ( tmp_arglo
));
20404 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20405 written
|= ( 1 << 9 );
20406 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20412 abuf
-> written
= written
;
20417 /* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20420 SEM_FN_NAME ( frvbf
, maddhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20422 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20423 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20424 int UNUSED written
= 0 ;
20425 IADDR UNUSED pc
= abuf
-> addr
;
20426 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20434 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20435 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20436 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20437 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20441 tmp_tmp
= ADDDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
20442 if ( GTDI ( tmp_tmp
, 32767 )) {
20446 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20447 written
|= ( 1 << 9 );
20448 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20450 frvbf_media_overflow ( current_cpu
, 8 );
20453 if ( LTDI ( tmp_tmp
, - 32768 )) {
20456 UHI opval
= - 32768 ;
20457 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20458 written
|= ( 1 << 9 );
20459 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20461 frvbf_media_overflow ( current_cpu
, 8 );
20465 UHI opval
= tmp_tmp
;
20466 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20467 written
|= ( 1 << 9 );
20468 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20475 tmp_tmp
= ADDDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
20476 if ( GTDI ( tmp_tmp
, 32767 )) {
20480 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20481 written
|= ( 1 << 10 );
20482 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20484 frvbf_media_overflow ( current_cpu
, 4 );
20487 if ( LTDI ( tmp_tmp
, - 32768 )) {
20490 UHI opval
= - 32768 ;
20491 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20492 written
|= ( 1 << 10 );
20493 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20495 frvbf_media_overflow ( current_cpu
, 4 );
20499 UHI opval
= tmp_tmp
;
20500 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20501 written
|= ( 1 << 10 );
20502 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20509 abuf
-> written
= written
;
20514 /* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20517 SEM_FN_NAME ( frvbf
, maddhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20519 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20520 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20521 int UNUSED written
= 0 ;
20522 IADDR UNUSED pc
= abuf
-> addr
;
20523 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20531 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20532 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20533 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20534 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20538 tmp_tmp
= ADDDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
20539 if ( GTDI ( tmp_tmp
, 65535 )) {
20543 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20544 written
|= ( 1 << 9 );
20545 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20547 frvbf_media_overflow ( current_cpu
, 8 );
20550 if ( LTDI ( tmp_tmp
, 0 )) {
20554 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20555 written
|= ( 1 << 9 );
20556 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20558 frvbf_media_overflow ( current_cpu
, 8 );
20562 UHI opval
= tmp_tmp
;
20563 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20564 written
|= ( 1 << 9 );
20565 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20572 tmp_tmp
= ADDDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
20573 if ( GTDI ( tmp_tmp
, 65535 )) {
20577 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20578 written
|= ( 1 << 10 );
20579 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20581 frvbf_media_overflow ( current_cpu
, 4 );
20584 if ( LTDI ( tmp_tmp
, 0 )) {
20588 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20589 written
|= ( 1 << 10 );
20590 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20592 frvbf_media_overflow ( current_cpu
, 4 );
20596 UHI opval
= tmp_tmp
;
20597 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20598 written
|= ( 1 << 10 );
20599 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20606 abuf
-> written
= written
;
20611 /* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20614 SEM_FN_NAME ( frvbf
, msubhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20616 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20617 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20618 int UNUSED written
= 0 ;
20619 IADDR UNUSED pc
= abuf
-> addr
;
20620 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20628 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20629 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20630 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20631 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20635 tmp_tmp
= SUBDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
20636 if ( GTDI ( tmp_tmp
, 32767 )) {
20640 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20641 written
|= ( 1 << 9 );
20642 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20644 frvbf_media_overflow ( current_cpu
, 8 );
20647 if ( LTDI ( tmp_tmp
, - 32768 )) {
20650 UHI opval
= - 32768 ;
20651 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20652 written
|= ( 1 << 9 );
20653 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20655 frvbf_media_overflow ( current_cpu
, 8 );
20659 UHI opval
= tmp_tmp
;
20660 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20661 written
|= ( 1 << 9 );
20662 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20669 tmp_tmp
= SUBDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
20670 if ( GTDI ( tmp_tmp
, 32767 )) {
20674 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20675 written
|= ( 1 << 10 );
20676 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20678 frvbf_media_overflow ( current_cpu
, 4 );
20681 if ( LTDI ( tmp_tmp
, - 32768 )) {
20684 UHI opval
= - 32768 ;
20685 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20686 written
|= ( 1 << 10 );
20687 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20689 frvbf_media_overflow ( current_cpu
, 4 );
20693 UHI opval
= tmp_tmp
;
20694 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20695 written
|= ( 1 << 10 );
20696 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20703 abuf
-> written
= written
;
20708 /* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20711 SEM_FN_NAME ( frvbf
, msubhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20713 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20714 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20715 int UNUSED written
= 0 ;
20716 IADDR UNUSED pc
= abuf
-> addr
;
20717 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20725 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20726 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20727 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20728 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20732 tmp_tmp
= SUBDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
20733 if ( GTDI ( tmp_tmp
, 65535 )) {
20737 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20738 written
|= ( 1 << 9 );
20739 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20741 frvbf_media_overflow ( current_cpu
, 8 );
20744 if ( LTDI ( tmp_tmp
, 0 )) {
20748 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20749 written
|= ( 1 << 9 );
20750 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20752 frvbf_media_overflow ( current_cpu
, 8 );
20756 UHI opval
= tmp_tmp
;
20757 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20758 written
|= ( 1 << 9 );
20759 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20766 tmp_tmp
= SUBDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
20767 if ( GTDI ( tmp_tmp
, 65535 )) {
20771 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20772 written
|= ( 1 << 10 );
20773 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20775 frvbf_media_overflow ( current_cpu
, 4 );
20778 if ( LTDI ( tmp_tmp
, 0 )) {
20782 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20783 written
|= ( 1 << 10 );
20784 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20786 frvbf_media_overflow ( current_cpu
, 4 );
20790 UHI opval
= tmp_tmp
;
20791 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20792 written
|= ( 1 << 10 );
20793 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20800 abuf
-> written
= written
;
20805 /* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20808 SEM_FN_NAME ( frvbf
, cmaddhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20810 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20811 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20812 int UNUSED written
= 0 ;
20813 IADDR UNUSED pc
= abuf
-> addr
;
20814 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20816 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
20823 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20824 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20825 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20826 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20830 tmp_tmp
= ADDDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
20831 if ( GTDI ( tmp_tmp
, 32767 )) {
20835 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20836 written
|= ( 1 << 11 );
20837 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20839 frvbf_media_overflow ( current_cpu
, 8 );
20842 if ( LTDI ( tmp_tmp
, - 32768 )) {
20845 UHI opval
= - 32768 ;
20846 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20847 written
|= ( 1 << 11 );
20848 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20850 frvbf_media_overflow ( current_cpu
, 8 );
20854 UHI opval
= tmp_tmp
;
20855 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20856 written
|= ( 1 << 11 );
20857 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20864 tmp_tmp
= ADDDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
20865 if ( GTDI ( tmp_tmp
, 32767 )) {
20869 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20870 written
|= ( 1 << 12 );
20871 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20873 frvbf_media_overflow ( current_cpu
, 4 );
20876 if ( LTDI ( tmp_tmp
, - 32768 )) {
20879 UHI opval
= - 32768 ;
20880 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20881 written
|= ( 1 << 12 );
20882 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20884 frvbf_media_overflow ( current_cpu
, 4 );
20888 UHI opval
= tmp_tmp
;
20889 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20890 written
|= ( 1 << 12 );
20891 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20899 abuf
-> written
= written
;
20904 /* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20907 SEM_FN_NAME ( frvbf
, cmaddhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20909 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20910 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20911 int UNUSED written
= 0 ;
20912 IADDR UNUSED pc
= abuf
-> addr
;
20913 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20915 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
20922 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20923 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20924 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20925 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20929 tmp_tmp
= ADDDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
20930 if ( GTDI ( tmp_tmp
, 65535 )) {
20934 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20935 written
|= ( 1 << 11 );
20936 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20938 frvbf_media_overflow ( current_cpu
, 8 );
20941 if ( LTDI ( tmp_tmp
, 0 )) {
20945 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20946 written
|= ( 1 << 11 );
20947 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20949 frvbf_media_overflow ( current_cpu
, 8 );
20953 UHI opval
= tmp_tmp
;
20954 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20955 written
|= ( 1 << 11 );
20956 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20963 tmp_tmp
= ADDDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
20964 if ( GTDI ( tmp_tmp
, 65535 )) {
20968 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20969 written
|= ( 1 << 12 );
20970 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20972 frvbf_media_overflow ( current_cpu
, 4 );
20975 if ( LTDI ( tmp_tmp
, 0 )) {
20979 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20980 written
|= ( 1 << 12 );
20981 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20983 frvbf_media_overflow ( current_cpu
, 4 );
20987 UHI opval
= tmp_tmp
;
20988 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
20989 written
|= ( 1 << 12 );
20990 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20998 abuf
-> written
= written
;
21003 /* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21006 SEM_FN_NAME ( frvbf
, cmsubhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
21008 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21009 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
21010 int UNUSED written
= 0 ;
21011 IADDR UNUSED pc
= abuf
-> addr
;
21012 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
21014 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
21021 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21022 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21023 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21024 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21028 tmp_tmp
= SUBDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
21029 if ( GTDI ( tmp_tmp
, 32767 )) {
21033 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21034 written
|= ( 1 << 11 );
21035 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21037 frvbf_media_overflow ( current_cpu
, 8 );
21040 if ( LTDI ( tmp_tmp
, - 32768 )) {
21043 UHI opval
= - 32768 ;
21044 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21045 written
|= ( 1 << 11 );
21046 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21048 frvbf_media_overflow ( current_cpu
, 8 );
21052 UHI opval
= tmp_tmp
;
21053 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21054 written
|= ( 1 << 11 );
21055 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21062 tmp_tmp
= SUBDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
21063 if ( GTDI ( tmp_tmp
, 32767 )) {
21067 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21068 written
|= ( 1 << 12 );
21069 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21071 frvbf_media_overflow ( current_cpu
, 4 );
21074 if ( LTDI ( tmp_tmp
, - 32768 )) {
21077 UHI opval
= - 32768 ;
21078 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21079 written
|= ( 1 << 12 );
21080 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21082 frvbf_media_overflow ( current_cpu
, 4 );
21086 UHI opval
= tmp_tmp
;
21087 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21088 written
|= ( 1 << 12 );
21089 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21097 abuf
-> written
= written
;
21102 /* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21105 SEM_FN_NAME ( frvbf
, cmsubhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
21107 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21108 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
21109 int UNUSED written
= 0 ;
21110 IADDR UNUSED pc
= abuf
-> addr
;
21111 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
21113 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
21120 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21121 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21122 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21123 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21127 tmp_tmp
= SUBDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
21128 if ( GTDI ( tmp_tmp
, 65535 )) {
21132 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21133 written
|= ( 1 << 11 );
21134 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21136 frvbf_media_overflow ( current_cpu
, 8 );
21139 if ( LTDI ( tmp_tmp
, 0 )) {
21143 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21144 written
|= ( 1 << 11 );
21145 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21147 frvbf_media_overflow ( current_cpu
, 8 );
21151 UHI opval
= tmp_tmp
;
21152 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21153 written
|= ( 1 << 11 );
21154 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21161 tmp_tmp
= SUBDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
21162 if ( GTDI ( tmp_tmp
, 65535 )) {
21166 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21167 written
|= ( 1 << 12 );
21168 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21170 frvbf_media_overflow ( current_cpu
, 4 );
21173 if ( LTDI ( tmp_tmp
, 0 )) {
21177 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21178 written
|= ( 1 << 12 );
21179 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21181 frvbf_media_overflow ( current_cpu
, 4 );
21185 UHI opval
= tmp_tmp
;
21186 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21187 written
|= ( 1 << 12 );
21188 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21196 abuf
-> written
= written
;
21201 /* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21204 SEM_FN_NAME ( frvbf
, mqaddhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
21206 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21207 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
21208 int UNUSED written
= 0 ;
21209 IADDR UNUSED pc
= abuf
-> addr
;
21210 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
21212 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
21213 frvbf_media_register_not_aligned ( current_cpu
);
21221 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
21222 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
21223 written
|= ( 1 << 14 );
21224 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
21227 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21228 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21229 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21230 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21234 tmp_tmp
= ADDDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
21235 if ( GTDI ( tmp_tmp
, 32767 )) {
21239 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21240 written
|= ( 1 << 15 );
21241 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21243 frvbf_media_overflow ( current_cpu
, 8 );
21246 if ( LTDI ( tmp_tmp
, - 32768 )) {
21249 UHI opval
= - 32768 ;
21250 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21251 written
|= ( 1 << 15 );
21252 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21254 frvbf_media_overflow ( current_cpu
, 8 );
21258 UHI opval
= tmp_tmp
;
21259 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21260 written
|= ( 1 << 15 );
21261 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21268 tmp_tmp
= ADDDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
21269 if ( GTDI ( tmp_tmp
, 32767 )) {
21273 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21274 written
|= ( 1 << 17 );
21275 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21277 frvbf_media_overflow ( current_cpu
, 4 );
21280 if ( LTDI ( tmp_tmp
, - 32768 )) {
21283 UHI opval
= - 32768 ;
21284 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21285 written
|= ( 1 << 17 );
21286 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21288 frvbf_media_overflow ( current_cpu
, 4 );
21292 UHI opval
= tmp_tmp
;
21293 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21294 written
|= ( 1 << 17 );
21295 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21301 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21302 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21303 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21304 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21308 tmp_tmp
= ADDDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
21309 if ( GTDI ( tmp_tmp
, 32767 )) {
21313 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21314 written
|= ( 1 << 16 );
21315 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21317 frvbf_media_overflow ( current_cpu
, 2 );
21320 if ( LTDI ( tmp_tmp
, - 32768 )) {
21323 UHI opval
= - 32768 ;
21324 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21325 written
|= ( 1 << 16 );
21326 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21328 frvbf_media_overflow ( current_cpu
, 2 );
21332 UHI opval
= tmp_tmp
;
21333 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21334 written
|= ( 1 << 16 );
21335 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21342 tmp_tmp
= ADDDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
21343 if ( GTDI ( tmp_tmp
, 32767 )) {
21347 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21348 written
|= ( 1 << 18 );
21349 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21351 frvbf_media_overflow ( current_cpu
, 1 );
21354 if ( LTDI ( tmp_tmp
, - 32768 )) {
21357 UHI opval
= - 32768 ;
21358 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21359 written
|= ( 1 << 18 );
21360 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21362 frvbf_media_overflow ( current_cpu
, 1 );
21366 UHI opval
= tmp_tmp
;
21367 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21368 written
|= ( 1 << 18 );
21369 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21377 abuf
-> written
= written
;
21382 /* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21385 SEM_FN_NAME ( frvbf
, mqaddhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
21387 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21388 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
21389 int UNUSED written
= 0 ;
21390 IADDR UNUSED pc
= abuf
-> addr
;
21391 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
21393 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
21394 frvbf_media_register_not_aligned ( current_cpu
);
21402 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
21403 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
21404 written
|= ( 1 << 14 );
21405 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
21408 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21409 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21410 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21411 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21415 tmp_tmp
= ADDDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
21416 if ( GTDI ( tmp_tmp
, 65535 )) {
21420 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21421 written
|= ( 1 << 15 );
21422 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21424 frvbf_media_overflow ( current_cpu
, 8 );
21427 if ( LTDI ( tmp_tmp
, 0 )) {
21431 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21432 written
|= ( 1 << 15 );
21433 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21435 frvbf_media_overflow ( current_cpu
, 8 );
21439 UHI opval
= tmp_tmp
;
21440 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21441 written
|= ( 1 << 15 );
21442 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21449 tmp_tmp
= ADDDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
21450 if ( GTDI ( tmp_tmp
, 65535 )) {
21454 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21455 written
|= ( 1 << 17 );
21456 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21458 frvbf_media_overflow ( current_cpu
, 4 );
21461 if ( LTDI ( tmp_tmp
, 0 )) {
21465 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21466 written
|= ( 1 << 17 );
21467 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21469 frvbf_media_overflow ( current_cpu
, 4 );
21473 UHI opval
= tmp_tmp
;
21474 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21475 written
|= ( 1 << 17 );
21476 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21482 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21483 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21484 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21485 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21489 tmp_tmp
= ADDDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
21490 if ( GTDI ( tmp_tmp
, 65535 )) {
21494 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21495 written
|= ( 1 << 16 );
21496 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21498 frvbf_media_overflow ( current_cpu
, 2 );
21501 if ( LTDI ( tmp_tmp
, 0 )) {
21505 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21506 written
|= ( 1 << 16 );
21507 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21509 frvbf_media_overflow ( current_cpu
, 2 );
21513 UHI opval
= tmp_tmp
;
21514 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21515 written
|= ( 1 << 16 );
21516 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21523 tmp_tmp
= ADDDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
21524 if ( GTDI ( tmp_tmp
, 65535 )) {
21528 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21529 written
|= ( 1 << 18 );
21530 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21532 frvbf_media_overflow ( current_cpu
, 1 );
21535 if ( LTDI ( tmp_tmp
, 0 )) {
21539 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21540 written
|= ( 1 << 18 );
21541 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21543 frvbf_media_overflow ( current_cpu
, 1 );
21547 UHI opval
= tmp_tmp
;
21548 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21549 written
|= ( 1 << 18 );
21550 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21558 abuf
-> written
= written
;
21563 /* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21566 SEM_FN_NAME ( frvbf
, mqsubhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
21568 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21569 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
21570 int UNUSED written
= 0 ;
21571 IADDR UNUSED pc
= abuf
-> addr
;
21572 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
21574 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
21575 frvbf_media_register_not_aligned ( current_cpu
);
21583 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
21584 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
21585 written
|= ( 1 << 14 );
21586 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
21589 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21590 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21591 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21592 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21596 tmp_tmp
= SUBDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
21597 if ( GTDI ( tmp_tmp
, 32767 )) {
21601 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21602 written
|= ( 1 << 15 );
21603 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21605 frvbf_media_overflow ( current_cpu
, 8 );
21608 if ( LTDI ( tmp_tmp
, - 32768 )) {
21611 UHI opval
= - 32768 ;
21612 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21613 written
|= ( 1 << 15 );
21614 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21616 frvbf_media_overflow ( current_cpu
, 8 );
21620 UHI opval
= tmp_tmp
;
21621 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21622 written
|= ( 1 << 15 );
21623 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21630 tmp_tmp
= SUBDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
21631 if ( GTDI ( tmp_tmp
, 32767 )) {
21635 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21636 written
|= ( 1 << 17 );
21637 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21639 frvbf_media_overflow ( current_cpu
, 4 );
21642 if ( LTDI ( tmp_tmp
, - 32768 )) {
21645 UHI opval
= - 32768 ;
21646 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21647 written
|= ( 1 << 17 );
21648 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21650 frvbf_media_overflow ( current_cpu
, 4 );
21654 UHI opval
= tmp_tmp
;
21655 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21656 written
|= ( 1 << 17 );
21657 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21663 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21664 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21665 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21666 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21670 tmp_tmp
= SUBDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
21671 if ( GTDI ( tmp_tmp
, 32767 )) {
21675 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21676 written
|= ( 1 << 16 );
21677 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21679 frvbf_media_overflow ( current_cpu
, 2 );
21682 if ( LTDI ( tmp_tmp
, - 32768 )) {
21685 UHI opval
= - 32768 ;
21686 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21687 written
|= ( 1 << 16 );
21688 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21690 frvbf_media_overflow ( current_cpu
, 2 );
21694 UHI opval
= tmp_tmp
;
21695 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21696 written
|= ( 1 << 16 );
21697 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21704 tmp_tmp
= SUBDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
21705 if ( GTDI ( tmp_tmp
, 32767 )) {
21709 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21710 written
|= ( 1 << 18 );
21711 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21713 frvbf_media_overflow ( current_cpu
, 1 );
21716 if ( LTDI ( tmp_tmp
, - 32768 )) {
21719 UHI opval
= - 32768 ;
21720 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21721 written
|= ( 1 << 18 );
21722 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21724 frvbf_media_overflow ( current_cpu
, 1 );
21728 UHI opval
= tmp_tmp
;
21729 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21730 written
|= ( 1 << 18 );
21731 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21739 abuf
-> written
= written
;
21744 /* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21747 SEM_FN_NAME ( frvbf
, mqsubhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
21749 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21750 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
21751 int UNUSED written
= 0 ;
21752 IADDR UNUSED pc
= abuf
-> addr
;
21753 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
21755 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
21756 frvbf_media_register_not_aligned ( current_cpu
);
21764 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
21765 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
21766 written
|= ( 1 << 14 );
21767 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
21770 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21771 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21772 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21773 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21777 tmp_tmp
= SUBDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
21778 if ( GTDI ( tmp_tmp
, 65535 )) {
21782 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21783 written
|= ( 1 << 15 );
21784 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21786 frvbf_media_overflow ( current_cpu
, 8 );
21789 if ( LTDI ( tmp_tmp
, 0 )) {
21793 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21794 written
|= ( 1 << 15 );
21795 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21797 frvbf_media_overflow ( current_cpu
, 8 );
21801 UHI opval
= tmp_tmp
;
21802 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21803 written
|= ( 1 << 15 );
21804 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21811 tmp_tmp
= SUBDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
21812 if ( GTDI ( tmp_tmp
, 65535 )) {
21816 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21817 written
|= ( 1 << 17 );
21818 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21820 frvbf_media_overflow ( current_cpu
, 4 );
21823 if ( LTDI ( tmp_tmp
, 0 )) {
21827 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21828 written
|= ( 1 << 17 );
21829 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21831 frvbf_media_overflow ( current_cpu
, 4 );
21835 UHI opval
= tmp_tmp
;
21836 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21837 written
|= ( 1 << 17 );
21838 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21844 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21845 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21846 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21847 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21851 tmp_tmp
= SUBDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
21852 if ( GTDI ( tmp_tmp
, 65535 )) {
21856 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21857 written
|= ( 1 << 16 );
21858 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21860 frvbf_media_overflow ( current_cpu
, 2 );
21863 if ( LTDI ( tmp_tmp
, 0 )) {
21867 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21868 written
|= ( 1 << 16 );
21869 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21871 frvbf_media_overflow ( current_cpu
, 2 );
21875 UHI opval
= tmp_tmp
;
21876 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21877 written
|= ( 1 << 16 );
21878 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21885 tmp_tmp
= SUBDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
21886 if ( GTDI ( tmp_tmp
, 65535 )) {
21890 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21891 written
|= ( 1 << 18 );
21892 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21894 frvbf_media_overflow ( current_cpu
, 1 );
21897 if ( LTDI ( tmp_tmp
, 0 )) {
21901 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21902 written
|= ( 1 << 18 );
21903 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21905 frvbf_media_overflow ( current_cpu
, 1 );
21909 UHI opval
= tmp_tmp
;
21910 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
21911 written
|= ( 1 << 18 );
21912 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21920 abuf
-> written
= written
;
21925 /* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
21928 SEM_FN_NAME ( frvbf
, cmqaddhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
21930 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21931 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
21932 int UNUSED written
= 0 ;
21933 IADDR UNUSED pc
= abuf
-> addr
;
21934 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
21936 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
21937 frvbf_media_register_not_aligned ( current_cpu
);
21939 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
21946 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
21947 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
21948 written
|= ( 1 << 16 );
21949 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
21952 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21953 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21954 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21955 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21959 tmp_tmp
= ADDDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
21960 if ( GTDI ( tmp_tmp
, 32767 )) {
21964 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21965 written
|= ( 1 << 17 );
21966 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21968 frvbf_media_overflow ( current_cpu
, 8 );
21971 if ( LTDI ( tmp_tmp
, - 32768 )) {
21974 UHI opval
= - 32768 ;
21975 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21976 written
|= ( 1 << 17 );
21977 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21979 frvbf_media_overflow ( current_cpu
, 8 );
21983 UHI opval
= tmp_tmp
;
21984 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21985 written
|= ( 1 << 17 );
21986 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21993 tmp_tmp
= ADDDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
21994 if ( GTDI ( tmp_tmp
, 32767 )) {
21998 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
21999 written
|= ( 1 << 19 );
22000 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22002 frvbf_media_overflow ( current_cpu
, 4 );
22005 if ( LTDI ( tmp_tmp
, - 32768 )) {
22008 UHI opval
= - 32768 ;
22009 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22010 written
|= ( 1 << 19 );
22011 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22013 frvbf_media_overflow ( current_cpu
, 4 );
22017 UHI opval
= tmp_tmp
;
22018 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22019 written
|= ( 1 << 19 );
22020 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22026 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22027 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22028 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22029 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22033 tmp_tmp
= ADDDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
22034 if ( GTDI ( tmp_tmp
, 32767 )) {
22038 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22039 written
|= ( 1 << 18 );
22040 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22042 frvbf_media_overflow ( current_cpu
, 2 );
22045 if ( LTDI ( tmp_tmp
, - 32768 )) {
22048 UHI opval
= - 32768 ;
22049 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22050 written
|= ( 1 << 18 );
22051 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22053 frvbf_media_overflow ( current_cpu
, 2 );
22057 UHI opval
= tmp_tmp
;
22058 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22059 written
|= ( 1 << 18 );
22060 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22067 tmp_tmp
= ADDDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
22068 if ( GTDI ( tmp_tmp
, 32767 )) {
22072 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22073 written
|= ( 1 << 20 );
22074 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22076 frvbf_media_overflow ( current_cpu
, 1 );
22079 if ( LTDI ( tmp_tmp
, - 32768 )) {
22082 UHI opval
= - 32768 ;
22083 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22084 written
|= ( 1 << 20 );
22085 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22087 frvbf_media_overflow ( current_cpu
, 1 );
22091 UHI opval
= tmp_tmp
;
22092 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22093 written
|= ( 1 << 20 );
22094 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22103 abuf
-> written
= written
;
22108 /* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22111 SEM_FN_NAME ( frvbf
, cmqaddhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22113 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22114 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22115 int UNUSED written
= 0 ;
22116 IADDR UNUSED pc
= abuf
-> addr
;
22117 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22119 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
22120 frvbf_media_register_not_aligned ( current_cpu
);
22122 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
22129 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
22130 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
22131 written
|= ( 1 << 16 );
22132 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22135 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22136 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22137 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22138 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22142 tmp_tmp
= ADDDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
22143 if ( GTDI ( tmp_tmp
, 65535 )) {
22147 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22148 written
|= ( 1 << 17 );
22149 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22151 frvbf_media_overflow ( current_cpu
, 8 );
22154 if ( LTDI ( tmp_tmp
, 0 )) {
22158 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22159 written
|= ( 1 << 17 );
22160 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22162 frvbf_media_overflow ( current_cpu
, 8 );
22166 UHI opval
= tmp_tmp
;
22167 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22168 written
|= ( 1 << 17 );
22169 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22176 tmp_tmp
= ADDDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
22177 if ( GTDI ( tmp_tmp
, 65535 )) {
22181 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22182 written
|= ( 1 << 19 );
22183 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22185 frvbf_media_overflow ( current_cpu
, 4 );
22188 if ( LTDI ( tmp_tmp
, 0 )) {
22192 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22193 written
|= ( 1 << 19 );
22194 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22196 frvbf_media_overflow ( current_cpu
, 4 );
22200 UHI opval
= tmp_tmp
;
22201 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22202 written
|= ( 1 << 19 );
22203 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22209 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22210 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22211 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22212 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22216 tmp_tmp
= ADDDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
22217 if ( GTDI ( tmp_tmp
, 65535 )) {
22221 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22222 written
|= ( 1 << 18 );
22223 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22225 frvbf_media_overflow ( current_cpu
, 2 );
22228 if ( LTDI ( tmp_tmp
, 0 )) {
22232 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22233 written
|= ( 1 << 18 );
22234 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22236 frvbf_media_overflow ( current_cpu
, 2 );
22240 UHI opval
= tmp_tmp
;
22241 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22242 written
|= ( 1 << 18 );
22243 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22250 tmp_tmp
= ADDDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
22251 if ( GTDI ( tmp_tmp
, 65535 )) {
22255 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22256 written
|= ( 1 << 20 );
22257 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22259 frvbf_media_overflow ( current_cpu
, 1 );
22262 if ( LTDI ( tmp_tmp
, 0 )) {
22266 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22267 written
|= ( 1 << 20 );
22268 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22270 frvbf_media_overflow ( current_cpu
, 1 );
22274 UHI opval
= tmp_tmp
;
22275 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22276 written
|= ( 1 << 20 );
22277 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22286 abuf
-> written
= written
;
22291 /* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22294 SEM_FN_NAME ( frvbf
, cmqsubhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22296 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22297 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22298 int UNUSED written
= 0 ;
22299 IADDR UNUSED pc
= abuf
-> addr
;
22300 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22302 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
22303 frvbf_media_register_not_aligned ( current_cpu
);
22305 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
22312 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
22313 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
22314 written
|= ( 1 << 16 );
22315 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22318 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22319 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22320 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22321 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22325 tmp_tmp
= SUBDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
22326 if ( GTDI ( tmp_tmp
, 32767 )) {
22330 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22331 written
|= ( 1 << 17 );
22332 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22334 frvbf_media_overflow ( current_cpu
, 8 );
22337 if ( LTDI ( tmp_tmp
, - 32768 )) {
22340 UHI opval
= - 32768 ;
22341 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22342 written
|= ( 1 << 17 );
22343 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22345 frvbf_media_overflow ( current_cpu
, 8 );
22349 UHI opval
= tmp_tmp
;
22350 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22351 written
|= ( 1 << 17 );
22352 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22359 tmp_tmp
= SUBDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
22360 if ( GTDI ( tmp_tmp
, 32767 )) {
22364 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22365 written
|= ( 1 << 19 );
22366 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22368 frvbf_media_overflow ( current_cpu
, 4 );
22371 if ( LTDI ( tmp_tmp
, - 32768 )) {
22374 UHI opval
= - 32768 ;
22375 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22376 written
|= ( 1 << 19 );
22377 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22379 frvbf_media_overflow ( current_cpu
, 4 );
22383 UHI opval
= tmp_tmp
;
22384 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22385 written
|= ( 1 << 19 );
22386 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22392 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22393 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22394 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22395 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22399 tmp_tmp
= SUBDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
22400 if ( GTDI ( tmp_tmp
, 32767 )) {
22404 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22405 written
|= ( 1 << 18 );
22406 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22408 frvbf_media_overflow ( current_cpu
, 2 );
22411 if ( LTDI ( tmp_tmp
, - 32768 )) {
22414 UHI opval
= - 32768 ;
22415 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22416 written
|= ( 1 << 18 );
22417 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22419 frvbf_media_overflow ( current_cpu
, 2 );
22423 UHI opval
= tmp_tmp
;
22424 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22425 written
|= ( 1 << 18 );
22426 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22433 tmp_tmp
= SUBDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
22434 if ( GTDI ( tmp_tmp
, 32767 )) {
22438 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22439 written
|= ( 1 << 20 );
22440 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22442 frvbf_media_overflow ( current_cpu
, 1 );
22445 if ( LTDI ( tmp_tmp
, - 32768 )) {
22448 UHI opval
= - 32768 ;
22449 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22450 written
|= ( 1 << 20 );
22451 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22453 frvbf_media_overflow ( current_cpu
, 1 );
22457 UHI opval
= tmp_tmp
;
22458 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22459 written
|= ( 1 << 20 );
22460 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22469 abuf
-> written
= written
;
22474 /* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22477 SEM_FN_NAME ( frvbf
, cmqsubhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22479 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22480 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22481 int UNUSED written
= 0 ;
22482 IADDR UNUSED pc
= abuf
-> addr
;
22483 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22485 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
22486 frvbf_media_register_not_aligned ( current_cpu
);
22488 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
22495 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
22496 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
22497 written
|= ( 1 << 16 );
22498 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22501 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22502 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22503 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22504 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22508 tmp_tmp
= SUBDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
22509 if ( GTDI ( tmp_tmp
, 65535 )) {
22513 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22514 written
|= ( 1 << 17 );
22515 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22517 frvbf_media_overflow ( current_cpu
, 8 );
22520 if ( LTDI ( tmp_tmp
, 0 )) {
22524 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22525 written
|= ( 1 << 17 );
22526 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22528 frvbf_media_overflow ( current_cpu
, 8 );
22532 UHI opval
= tmp_tmp
;
22533 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22534 written
|= ( 1 << 17 );
22535 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22542 tmp_tmp
= SUBDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
22543 if ( GTDI ( tmp_tmp
, 65535 )) {
22547 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22548 written
|= ( 1 << 19 );
22549 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22551 frvbf_media_overflow ( current_cpu
, 4 );
22554 if ( LTDI ( tmp_tmp
, 0 )) {
22558 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22559 written
|= ( 1 << 19 );
22560 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22562 frvbf_media_overflow ( current_cpu
, 4 );
22566 UHI opval
= tmp_tmp
;
22567 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22568 written
|= ( 1 << 19 );
22569 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22575 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22576 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22577 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22578 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22582 tmp_tmp
= SUBDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
22583 if ( GTDI ( tmp_tmp
, 65535 )) {
22587 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22588 written
|= ( 1 << 18 );
22589 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22591 frvbf_media_overflow ( current_cpu
, 2 );
22594 if ( LTDI ( tmp_tmp
, 0 )) {
22598 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22599 written
|= ( 1 << 18 );
22600 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22602 frvbf_media_overflow ( current_cpu
, 2 );
22606 UHI opval
= tmp_tmp
;
22607 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22608 written
|= ( 1 << 18 );
22609 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22616 tmp_tmp
= SUBDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
22617 if ( GTDI ( tmp_tmp
, 65535 )) {
22621 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22622 written
|= ( 1 << 20 );
22623 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22625 frvbf_media_overflow ( current_cpu
, 1 );
22628 if ( LTDI ( tmp_tmp
, 0 )) {
22632 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22633 written
|= ( 1 << 20 );
22634 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22636 frvbf_media_overflow ( current_cpu
, 1 );
22640 UHI opval
= tmp_tmp
;
22641 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22642 written
|= ( 1 << 20 );
22643 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22652 abuf
-> written
= written
;
22657 /* mqlclrhs: mqlclrhs$pack $FRintieven,$FRintjeven,$FRintkeven */
22660 SEM_FN_NAME ( frvbf
, mqlclrhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22662 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22663 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22664 int UNUSED written
= 0 ;
22665 IADDR UNUSED pc
= abuf
-> addr
;
22666 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22668 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
22669 frvbf_media_register_not_aligned ( current_cpu
);
22681 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
22682 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
22683 written
|= ( 1 << 14 );
22684 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22687 tmp_a1
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22688 tmp_a2
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22689 tmp_b1
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22690 tmp_b2
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22693 tmp_a3
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22694 tmp_a4
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22695 tmp_b3
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22696 tmp_b4
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22699 UHI opval
= ( LEUHI ( ABSHI ( tmp_a1
), ABSHI ( tmp_b1
))) ? ( 0 ) : ( LEHI ( 0 , tmp_b1
)) ? ( tmp_a1
) : ( EQHI ( tmp_a1
, - 32768 )) ? ( 32767 ) : ( NEGHI ( tmp_a1
));
22700 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22701 written
|= ( 1 << 15 );
22702 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22705 UHI opval
= ( LEUHI ( ABSHI ( tmp_a2
), ABSHI ( tmp_b2
))) ? ( 0 ) : ( LEHI ( 0 , tmp_b2
)) ? ( tmp_a2
) : ( EQHI ( tmp_a2
, - 32768 )) ? ( 32767 ) : ( NEGHI ( tmp_a2
));
22706 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22707 written
|= ( 1 << 17 );
22708 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22711 UHI opval
= ( LEUHI ( ABSHI ( tmp_a3
), ABSHI ( tmp_b3
))) ? ( 0 ) : ( LEHI ( 0 , tmp_b3
)) ? ( tmp_a3
) : ( EQHI ( tmp_a3
, - 32768 )) ? ( 32767 ) : ( NEGHI ( tmp_a3
));
22712 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22713 written
|= ( 1 << 16 );
22714 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22717 UHI opval
= ( LEUHI ( ABSHI ( tmp_a4
), ABSHI ( tmp_b4
))) ? ( 0 ) : ( LEHI ( 0 , tmp_b4
)) ? ( tmp_a4
) : ( EQHI ( tmp_a4
, - 32768 )) ? ( 32767 ) : ( NEGHI ( tmp_a4
));
22718 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22719 written
|= ( 1 << 18 );
22720 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22725 abuf
-> written
= written
;
22730 /* mqlmths: mqlmths$pack $FRintieven,$FRintjeven,$FRintkeven */
22733 SEM_FN_NAME ( frvbf
, mqlmths
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22735 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22736 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22737 int UNUSED written
= 0 ;
22738 IADDR UNUSED pc
= abuf
-> addr
;
22739 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22741 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
22742 frvbf_media_register_not_aligned ( current_cpu
);
22754 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
22755 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
22756 written
|= ( 1 << 14 );
22757 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22760 tmp_a1
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22761 tmp_a2
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22762 tmp_b1
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22763 tmp_b2
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22766 tmp_a3
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22767 tmp_a4
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22768 tmp_b3
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22769 tmp_b4
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22772 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
));
22773 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22774 written
|= ( 1 << 15 );
22775 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22778 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
));
22779 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22780 written
|= ( 1 << 17 );
22781 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22784 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
));
22785 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22786 written
|= ( 1 << 16 );
22787 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22790 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
));
22791 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22792 written
|= ( 1 << 18 );
22793 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22798 abuf
-> written
= written
;
22803 /* mqsllhi: mqsllhi$pack $FRintieven,$u6,$FRintkeven */
22806 SEM_FN_NAME ( frvbf
, mqsllhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22808 #define FLD(f) abuf->fields.sfmt_mqsllhi.f
22809 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22810 int UNUSED written
= 0 ;
22811 IADDR UNUSED pc
= abuf
-> addr
;
22812 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22814 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 )))) {
22815 frvbf_media_register_not_aligned ( current_cpu
);
22819 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
22820 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
22821 written
|= ( 1 << 9 );
22822 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22825 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
22826 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
22827 written
|= ( 1 << 10 );
22828 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22831 UHI opval
= SLLHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), ANDSI ( FLD ( f_u6
), 15 ));
22832 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22833 written
|= ( 1 << 11 );
22834 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22837 UHI opval
= SLLHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), ANDSI ( FLD ( f_u6
), 15 ));
22838 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22839 written
|= ( 1 << 13 );
22840 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22843 UHI opval
= SLLHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), ANDSI ( FLD ( f_u6
), 15 ));
22844 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22845 written
|= ( 1 << 12 );
22846 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22849 UHI opval
= SLLHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), ANDSI ( FLD ( f_u6
), 15 ));
22850 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22851 written
|= ( 1 << 14 );
22852 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22857 abuf
-> written
= written
;
22862 /* mqsrahi: mqsrahi$pack $FRintieven,$u6,$FRintkeven */
22865 SEM_FN_NAME ( frvbf
, mqsrahi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22867 #define FLD(f) abuf->fields.sfmt_mqsllhi.f
22868 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22869 int UNUSED written
= 0 ;
22870 IADDR UNUSED pc
= abuf
-> addr
;
22871 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22873 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 )))) {
22874 frvbf_media_register_not_aligned ( current_cpu
);
22878 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
22879 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
22880 written
|= ( 1 << 9 );
22881 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22884 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
22885 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
22886 written
|= ( 1 << 10 );
22887 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22890 UHI opval
= SRAHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), ANDSI ( FLD ( f_u6
), 15 ));
22891 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22892 written
|= ( 1 << 11 );
22893 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22896 UHI opval
= SRAHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), ANDSI ( FLD ( f_u6
), 15 ));
22897 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
22898 written
|= ( 1 << 13 );
22899 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22902 UHI opval
= SRAHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), ANDSI ( FLD ( f_u6
), 15 ));
22903 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22904 written
|= ( 1 << 12 );
22905 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22908 UHI opval
= SRAHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), ANDSI ( FLD ( f_u6
), 15 ));
22909 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
22910 written
|= ( 1 << 14 );
22911 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22916 abuf
-> written
= written
;
22921 /* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22924 SEM_FN_NAME ( frvbf
, maddaccs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22926 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22927 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22928 int UNUSED written
= 0 ;
22929 IADDR UNUSED pc
= abuf
-> addr
;
22930 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22932 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Si
))) {
22933 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
22934 if ( ANDSI ( FLD ( f_ACC40Si
), SUBSI ( 2 , 1 ))) {
22935 frvbf_media_acc_not_aligned ( current_cpu
);
22939 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Si
), 1 )));
22940 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
22943 DI opval
= MAKEDI ( 127 , 0xffffffff );
22944 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
22945 written
|= ( 1 << 4 );
22946 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
22948 frvbf_media_overflow ( current_cpu
, 8 );
22951 if ( LTDI ( tmp_tmp
, INVDI ( MAKEDI ( 127 , 0xffffffff )))) {
22954 DI opval
= INVDI ( MAKEDI ( 127 , 0xffffffff ));
22955 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
22956 written
|= ( 1 << 4 );
22957 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
22959 frvbf_media_overflow ( current_cpu
, 8 );
22963 DI opval
= tmp_tmp
;
22964 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
22965 written
|= ( 1 << 4 );
22966 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
22975 abuf
-> written
= written
;
22980 /* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22983 SEM_FN_NAME ( frvbf
, msubaccs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22985 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22986 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22987 int UNUSED written
= 0 ;
22988 IADDR UNUSED pc
= abuf
-> addr
;
22989 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22991 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Si
))) {
22992 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
22993 if ( ANDSI ( FLD ( f_ACC40Si
), SUBSI ( 2 , 1 ))) {
22994 frvbf_media_acc_not_aligned ( current_cpu
);
22998 tmp_tmp
= SUBDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Si
), 1 )));
22999 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
23002 DI opval
= MAKEDI ( 127 , 0xffffffff );
23003 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23004 written
|= ( 1 << 4 );
23005 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23007 frvbf_media_overflow ( current_cpu
, 8 );
23010 if ( LTDI ( tmp_tmp
, INVDI ( MAKEDI ( 127 , 0xffffffff )))) {
23013 DI opval
= INVDI ( MAKEDI ( 127 , 0xffffffff ));
23014 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23015 written
|= ( 1 << 4 );
23016 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23018 frvbf_media_overflow ( current_cpu
, 8 );
23022 DI opval
= tmp_tmp
;
23023 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23024 written
|= ( 1 << 4 );
23025 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23034 abuf
-> written
= written
;
23039 /* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
23042 SEM_FN_NAME ( frvbf
, mdaddaccs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23044 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23045 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23046 int UNUSED written
= 0 ;
23047 IADDR UNUSED pc
= abuf
-> addr
;
23048 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23050 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Si
))) {
23051 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23052 if ( ANDSI ( FLD ( f_ACC40Si
), SUBSI ( 4 , 1 ))) {
23053 frvbf_media_acc_not_aligned ( current_cpu
);
23055 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23056 frvbf_media_acc_not_aligned ( current_cpu
);
23061 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Si
), 1 )));
23062 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
23065 DI opval
= MAKEDI ( 127 , 0xffffffff );
23066 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23067 written
|= ( 1 << 6 );
23068 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23070 frvbf_media_overflow ( current_cpu
, 8 );
23073 if ( LTDI ( tmp_tmp
, INVDI ( MAKEDI ( 127 , 0xffffffff )))) {
23076 DI opval
= INVDI ( MAKEDI ( 127 , 0xffffffff ));
23077 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23078 written
|= ( 1 << 6 );
23079 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23081 frvbf_media_overflow ( current_cpu
, 8 );
23085 DI opval
= tmp_tmp
;
23086 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23087 written
|= ( 1 << 6 );
23088 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23095 tmp_tmp
= ADDDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Si
), 2 )), GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Si
), 3 )));
23096 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
23099 DI opval
= MAKEDI ( 127 , 0xffffffff );
23100 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
23101 written
|= ( 1 << 7 );
23102 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23104 frvbf_media_overflow ( current_cpu
, 4 );
23107 if ( LTDI ( tmp_tmp
, INVDI ( MAKEDI ( 127 , 0xffffffff )))) {
23110 DI opval
= INVDI ( MAKEDI ( 127 , 0xffffffff ));
23111 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
23112 written
|= ( 1 << 7 );
23113 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23115 frvbf_media_overflow ( current_cpu
, 4 );
23119 DI opval
= tmp_tmp
;
23120 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
23121 written
|= ( 1 << 7 );
23122 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23133 abuf
-> written
= written
;
23138 /* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
23141 SEM_FN_NAME ( frvbf
, mdsubaccs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23143 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23144 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23145 int UNUSED written
= 0 ;
23146 IADDR UNUSED pc
= abuf
-> addr
;
23147 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23149 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Si
))) {
23150 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23151 if ( ANDSI ( FLD ( f_ACC40Si
), SUBSI ( 4 , 1 ))) {
23152 frvbf_media_acc_not_aligned ( current_cpu
);
23154 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23155 frvbf_media_acc_not_aligned ( current_cpu
);
23160 tmp_tmp
= SUBDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Si
), 1 )));
23161 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
23164 DI opval
= MAKEDI ( 127 , 0xffffffff );
23165 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23166 written
|= ( 1 << 6 );
23167 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23169 frvbf_media_overflow ( current_cpu
, 8 );
23172 if ( LTDI ( tmp_tmp
, INVDI ( MAKEDI ( 127 , 0xffffffff )))) {
23175 DI opval
= INVDI ( MAKEDI ( 127 , 0xffffffff ));
23176 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23177 written
|= ( 1 << 6 );
23178 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23180 frvbf_media_overflow ( current_cpu
, 8 );
23184 DI opval
= tmp_tmp
;
23185 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23186 written
|= ( 1 << 6 );
23187 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23194 tmp_tmp
= SUBDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Si
), 2 )), GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Si
), 3 )));
23195 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
23198 DI opval
= MAKEDI ( 127 , 0xffffffff );
23199 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
23200 written
|= ( 1 << 7 );
23201 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23203 frvbf_media_overflow ( current_cpu
, 4 );
23206 if ( LTDI ( tmp_tmp
, INVDI ( MAKEDI ( 127 , 0xffffffff )))) {
23209 DI opval
= INVDI ( MAKEDI ( 127 , 0xffffffff ));
23210 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
23211 written
|= ( 1 << 7 );
23212 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23214 frvbf_media_overflow ( current_cpu
, 4 );
23218 DI opval
= tmp_tmp
;
23219 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
23220 written
|= ( 1 << 7 );
23221 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23232 abuf
-> written
= written
;
23237 /* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
23240 SEM_FN_NAME ( frvbf
, masaccs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23242 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23243 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23244 int UNUSED written
= 0 ;
23245 IADDR UNUSED pc
= abuf
-> addr
;
23246 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23248 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Si
))) {
23249 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23250 if ( ANDSI ( FLD ( f_ACC40Si
), SUBSI ( 2 , 1 ))) {
23251 frvbf_media_acc_not_aligned ( current_cpu
);
23253 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23254 frvbf_media_acc_not_aligned ( current_cpu
);
23259 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Si
), 1 )));
23260 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
23263 DI opval
= MAKEDI ( 127 , 0xffffffff );
23264 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23265 written
|= ( 1 << 4 );
23266 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23268 frvbf_media_overflow ( current_cpu
, 8 );
23271 if ( LTDI ( tmp_tmp
, INVDI ( MAKEDI ( 127 , 0xffffffff )))) {
23274 DI opval
= INVDI ( MAKEDI ( 127 , 0xffffffff ));
23275 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23276 written
|= ( 1 << 4 );
23277 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23279 frvbf_media_overflow ( current_cpu
, 8 );
23283 DI opval
= tmp_tmp
;
23284 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23285 written
|= ( 1 << 4 );
23286 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23293 tmp_tmp
= SUBDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Si
), 1 )));
23294 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
23297 DI opval
= MAKEDI ( 127 , 0xffffffff );
23298 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
23299 written
|= ( 1 << 5 );
23300 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23302 frvbf_media_overflow ( current_cpu
, 4 );
23305 if ( LTDI ( tmp_tmp
, INVDI ( MAKEDI ( 127 , 0xffffffff )))) {
23308 DI opval
= INVDI ( MAKEDI ( 127 , 0xffffffff ));
23309 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
23310 written
|= ( 1 << 5 );
23311 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23313 frvbf_media_overflow ( current_cpu
, 4 );
23317 DI opval
= tmp_tmp
;
23318 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
23319 written
|= ( 1 << 5 );
23320 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23331 abuf
-> written
= written
;
23336 /* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23339 SEM_FN_NAME ( frvbf
, mdasaccs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23341 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23342 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23343 int UNUSED written
= 0 ;
23344 IADDR UNUSED pc
= abuf
-> addr
;
23345 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23347 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Si
))) {
23348 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23349 if ( ANDSI ( FLD ( f_ACC40Si
), SUBSI ( 4 , 1 ))) {
23350 frvbf_media_acc_not_aligned ( current_cpu
);
23352 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
23353 frvbf_media_acc_not_aligned ( current_cpu
);
23358 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Si
), 1 )));
23359 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
23362 DI opval
= MAKEDI ( 127 , 0xffffffff );
23363 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23364 written
|= ( 1 << 6 );
23365 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23367 frvbf_media_overflow ( current_cpu
, 8 );
23370 if ( LTDI ( tmp_tmp
, INVDI ( MAKEDI ( 127 , 0xffffffff )))) {
23373 DI opval
= INVDI ( MAKEDI ( 127 , 0xffffffff ));
23374 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23375 written
|= ( 1 << 6 );
23376 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23378 frvbf_media_overflow ( current_cpu
, 8 );
23382 DI opval
= tmp_tmp
;
23383 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23384 written
|= ( 1 << 6 );
23385 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23392 tmp_tmp
= SUBDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Si
), 1 )));
23393 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
23396 DI opval
= MAKEDI ( 127 , 0xffffffff );
23397 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
23398 written
|= ( 1 << 7 );
23399 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23401 frvbf_media_overflow ( current_cpu
, 4 );
23404 if ( LTDI ( tmp_tmp
, INVDI ( MAKEDI ( 127 , 0xffffffff )))) {
23407 DI opval
= INVDI ( MAKEDI ( 127 , 0xffffffff ));
23408 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
23409 written
|= ( 1 << 7 );
23410 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23412 frvbf_media_overflow ( current_cpu
, 4 );
23416 DI opval
= tmp_tmp
;
23417 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
23418 written
|= ( 1 << 7 );
23419 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23426 tmp_tmp
= ADDDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Si
), 2 )), GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Si
), 3 )));
23427 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
23430 DI opval
= MAKEDI ( 127 , 0xffffffff );
23431 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
23432 written
|= ( 1 << 8 );
23433 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23435 frvbf_media_overflow ( current_cpu
, 2 );
23438 if ( LTDI ( tmp_tmp
, INVDI ( MAKEDI ( 127 , 0xffffffff )))) {
23441 DI opval
= INVDI ( MAKEDI ( 127 , 0xffffffff ));
23442 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
23443 written
|= ( 1 << 8 );
23444 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23446 frvbf_media_overflow ( current_cpu
, 2 );
23450 DI opval
= tmp_tmp
;
23451 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
23452 written
|= ( 1 << 8 );
23453 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23460 tmp_tmp
= SUBDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Si
), 2 )), GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Si
), 3 )));
23461 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
23464 DI opval
= MAKEDI ( 127 , 0xffffffff );
23465 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
23466 written
|= ( 1 << 9 );
23467 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23469 frvbf_media_overflow ( current_cpu
, 1 );
23472 if ( LTDI ( tmp_tmp
, INVDI ( MAKEDI ( 127 , 0xffffffff )))) {
23475 DI opval
= INVDI ( MAKEDI ( 127 , 0xffffffff ));
23476 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
23477 written
|= ( 1 << 9 );
23478 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23480 frvbf_media_overflow ( current_cpu
, 1 );
23484 DI opval
= tmp_tmp
;
23485 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
23486 written
|= ( 1 << 9 );
23487 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23498 abuf
-> written
= written
;
23503 /* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23506 SEM_FN_NAME ( frvbf
, mmulhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23508 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23509 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23510 int UNUSED written
= 0 ;
23511 IADDR UNUSED pc
= abuf
-> addr
;
23512 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23514 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23515 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23516 frvbf_media_acc_not_aligned ( current_cpu
);
23524 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23525 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23526 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23527 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23530 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
23531 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23532 written
|= ( 1 << 9 );
23533 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23536 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
23537 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
23538 written
|= ( 1 << 10 );
23539 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23545 abuf
-> written
= written
;
23550 /* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23553 SEM_FN_NAME ( frvbf
, mmulhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23555 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23556 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23557 int UNUSED written
= 0 ;
23558 IADDR UNUSED pc
= abuf
-> addr
;
23559 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23561 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23562 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23563 frvbf_media_acc_not_aligned ( current_cpu
);
23571 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23572 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23573 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23574 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23577 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
23578 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23579 written
|= ( 1 << 9 );
23580 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23583 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
23584 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
23585 written
|= ( 1 << 10 );
23586 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23592 abuf
-> written
= written
;
23597 /* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23600 SEM_FN_NAME ( frvbf
, mmulxhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23602 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23603 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23604 int UNUSED written
= 0 ;
23605 IADDR UNUSED pc
= abuf
-> addr
;
23606 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23608 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23609 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23610 frvbf_media_acc_not_aligned ( current_cpu
);
23618 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23619 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23620 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23621 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23624 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
));
23625 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23626 written
|= ( 1 << 9 );
23627 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23630 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
));
23631 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
23632 written
|= ( 1 << 10 );
23633 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23639 abuf
-> written
= written
;
23644 /* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23647 SEM_FN_NAME ( frvbf
, mmulxhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23649 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23650 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23651 int UNUSED written
= 0 ;
23652 IADDR UNUSED pc
= abuf
-> addr
;
23653 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23655 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23656 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23657 frvbf_media_acc_not_aligned ( current_cpu
);
23665 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23666 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23667 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23668 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23671 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjlo
));
23672 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23673 written
|= ( 1 << 9 );
23674 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23677 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjhi
));
23678 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
23679 written
|= ( 1 << 10 );
23680 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23686 abuf
-> written
= written
;
23691 /* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23694 SEM_FN_NAME ( frvbf
, cmmulhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23696 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23697 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23698 int UNUSED written
= 0 ;
23699 IADDR UNUSED pc
= abuf
-> addr
;
23700 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23702 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23703 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23704 frvbf_media_acc_not_aligned ( current_cpu
);
23706 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
23713 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23714 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23715 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23716 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23719 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
23720 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23721 written
|= ( 1 << 11 );
23722 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23725 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
23726 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
23727 written
|= ( 1 << 12 );
23728 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23735 abuf
-> written
= written
;
23740 /* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23743 SEM_FN_NAME ( frvbf
, cmmulhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23745 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23746 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23747 int UNUSED written
= 0 ;
23748 IADDR UNUSED pc
= abuf
-> addr
;
23749 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23751 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23752 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23753 frvbf_media_acc_not_aligned ( current_cpu
);
23755 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
23762 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23763 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23764 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23765 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23768 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
23769 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23770 written
|= ( 1 << 11 );
23771 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23774 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
23775 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
23776 written
|= ( 1 << 12 );
23777 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23784 abuf
-> written
= written
;
23789 /* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23792 SEM_FN_NAME ( frvbf
, mqmulhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23794 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23795 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23796 int UNUSED written
= 0 ;
23797 IADDR UNUSED pc
= abuf
-> addr
;
23798 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23800 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23801 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
23802 frvbf_media_acc_not_aligned ( current_cpu
);
23804 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
23805 frvbf_media_register_not_aligned ( current_cpu
);
23813 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23814 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23815 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23816 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23819 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
23820 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23821 written
|= ( 1 << 13 );
23822 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23825 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
23826 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
23827 written
|= ( 1 << 14 );
23828 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23831 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23832 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23833 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23834 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23837 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
23838 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
23839 written
|= ( 1 << 15 );
23840 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23843 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
23844 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
23845 written
|= ( 1 << 16 );
23846 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23853 abuf
-> written
= written
;
23858 /* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23861 SEM_FN_NAME ( frvbf
, mqmulhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23863 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23864 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23865 int UNUSED written
= 0 ;
23866 IADDR UNUSED pc
= abuf
-> addr
;
23867 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23869 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23870 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
23871 frvbf_media_acc_not_aligned ( current_cpu
);
23873 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
23874 frvbf_media_register_not_aligned ( current_cpu
);
23882 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23883 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23884 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23885 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23888 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
23889 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23890 written
|= ( 1 << 13 );
23891 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23894 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
23895 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
23896 written
|= ( 1 << 14 );
23897 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23900 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23901 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23902 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23903 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23906 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
23907 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
23908 written
|= ( 1 << 15 );
23909 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23912 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
23913 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
23914 written
|= ( 1 << 16 );
23915 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23922 abuf
-> written
= written
;
23927 /* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23930 SEM_FN_NAME ( frvbf
, mqmulxhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23932 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23933 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23934 int UNUSED written
= 0 ;
23935 IADDR UNUSED pc
= abuf
-> addr
;
23936 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23938 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23939 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
23940 frvbf_media_acc_not_aligned ( current_cpu
);
23942 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
23943 frvbf_media_register_not_aligned ( current_cpu
);
23951 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23952 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23953 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23954 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23957 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
));
23958 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23959 written
|= ( 1 << 13 );
23960 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23963 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
));
23964 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
23965 written
|= ( 1 << 14 );
23966 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23969 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23970 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23971 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23972 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23975 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
));
23976 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
23977 written
|= ( 1 << 15 );
23978 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23981 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
));
23982 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
23983 written
|= ( 1 << 16 );
23984 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23991 abuf
-> written
= written
;
23996 /* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23999 SEM_FN_NAME ( frvbf
, mqmulxhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24001 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24002 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24003 int UNUSED written
= 0 ;
24004 IADDR UNUSED pc
= abuf
-> addr
;
24005 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24007 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
24008 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
24009 frvbf_media_acc_not_aligned ( current_cpu
);
24011 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
24012 frvbf_media_register_not_aligned ( current_cpu
);
24020 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24021 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24022 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24023 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24026 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjlo
));
24027 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24028 written
|= ( 1 << 13 );
24029 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24032 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjhi
));
24033 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
24034 written
|= ( 1 << 14 );
24035 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24038 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24039 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24040 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24041 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24044 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjlo
));
24045 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
24046 written
|= ( 1 << 15 );
24047 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24050 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjhi
));
24051 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
24052 written
|= ( 1 << 16 );
24053 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24060 abuf
-> written
= written
;
24065 /* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24068 SEM_FN_NAME ( frvbf
, cmqmulhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24070 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24071 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24072 int UNUSED written
= 0 ;
24073 IADDR UNUSED pc
= abuf
-> addr
;
24074 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24076 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
24077 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
24078 frvbf_media_acc_not_aligned ( current_cpu
);
24080 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
24081 frvbf_media_register_not_aligned ( current_cpu
);
24083 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
24090 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24091 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24092 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24093 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24096 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
24097 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24098 written
|= ( 1 << 15 );
24099 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24102 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
24103 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
24104 written
|= ( 1 << 16 );
24105 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24108 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24109 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24110 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24111 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24114 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
24115 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
24116 written
|= ( 1 << 17 );
24117 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24120 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
24121 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
24122 written
|= ( 1 << 18 );
24123 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24131 abuf
-> written
= written
;
24136 /* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24139 SEM_FN_NAME ( frvbf
, cmqmulhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24141 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24142 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24143 int UNUSED written
= 0 ;
24144 IADDR UNUSED pc
= abuf
-> addr
;
24145 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24147 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
24148 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
24149 frvbf_media_acc_not_aligned ( current_cpu
);
24151 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
24152 frvbf_media_register_not_aligned ( current_cpu
);
24154 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
24161 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24162 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24163 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24164 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24167 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
24168 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24169 written
|= ( 1 << 15 );
24170 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24173 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
24174 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
24175 written
|= ( 1 << 16 );
24176 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24179 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24180 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24181 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24182 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24185 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
24186 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
24187 written
|= ( 1 << 17 );
24188 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24191 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
24192 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
24193 written
|= ( 1 << 18 );
24194 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24202 abuf
-> written
= written
;
24207 /* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
24210 SEM_FN_NAME ( frvbf
, mmachs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24212 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24213 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24214 int UNUSED written
= 0 ;
24215 IADDR UNUSED pc
= abuf
-> addr
;
24216 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24218 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
24219 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
24220 frvbf_media_acc_not_aligned ( current_cpu
);
24228 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24229 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24230 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24231 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24235 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
24236 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24239 DI opval
= MAKEDI ( 127 , 0xffffffff );
24240 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24241 written
|= ( 1 << 11 );
24242 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24244 frvbf_media_overflow ( current_cpu
, 8 );
24247 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24250 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24251 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24252 written
|= ( 1 << 11 );
24253 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24255 frvbf_media_overflow ( current_cpu
, 8 );
24259 DI opval
= tmp_tmp
;
24260 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24261 written
|= ( 1 << 11 );
24262 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24269 tmp_tmp
= ADDDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Sk
), 1 )), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
24270 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24273 DI opval
= MAKEDI ( 127 , 0xffffffff );
24274 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
24275 written
|= ( 1 << 12 );
24276 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24278 frvbf_media_overflow ( current_cpu
, 4 );
24281 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24284 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24285 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
24286 written
|= ( 1 << 12 );
24287 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24289 frvbf_media_overflow ( current_cpu
, 4 );
24293 DI opval
= tmp_tmp
;
24294 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
24295 written
|= ( 1 << 12 );
24296 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24305 abuf
-> written
= written
;
24310 /* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24313 SEM_FN_NAME ( frvbf
, mmachu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24315 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24316 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24317 int UNUSED written
= 0 ;
24318 IADDR UNUSED pc
= abuf
-> addr
;
24319 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24321 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Uk
))) {
24322 if ( ANDSI ( FLD ( f_ACC40Uk
), SUBSI ( 2 , 1 ))) {
24323 frvbf_media_acc_not_aligned ( current_cpu
);
24331 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24332 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24333 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24334 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24338 tmp_tmp
= ADDDI ( GET_H_ACC40U ( FLD ( f_ACC40Uk
)), MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
)));
24339 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
24342 UDI opval
= MAKEDI ( 255 , 0xffffffff );
24343 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24344 written
|= ( 1 << 11 );
24345 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24347 frvbf_media_overflow ( current_cpu
, 8 );
24350 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
24353 UDI opval
= MAKEDI ( 0 , 0 );
24354 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24355 written
|= ( 1 << 11 );
24356 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24358 frvbf_media_overflow ( current_cpu
, 8 );
24362 UDI opval
= tmp_tmp
;
24363 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24364 written
|= ( 1 << 11 );
24365 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24372 tmp_tmp
= ADDDI ( GET_H_ACC40U ( ADDSI ( FLD ( f_ACC40Uk
), 1 )), MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
)));
24373 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
24376 UDI opval
= MAKEDI ( 255 , 0xffffffff );
24377 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 1 ), opval
);
24378 written
|= ( 1 << 12 );
24379 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24381 frvbf_media_overflow ( current_cpu
, 4 );
24384 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
24387 UDI opval
= MAKEDI ( 0 , 0 );
24388 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 1 ), opval
);
24389 written
|= ( 1 << 12 );
24390 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24392 frvbf_media_overflow ( current_cpu
, 4 );
24396 UDI opval
= tmp_tmp
;
24397 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 1 ), opval
);
24398 written
|= ( 1 << 12 );
24399 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24408 abuf
-> written
= written
;
24413 /* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24416 SEM_FN_NAME ( frvbf
, mmrdhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24418 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24419 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24420 int UNUSED written
= 0 ;
24421 IADDR UNUSED pc
= abuf
-> addr
;
24422 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24424 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
24425 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
24426 frvbf_media_acc_not_aligned ( current_cpu
);
24434 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24435 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24436 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24437 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24441 tmp_tmp
= SUBDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
24442 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24445 DI opval
= MAKEDI ( 127 , 0xffffffff );
24446 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24447 written
|= ( 1 << 11 );
24448 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24450 frvbf_media_overflow ( current_cpu
, 8 );
24453 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24456 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24457 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24458 written
|= ( 1 << 11 );
24459 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24461 frvbf_media_overflow ( current_cpu
, 8 );
24465 DI opval
= tmp_tmp
;
24466 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24467 written
|= ( 1 << 11 );
24468 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24475 tmp_tmp
= SUBDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Sk
), 1 )), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
24476 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24479 DI opval
= MAKEDI ( 127 , 0xffffffff );
24480 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
24481 written
|= ( 1 << 12 );
24482 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24484 frvbf_media_overflow ( current_cpu
, 4 );
24487 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24490 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24491 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
24492 written
|= ( 1 << 12 );
24493 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24495 frvbf_media_overflow ( current_cpu
, 4 );
24499 DI opval
= tmp_tmp
;
24500 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
24501 written
|= ( 1 << 12 );
24502 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24511 abuf
-> written
= written
;
24516 /* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24519 SEM_FN_NAME ( frvbf
, mmrdhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24521 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24522 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24523 int UNUSED written
= 0 ;
24524 IADDR UNUSED pc
= abuf
-> addr
;
24525 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24527 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Uk
))) {
24528 if ( ANDSI ( FLD ( f_ACC40Uk
), SUBSI ( 2 , 1 ))) {
24529 frvbf_media_acc_not_aligned ( current_cpu
);
24537 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24538 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24539 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24540 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24544 tmp_tmp
= SUBDI ( GET_H_ACC40U ( FLD ( f_ACC40Uk
)), MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
)));
24545 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
24548 UDI opval
= MAKEDI ( 255 , 0xffffffff );
24549 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24550 written
|= ( 1 << 11 );
24551 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24553 frvbf_media_overflow ( current_cpu
, 8 );
24556 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
24559 UDI opval
= MAKEDI ( 0 , 0 );
24560 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24561 written
|= ( 1 << 11 );
24562 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24564 frvbf_media_overflow ( current_cpu
, 8 );
24568 UDI opval
= tmp_tmp
;
24569 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24570 written
|= ( 1 << 11 );
24571 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24578 tmp_tmp
= SUBDI ( GET_H_ACC40U ( ADDSI ( FLD ( f_ACC40Uk
), 1 )), MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
)));
24579 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
24582 UDI opval
= MAKEDI ( 255 , 0xffffffff );
24583 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 1 ), opval
);
24584 written
|= ( 1 << 12 );
24585 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24587 frvbf_media_overflow ( current_cpu
, 4 );
24590 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
24593 UDI opval
= MAKEDI ( 0 , 0 );
24594 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 1 ), opval
);
24595 written
|= ( 1 << 12 );
24596 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24598 frvbf_media_overflow ( current_cpu
, 4 );
24602 UDI opval
= tmp_tmp
;
24603 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 1 ), opval
);
24604 written
|= ( 1 << 12 );
24605 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24614 abuf
-> written
= written
;
24619 /* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24622 SEM_FN_NAME ( frvbf
, cmmachs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24624 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24625 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24626 int UNUSED written
= 0 ;
24627 IADDR UNUSED pc
= abuf
-> addr
;
24628 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24630 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
24631 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
24632 frvbf_media_acc_not_aligned ( current_cpu
);
24634 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
24641 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24642 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24643 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24644 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24648 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
24649 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24652 DI opval
= MAKEDI ( 127 , 0xffffffff );
24653 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24654 written
|= ( 1 << 13 );
24655 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24657 frvbf_media_overflow ( current_cpu
, 8 );
24660 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24663 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24664 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24665 written
|= ( 1 << 13 );
24666 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24668 frvbf_media_overflow ( current_cpu
, 8 );
24672 DI opval
= tmp_tmp
;
24673 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24674 written
|= ( 1 << 13 );
24675 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24682 tmp_tmp
= ADDDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Sk
), 1 )), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
24683 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24686 DI opval
= MAKEDI ( 127 , 0xffffffff );
24687 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
24688 written
|= ( 1 << 14 );
24689 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24691 frvbf_media_overflow ( current_cpu
, 4 );
24694 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24697 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24698 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
24699 written
|= ( 1 << 14 );
24700 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24702 frvbf_media_overflow ( current_cpu
, 4 );
24706 DI opval
= tmp_tmp
;
24707 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
24708 written
|= ( 1 << 14 );
24709 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24719 abuf
-> written
= written
;
24724 /* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24727 SEM_FN_NAME ( frvbf
, cmmachu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24729 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24730 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24731 int UNUSED written
= 0 ;
24732 IADDR UNUSED pc
= abuf
-> addr
;
24733 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24735 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Uk
))) {
24736 if ( ANDSI ( FLD ( f_ACC40Uk
), SUBSI ( 2 , 1 ))) {
24737 frvbf_media_acc_not_aligned ( current_cpu
);
24739 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
24746 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24747 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24748 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24749 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24753 tmp_tmp
= ADDDI ( GET_H_ACC40U ( FLD ( f_ACC40Uk
)), MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
)));
24754 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
24757 UDI opval
= MAKEDI ( 255 , 0xffffffff );
24758 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24759 written
|= ( 1 << 13 );
24760 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24762 frvbf_media_overflow ( current_cpu
, 8 );
24765 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
24768 UDI opval
= MAKEDI ( 0 , 0 );
24769 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24770 written
|= ( 1 << 13 );
24771 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24773 frvbf_media_overflow ( current_cpu
, 8 );
24777 UDI opval
= tmp_tmp
;
24778 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24779 written
|= ( 1 << 13 );
24780 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24787 tmp_tmp
= ADDDI ( GET_H_ACC40U ( ADDSI ( FLD ( f_ACC40Uk
), 1 )), MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
)));
24788 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
24791 UDI opval
= MAKEDI ( 255 , 0xffffffff );
24792 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 1 ), opval
);
24793 written
|= ( 1 << 14 );
24794 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24796 frvbf_media_overflow ( current_cpu
, 4 );
24799 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
24802 UDI opval
= MAKEDI ( 0 , 0 );
24803 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 1 ), opval
);
24804 written
|= ( 1 << 14 );
24805 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24807 frvbf_media_overflow ( current_cpu
, 4 );
24811 UDI opval
= tmp_tmp
;
24812 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 1 ), opval
);
24813 written
|= ( 1 << 14 );
24814 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24824 abuf
-> written
= written
;
24829 /* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24832 SEM_FN_NAME ( frvbf
, mqmachs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24834 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24835 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24836 int UNUSED written
= 0 ;
24837 IADDR UNUSED pc
= abuf
-> addr
;
24838 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24840 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
24841 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
24842 frvbf_media_acc_not_aligned ( current_cpu
);
24844 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
24845 frvbf_media_register_not_aligned ( current_cpu
);
24853 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24854 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24855 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24856 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24860 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
24861 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24864 DI opval
= MAKEDI ( 127 , 0xffffffff );
24865 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24866 written
|= ( 1 << 17 );
24867 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24869 frvbf_media_overflow ( current_cpu
, 8 );
24872 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24875 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24876 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24877 written
|= ( 1 << 17 );
24878 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24880 frvbf_media_overflow ( current_cpu
, 8 );
24884 DI opval
= tmp_tmp
;
24885 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24886 written
|= ( 1 << 17 );
24887 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24894 tmp_tmp
= ADDDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Sk
), 1 )), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
24895 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24898 DI opval
= MAKEDI ( 127 , 0xffffffff );
24899 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
24900 written
|= ( 1 << 18 );
24901 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24903 frvbf_media_overflow ( current_cpu
, 4 );
24906 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24909 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24910 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
24911 written
|= ( 1 << 18 );
24912 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24914 frvbf_media_overflow ( current_cpu
, 4 );
24918 DI opval
= tmp_tmp
;
24919 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
24920 written
|= ( 1 << 18 );
24921 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24927 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24928 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24929 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24930 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24934 tmp_tmp
= ADDDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Sk
), 2 )), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
24935 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24938 DI opval
= MAKEDI ( 127 , 0xffffffff );
24939 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
24940 written
|= ( 1 << 19 );
24941 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24943 frvbf_media_overflow ( current_cpu
, 2 );
24946 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24949 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24950 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
24951 written
|= ( 1 << 19 );
24952 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24954 frvbf_media_overflow ( current_cpu
, 2 );
24958 DI opval
= tmp_tmp
;
24959 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
24960 written
|= ( 1 << 19 );
24961 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24968 tmp_tmp
= ADDDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Sk
), 3 )), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
24969 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24972 DI opval
= MAKEDI ( 127 , 0xffffffff );
24973 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
24974 written
|= ( 1 << 20 );
24975 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24977 frvbf_media_overflow ( current_cpu
, 1 );
24980 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24983 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24984 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
24985 written
|= ( 1 << 20 );
24986 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24988 frvbf_media_overflow ( current_cpu
, 1 );
24992 DI opval
= tmp_tmp
;
24993 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
24994 written
|= ( 1 << 20 );
24995 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25005 abuf
-> written
= written
;
25010 /* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
25013 SEM_FN_NAME ( frvbf
, mqmachu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
25015 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25016 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
25017 int UNUSED written
= 0 ;
25018 IADDR UNUSED pc
= abuf
-> addr
;
25019 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
25021 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Uk
))) {
25022 if ( ANDSI ( FLD ( f_ACC40Uk
), SUBSI ( 4 , 1 ))) {
25023 frvbf_media_acc_not_aligned ( current_cpu
);
25025 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
25026 frvbf_media_register_not_aligned ( current_cpu
);
25034 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25035 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25036 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25037 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25041 tmp_tmp
= ADDDI ( GET_H_ACC40U ( FLD ( f_ACC40Uk
)), MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
)));
25042 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25045 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25046 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
25047 written
|= ( 1 << 17 );
25048 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25050 frvbf_media_overflow ( current_cpu
, 8 );
25053 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25056 UDI opval
= MAKEDI ( 0 , 0 );
25057 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
25058 written
|= ( 1 << 17 );
25059 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25061 frvbf_media_overflow ( current_cpu
, 8 );
25065 UDI opval
= tmp_tmp
;
25066 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
25067 written
|= ( 1 << 17 );
25068 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25075 tmp_tmp
= ADDDI ( GET_H_ACC40U ( ADDSI ( FLD ( f_ACC40Uk
), 1 )), MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
)));
25076 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25079 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25080 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 1 ), opval
);
25081 written
|= ( 1 << 18 );
25082 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25084 frvbf_media_overflow ( current_cpu
, 4 );
25087 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25090 UDI opval
= MAKEDI ( 0 , 0 );
25091 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 1 ), opval
);
25092 written
|= ( 1 << 18 );
25093 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25095 frvbf_media_overflow ( current_cpu
, 4 );
25099 UDI opval
= tmp_tmp
;
25100 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 1 ), opval
);
25101 written
|= ( 1 << 18 );
25102 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25108 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25109 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25110 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25111 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25115 tmp_tmp
= ADDDI ( GET_H_ACC40U ( ADDSI ( FLD ( f_ACC40Uk
), 2 )), MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
)));
25116 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25119 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25120 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 2 ), opval
);
25121 written
|= ( 1 << 19 );
25122 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25124 frvbf_media_overflow ( current_cpu
, 2 );
25127 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25130 UDI opval
= MAKEDI ( 0 , 0 );
25131 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 2 ), opval
);
25132 written
|= ( 1 << 19 );
25133 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25135 frvbf_media_overflow ( current_cpu
, 2 );
25139 UDI opval
= tmp_tmp
;
25140 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 2 ), opval
);
25141 written
|= ( 1 << 19 );
25142 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25149 tmp_tmp
= ADDDI ( GET_H_ACC40U ( ADDSI ( FLD ( f_ACC40Uk
), 3 )), MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
)));
25150 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25153 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25154 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 3 ), opval
);
25155 written
|= ( 1 << 20 );
25156 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25158 frvbf_media_overflow ( current_cpu
, 1 );
25161 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25164 UDI opval
= MAKEDI ( 0 , 0 );
25165 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 3 ), opval
);
25166 written
|= ( 1 << 20 );
25167 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25169 frvbf_media_overflow ( current_cpu
, 1 );
25173 UDI opval
= tmp_tmp
;
25174 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 3 ), opval
);
25175 written
|= ( 1 << 20 );
25176 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25186 abuf
-> written
= written
;
25191 /* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
25194 SEM_FN_NAME ( frvbf
, cmqmachs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
25196 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25197 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
25198 int UNUSED written
= 0 ;
25199 IADDR UNUSED pc
= abuf
-> addr
;
25200 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
25202 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
25203 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
25204 frvbf_media_acc_not_aligned ( current_cpu
);
25206 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
25207 frvbf_media_register_not_aligned ( current_cpu
);
25209 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
25216 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25217 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25218 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25219 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25223 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
25224 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25227 DI opval
= MAKEDI ( 127 , 0xffffffff );
25228 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25229 written
|= ( 1 << 19 );
25230 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25232 frvbf_media_overflow ( current_cpu
, 8 );
25235 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25238 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25239 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25240 written
|= ( 1 << 19 );
25241 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25243 frvbf_media_overflow ( current_cpu
, 8 );
25247 DI opval
= tmp_tmp
;
25248 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25249 written
|= ( 1 << 19 );
25250 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25257 tmp_tmp
= ADDDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Sk
), 1 )), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
25258 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25261 DI opval
= MAKEDI ( 127 , 0xffffffff );
25262 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
25263 written
|= ( 1 << 20 );
25264 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25266 frvbf_media_overflow ( current_cpu
, 4 );
25269 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25272 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25273 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
25274 written
|= ( 1 << 20 );
25275 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25277 frvbf_media_overflow ( current_cpu
, 4 );
25281 DI opval
= tmp_tmp
;
25282 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
25283 written
|= ( 1 << 20 );
25284 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25290 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25291 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25292 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25293 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25297 tmp_tmp
= ADDDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Sk
), 2 )), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
25298 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25301 DI opval
= MAKEDI ( 127 , 0xffffffff );
25302 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
25303 written
|= ( 1 << 21 );
25304 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25306 frvbf_media_overflow ( current_cpu
, 2 );
25309 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25312 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25313 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
25314 written
|= ( 1 << 21 );
25315 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25317 frvbf_media_overflow ( current_cpu
, 2 );
25321 DI opval
= tmp_tmp
;
25322 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
25323 written
|= ( 1 << 21 );
25324 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25331 tmp_tmp
= ADDDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Sk
), 3 )), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
25332 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25335 DI opval
= MAKEDI ( 127 , 0xffffffff );
25336 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
25337 written
|= ( 1 << 22 );
25338 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25340 frvbf_media_overflow ( current_cpu
, 1 );
25343 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25346 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25347 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
25348 written
|= ( 1 << 22 );
25349 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25351 frvbf_media_overflow ( current_cpu
, 1 );
25355 DI opval
= tmp_tmp
;
25356 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
25357 written
|= ( 1 << 22 );
25358 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25369 abuf
-> written
= written
;
25374 /* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25377 SEM_FN_NAME ( frvbf
, cmqmachu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
25379 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25380 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
25381 int UNUSED written
= 0 ;
25382 IADDR UNUSED pc
= abuf
-> addr
;
25383 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
25385 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Uk
))) {
25386 if ( ANDSI ( FLD ( f_ACC40Uk
), SUBSI ( 4 , 1 ))) {
25387 frvbf_media_acc_not_aligned ( current_cpu
);
25389 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
25390 frvbf_media_register_not_aligned ( current_cpu
);
25392 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
25399 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25400 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25401 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25402 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25406 tmp_tmp
= ADDDI ( GET_H_ACC40U ( FLD ( f_ACC40Uk
)), MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
)));
25407 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25410 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25411 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
25412 written
|= ( 1 << 19 );
25413 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25415 frvbf_media_overflow ( current_cpu
, 8 );
25418 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25421 UDI opval
= MAKEDI ( 0 , 0 );
25422 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
25423 written
|= ( 1 << 19 );
25424 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25426 frvbf_media_overflow ( current_cpu
, 8 );
25430 UDI opval
= tmp_tmp
;
25431 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
25432 written
|= ( 1 << 19 );
25433 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25440 tmp_tmp
= ADDDI ( GET_H_ACC40U ( ADDSI ( FLD ( f_ACC40Uk
), 1 )), MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
)));
25441 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25444 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25445 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 1 ), opval
);
25446 written
|= ( 1 << 20 );
25447 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25449 frvbf_media_overflow ( current_cpu
, 4 );
25452 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25455 UDI opval
= MAKEDI ( 0 , 0 );
25456 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 1 ), opval
);
25457 written
|= ( 1 << 20 );
25458 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25460 frvbf_media_overflow ( current_cpu
, 4 );
25464 UDI opval
= tmp_tmp
;
25465 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 1 ), opval
);
25466 written
|= ( 1 << 20 );
25467 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25473 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25474 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25475 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25476 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25480 tmp_tmp
= ADDDI ( GET_H_ACC40U ( ADDSI ( FLD ( f_ACC40Uk
), 2 )), MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
)));
25481 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25484 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25485 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 2 ), opval
);
25486 written
|= ( 1 << 21 );
25487 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25489 frvbf_media_overflow ( current_cpu
, 2 );
25492 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25495 UDI opval
= MAKEDI ( 0 , 0 );
25496 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 2 ), opval
);
25497 written
|= ( 1 << 21 );
25498 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25500 frvbf_media_overflow ( current_cpu
, 2 );
25504 UDI opval
= tmp_tmp
;
25505 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 2 ), opval
);
25506 written
|= ( 1 << 21 );
25507 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25514 tmp_tmp
= ADDDI ( GET_H_ACC40U ( ADDSI ( FLD ( f_ACC40Uk
), 3 )), MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
)));
25515 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25518 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25519 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 3 ), opval
);
25520 written
|= ( 1 << 22 );
25521 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25523 frvbf_media_overflow ( current_cpu
, 1 );
25526 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25529 UDI opval
= MAKEDI ( 0 , 0 );
25530 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 3 ), opval
);
25531 written
|= ( 1 << 22 );
25532 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25534 frvbf_media_overflow ( current_cpu
, 1 );
25538 UDI opval
= tmp_tmp
;
25539 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, ADDSI ( FLD ( f_ACC40Uk
), 3 ), opval
);
25540 written
|= ( 1 << 22 );
25541 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25552 abuf
-> written
= written
;
25557 /* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25560 SEM_FN_NAME ( frvbf
, mqxmachs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
25562 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25563 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
25564 int UNUSED written
= 0 ;
25565 IADDR UNUSED pc
= abuf
-> addr
;
25566 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
25568 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
25569 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
25570 frvbf_media_acc_not_aligned ( current_cpu
);
25572 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
25573 frvbf_media_register_not_aligned ( current_cpu
);
25581 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25582 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25583 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25584 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25588 tmp_tmp
= ADDDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Sk
), 2 )), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
25589 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25592 DI opval
= MAKEDI ( 127 , 0xffffffff );
25593 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
25594 written
|= ( 1 << 19 );
25595 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25597 frvbf_media_overflow ( current_cpu
, 2 );
25600 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25603 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25604 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
25605 written
|= ( 1 << 19 );
25606 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25608 frvbf_media_overflow ( current_cpu
, 2 );
25612 DI opval
= tmp_tmp
;
25613 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
25614 written
|= ( 1 << 19 );
25615 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25622 tmp_tmp
= ADDDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Sk
), 3 )), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
25623 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25626 DI opval
= MAKEDI ( 127 , 0xffffffff );
25627 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
25628 written
|= ( 1 << 20 );
25629 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25631 frvbf_media_overflow ( current_cpu
, 1 );
25634 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25637 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25638 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
25639 written
|= ( 1 << 20 );
25640 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25642 frvbf_media_overflow ( current_cpu
, 1 );
25646 DI opval
= tmp_tmp
;
25647 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
25648 written
|= ( 1 << 20 );
25649 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25655 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25656 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25657 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25658 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25662 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
25663 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25666 DI opval
= MAKEDI ( 127 , 0xffffffff );
25667 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25668 written
|= ( 1 << 17 );
25669 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25671 frvbf_media_overflow ( current_cpu
, 8 );
25674 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25677 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25678 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25679 written
|= ( 1 << 17 );
25680 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25682 frvbf_media_overflow ( current_cpu
, 8 );
25686 DI opval
= tmp_tmp
;
25687 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25688 written
|= ( 1 << 17 );
25689 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25696 tmp_tmp
= ADDDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Sk
), 1 )), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
25697 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25700 DI opval
= MAKEDI ( 127 , 0xffffffff );
25701 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
25702 written
|= ( 1 << 18 );
25703 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25705 frvbf_media_overflow ( current_cpu
, 4 );
25708 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25711 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25712 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
25713 written
|= ( 1 << 18 );
25714 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25716 frvbf_media_overflow ( current_cpu
, 4 );
25720 DI opval
= tmp_tmp
;
25721 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
25722 written
|= ( 1 << 18 );
25723 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25733 abuf
-> written
= written
;
25738 /* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25741 SEM_FN_NAME ( frvbf
, mqxmacxhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
25743 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25744 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
25745 int UNUSED written
= 0 ;
25746 IADDR UNUSED pc
= abuf
-> addr
;
25747 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
25749 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
25750 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
25751 frvbf_media_acc_not_aligned ( current_cpu
);
25753 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
25754 frvbf_media_register_not_aligned ( current_cpu
);
25762 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25763 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25764 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25765 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25769 tmp_tmp
= ADDDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Sk
), 2 )), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
)));
25770 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25773 DI opval
= MAKEDI ( 127 , 0xffffffff );
25774 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
25775 written
|= ( 1 << 19 );
25776 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25778 frvbf_media_overflow ( current_cpu
, 2 );
25781 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25784 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25785 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
25786 written
|= ( 1 << 19 );
25787 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25789 frvbf_media_overflow ( current_cpu
, 2 );
25793 DI opval
= tmp_tmp
;
25794 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
25795 written
|= ( 1 << 19 );
25796 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25803 tmp_tmp
= ADDDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Sk
), 3 )), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
)));
25804 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25807 DI opval
= MAKEDI ( 127 , 0xffffffff );
25808 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
25809 written
|= ( 1 << 20 );
25810 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25812 frvbf_media_overflow ( current_cpu
, 1 );
25815 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25818 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25819 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
25820 written
|= ( 1 << 20 );
25821 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25823 frvbf_media_overflow ( current_cpu
, 1 );
25827 DI opval
= tmp_tmp
;
25828 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
25829 written
|= ( 1 << 20 );
25830 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25836 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25837 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25838 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25839 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25843 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
)));
25844 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25847 DI opval
= MAKEDI ( 127 , 0xffffffff );
25848 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25849 written
|= ( 1 << 17 );
25850 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25852 frvbf_media_overflow ( current_cpu
, 8 );
25855 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25858 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25859 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25860 written
|= ( 1 << 17 );
25861 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25863 frvbf_media_overflow ( current_cpu
, 8 );
25867 DI opval
= tmp_tmp
;
25868 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25869 written
|= ( 1 << 17 );
25870 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25877 tmp_tmp
= ADDDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Sk
), 1 )), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
)));
25878 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25881 DI opval
= MAKEDI ( 127 , 0xffffffff );
25882 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
25883 written
|= ( 1 << 18 );
25884 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25886 frvbf_media_overflow ( current_cpu
, 4 );
25889 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25892 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25893 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
25894 written
|= ( 1 << 18 );
25895 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25897 frvbf_media_overflow ( current_cpu
, 4 );
25901 DI opval
= tmp_tmp
;
25902 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
25903 written
|= ( 1 << 18 );
25904 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25914 abuf
-> written
= written
;
25919 /* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25922 SEM_FN_NAME ( frvbf
, mqmacxhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
25924 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25925 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
25926 int UNUSED written
= 0 ;
25927 IADDR UNUSED pc
= abuf
-> addr
;
25928 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
25930 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
25931 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
25932 frvbf_media_acc_not_aligned ( current_cpu
);
25934 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
25935 frvbf_media_register_not_aligned ( current_cpu
);
25943 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25944 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25945 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25946 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25950 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
)));
25951 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25954 DI opval
= MAKEDI ( 127 , 0xffffffff );
25955 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25956 written
|= ( 1 << 17 );
25957 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25959 frvbf_media_overflow ( current_cpu
, 8 );
25962 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25965 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25966 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25967 written
|= ( 1 << 17 );
25968 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25970 frvbf_media_overflow ( current_cpu
, 8 );
25974 DI opval
= tmp_tmp
;
25975 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25976 written
|= ( 1 << 17 );
25977 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25984 tmp_tmp
= ADDDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Sk
), 1 )), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
)));
25985 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25988 DI opval
= MAKEDI ( 127 , 0xffffffff );
25989 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
25990 written
|= ( 1 << 18 );
25991 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25993 frvbf_media_overflow ( current_cpu
, 4 );
25996 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25999 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26000 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
26001 written
|= ( 1 << 18 );
26002 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26004 frvbf_media_overflow ( current_cpu
, 4 );
26008 DI opval
= tmp_tmp
;
26009 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
26010 written
|= ( 1 << 18 );
26011 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26017 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26018 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26019 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26020 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26024 tmp_tmp
= ADDDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Sk
), 2 )), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
)));
26025 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
26028 DI opval
= MAKEDI ( 127 , 0xffffffff );
26029 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
26030 written
|= ( 1 << 19 );
26031 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26033 frvbf_media_overflow ( current_cpu
, 2 );
26036 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
26039 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26040 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
26041 written
|= ( 1 << 19 );
26042 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26044 frvbf_media_overflow ( current_cpu
, 2 );
26048 DI opval
= tmp_tmp
;
26049 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 2 ), opval
);
26050 written
|= ( 1 << 19 );
26051 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26058 tmp_tmp
= ADDDI ( GET_H_ACC40S ( ADDSI ( FLD ( f_ACC40Sk
), 3 )), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
)));
26059 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
26062 DI opval
= MAKEDI ( 127 , 0xffffffff );
26063 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
26064 written
|= ( 1 << 20 );
26065 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26067 frvbf_media_overflow ( current_cpu
, 1 );
26070 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
26073 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26074 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
26075 written
|= ( 1 << 20 );
26076 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26078 frvbf_media_overflow ( current_cpu
, 1 );
26082 DI opval
= tmp_tmp
;
26083 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 3 ), opval
);
26084 written
|= ( 1 << 20 );
26085 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26095 abuf
-> written
= written
;
26100 /* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
26103 SEM_FN_NAME ( frvbf
, mcpxrs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26105 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26106 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26107 int UNUSED written
= 0 ;
26108 IADDR UNUSED pc
= abuf
-> addr
;
26109 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26111 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26118 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26119 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26120 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26121 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26126 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
26127 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
26128 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26129 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26132 DI opval
= MAKEDI ( 127 , 0xffffffff );
26133 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26134 written
|= ( 1 << 9 );
26135 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26137 frvbf_media_overflow ( current_cpu
, 8 );
26140 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26143 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26144 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26145 written
|= ( 1 << 9 );
26146 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26148 frvbf_media_overflow ( current_cpu
, 8 );
26152 DI opval
= tmp_tmp1
;
26153 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26154 written
|= ( 1 << 9 );
26155 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26163 abuf
-> written
= written
;
26168 /* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
26171 SEM_FN_NAME ( frvbf
, mcpxru
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26173 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26174 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26175 int UNUSED written
= 0 ;
26176 IADDR UNUSED pc
= abuf
-> addr
;
26177 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26179 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26186 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26187 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26188 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26189 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26194 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
26195 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
26196 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26197 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
26200 DI opval
= MAKEDI ( 255 , 0xffffffff );
26201 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26202 written
|= ( 1 << 9 );
26203 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26205 frvbf_media_overflow ( current_cpu
, 8 );
26208 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
26211 DI opval
= MAKEDI ( 0 , 0 );
26212 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26213 written
|= ( 1 << 9 );
26214 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26216 frvbf_media_overflow ( current_cpu
, 8 );
26220 DI opval
= tmp_tmp1
;
26221 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26222 written
|= ( 1 << 9 );
26223 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26231 abuf
-> written
= written
;
26236 /* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
26239 SEM_FN_NAME ( frvbf
, mcpxis
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26241 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26242 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26243 int UNUSED written
= 0 ;
26244 IADDR UNUSED pc
= abuf
-> addr
;
26245 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26247 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26254 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26255 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26256 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26257 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26262 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
));
26263 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
));
26264 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
26265 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26268 DI opval
= MAKEDI ( 127 , 0xffffffff );
26269 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26270 written
|= ( 1 << 9 );
26271 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26273 frvbf_media_overflow ( current_cpu
, 8 );
26276 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26279 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26280 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26281 written
|= ( 1 << 9 );
26282 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26284 frvbf_media_overflow ( current_cpu
, 8 );
26288 DI opval
= tmp_tmp1
;
26289 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26290 written
|= ( 1 << 9 );
26291 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26299 abuf
-> written
= written
;
26304 /* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
26307 SEM_FN_NAME ( frvbf
, mcpxiu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26309 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26310 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26311 int UNUSED written
= 0 ;
26312 IADDR UNUSED pc
= abuf
-> addr
;
26313 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26315 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26322 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26323 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26324 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26325 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26330 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjlo
));
26331 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjhi
));
26332 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
26333 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
26336 DI opval
= MAKEDI ( 255 , 0xffffffff );
26337 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26338 written
|= ( 1 << 9 );
26339 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26341 frvbf_media_overflow ( current_cpu
, 8 );
26344 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
26347 DI opval
= MAKEDI ( 0 , 0 );
26348 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26349 written
|= ( 1 << 9 );
26350 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26352 frvbf_media_overflow ( current_cpu
, 8 );
26356 DI opval
= tmp_tmp1
;
26357 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26358 written
|= ( 1 << 9 );
26359 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26367 abuf
-> written
= written
;
26372 /* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26375 SEM_FN_NAME ( frvbf
, cmcpxrs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26377 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26378 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26379 int UNUSED written
= 0 ;
26380 IADDR UNUSED pc
= abuf
-> addr
;
26381 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26383 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
26384 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26391 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26392 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26393 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26394 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26399 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
26400 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
26401 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26402 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26405 DI opval
= MAKEDI ( 127 , 0xffffffff );
26406 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26407 written
|= ( 1 << 11 );
26408 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26410 frvbf_media_overflow ( current_cpu
, 8 );
26413 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26416 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26417 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26418 written
|= ( 1 << 11 );
26419 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26421 frvbf_media_overflow ( current_cpu
, 8 );
26425 DI opval
= tmp_tmp1
;
26426 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26427 written
|= ( 1 << 11 );
26428 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26437 abuf
-> written
= written
;
26442 /* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26445 SEM_FN_NAME ( frvbf
, cmcpxru
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26447 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26448 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26449 int UNUSED written
= 0 ;
26450 IADDR UNUSED pc
= abuf
-> addr
;
26451 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26453 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
26454 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26461 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26462 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26463 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26464 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26469 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
26470 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
26471 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26472 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
26475 DI opval
= MAKEDI ( 255 , 0xffffffff );
26476 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26477 written
|= ( 1 << 11 );
26478 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26480 frvbf_media_overflow ( current_cpu
, 8 );
26483 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
26486 DI opval
= MAKEDI ( 0 , 0 );
26487 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26488 written
|= ( 1 << 11 );
26489 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26491 frvbf_media_overflow ( current_cpu
, 8 );
26495 DI opval
= tmp_tmp1
;
26496 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26497 written
|= ( 1 << 11 );
26498 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26507 abuf
-> written
= written
;
26512 /* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26515 SEM_FN_NAME ( frvbf
, cmcpxis
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26517 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26518 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26519 int UNUSED written
= 0 ;
26520 IADDR UNUSED pc
= abuf
-> addr
;
26521 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26523 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
26524 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26531 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26532 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26533 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26534 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26539 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
));
26540 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
));
26541 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
26542 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26545 DI opval
= MAKEDI ( 127 , 0xffffffff );
26546 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26547 written
|= ( 1 << 11 );
26548 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26550 frvbf_media_overflow ( current_cpu
, 8 );
26553 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26556 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26557 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26558 written
|= ( 1 << 11 );
26559 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26561 frvbf_media_overflow ( current_cpu
, 8 );
26565 DI opval
= tmp_tmp1
;
26566 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26567 written
|= ( 1 << 11 );
26568 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26577 abuf
-> written
= written
;
26582 /* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26585 SEM_FN_NAME ( frvbf
, cmcpxiu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26587 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26588 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26589 int UNUSED written
= 0 ;
26590 IADDR UNUSED pc
= abuf
-> addr
;
26591 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26593 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
26594 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26601 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26602 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26603 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26604 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26609 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjlo
));
26610 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjhi
));
26611 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
26612 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
26615 DI opval
= MAKEDI ( 255 , 0xffffffff );
26616 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26617 written
|= ( 1 << 11 );
26618 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26620 frvbf_media_overflow ( current_cpu
, 8 );
26623 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
26626 DI opval
= MAKEDI ( 0 , 0 );
26627 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26628 written
|= ( 1 << 11 );
26629 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26631 frvbf_media_overflow ( current_cpu
, 8 );
26635 DI opval
= tmp_tmp1
;
26636 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26637 written
|= ( 1 << 11 );
26638 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26647 abuf
-> written
= written
;
26652 /* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26655 SEM_FN_NAME ( frvbf
, mqcpxrs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26657 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26658 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26659 int UNUSED written
= 0 ;
26660 IADDR UNUSED pc
= abuf
-> addr
;
26661 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26663 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26664 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
26665 frvbf_media_acc_not_aligned ( current_cpu
);
26667 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
26668 frvbf_media_register_not_aligned ( current_cpu
);
26676 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26677 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26678 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26679 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26684 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
26685 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
26686 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26687 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26690 DI opval
= MAKEDI ( 127 , 0xffffffff );
26691 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26692 written
|= ( 1 << 13 );
26693 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26695 frvbf_media_overflow ( current_cpu
, 8 );
26698 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26701 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26702 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26703 written
|= ( 1 << 13 );
26704 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26706 frvbf_media_overflow ( current_cpu
, 8 );
26710 DI opval
= tmp_tmp1
;
26711 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26712 written
|= ( 1 << 13 );
26713 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26719 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26720 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26721 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26722 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26727 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
26728 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
26729 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26730 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26733 DI opval
= MAKEDI ( 127 , 0xffffffff );
26734 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
26735 written
|= ( 1 << 14 );
26736 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26738 frvbf_media_overflow ( current_cpu
, 4 );
26741 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26744 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26745 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
26746 written
|= ( 1 << 14 );
26747 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26749 frvbf_media_overflow ( current_cpu
, 4 );
26753 DI opval
= tmp_tmp1
;
26754 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
26755 written
|= ( 1 << 14 );
26756 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26766 abuf
-> written
= written
;
26771 /* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26774 SEM_FN_NAME ( frvbf
, mqcpxru
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26776 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26777 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26778 int UNUSED written
= 0 ;
26779 IADDR UNUSED pc
= abuf
-> addr
;
26780 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26782 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26783 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
26784 frvbf_media_acc_not_aligned ( current_cpu
);
26786 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
26787 frvbf_media_register_not_aligned ( current_cpu
);
26795 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26796 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26797 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26798 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26803 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
26804 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
26805 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26806 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
26809 DI opval
= MAKEDI ( 255 , 0xffffffff );
26810 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26811 written
|= ( 1 << 13 );
26812 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26814 frvbf_media_overflow ( current_cpu
, 8 );
26817 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
26820 DI opval
= MAKEDI ( 0 , 0 );
26821 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26822 written
|= ( 1 << 13 );
26823 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26825 frvbf_media_overflow ( current_cpu
, 8 );
26829 DI opval
= tmp_tmp1
;
26830 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26831 written
|= ( 1 << 13 );
26832 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26838 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26839 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26840 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26841 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26846 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
26847 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
26848 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26849 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
26852 DI opval
= MAKEDI ( 255 , 0xffffffff );
26853 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
26854 written
|= ( 1 << 14 );
26855 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26857 frvbf_media_overflow ( current_cpu
, 4 );
26860 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
26863 DI opval
= MAKEDI ( 0 , 0 );
26864 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
26865 written
|= ( 1 << 14 );
26866 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26868 frvbf_media_overflow ( current_cpu
, 4 );
26872 DI opval
= tmp_tmp1
;
26873 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
26874 written
|= ( 1 << 14 );
26875 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26885 abuf
-> written
= written
;
26890 /* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26893 SEM_FN_NAME ( frvbf
, mqcpxis
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26895 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26896 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26897 int UNUSED written
= 0 ;
26898 IADDR UNUSED pc
= abuf
-> addr
;
26899 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26901 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26902 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
26903 frvbf_media_acc_not_aligned ( current_cpu
);
26905 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
26906 frvbf_media_register_not_aligned ( current_cpu
);
26914 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26915 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26916 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26917 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26922 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
));
26923 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
));
26924 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
26925 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26928 DI opval
= MAKEDI ( 127 , 0xffffffff );
26929 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26930 written
|= ( 1 << 13 );
26931 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26933 frvbf_media_overflow ( current_cpu
, 8 );
26936 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26939 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26940 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26941 written
|= ( 1 << 13 );
26942 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26944 frvbf_media_overflow ( current_cpu
, 8 );
26948 DI opval
= tmp_tmp1
;
26949 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26950 written
|= ( 1 << 13 );
26951 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26957 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26958 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26959 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26960 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26965 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
));
26966 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
));
26967 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
26968 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26971 DI opval
= MAKEDI ( 127 , 0xffffffff );
26972 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
26973 written
|= ( 1 << 14 );
26974 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26976 frvbf_media_overflow ( current_cpu
, 4 );
26979 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26982 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26983 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
26984 written
|= ( 1 << 14 );
26985 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26987 frvbf_media_overflow ( current_cpu
, 4 );
26991 DI opval
= tmp_tmp1
;
26992 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
26993 written
|= ( 1 << 14 );
26994 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
27004 abuf
-> written
= written
;
27009 /* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
27012 SEM_FN_NAME ( frvbf
, mqcpxiu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27014 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
27015 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27016 int UNUSED written
= 0 ;
27017 IADDR UNUSED pc
= abuf
-> addr
;
27018 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27020 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
27021 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
27022 frvbf_media_acc_not_aligned ( current_cpu
);
27024 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
27025 frvbf_media_register_not_aligned ( current_cpu
);
27033 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
27034 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
27035 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
27036 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
27041 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjlo
));
27042 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjhi
));
27043 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
27044 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
27047 DI opval
= MAKEDI ( 255 , 0xffffffff );
27048 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
27049 written
|= ( 1 << 13 );
27050 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
27052 frvbf_media_overflow ( current_cpu
, 8 );
27055 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
27058 DI opval
= MAKEDI ( 0 , 0 );
27059 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
27060 written
|= ( 1 << 13 );
27061 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
27063 frvbf_media_overflow ( current_cpu
, 8 );
27067 DI opval
= tmp_tmp1
;
27068 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
27069 written
|= ( 1 << 13 );
27070 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
27076 tmp_argihi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
27077 tmp_argilo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
27078 tmp_argjhi
= ADDHI ( GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
27079 tmp_argjlo
= ADDHI ( GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 )), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
27084 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjlo
));
27085 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjhi
));
27086 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
27087 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
27090 DI opval
= MAKEDI ( 255 , 0xffffffff );
27091 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
27092 written
|= ( 1 << 14 );
27093 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
27095 frvbf_media_overflow ( current_cpu
, 4 );
27098 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
27101 DI opval
= MAKEDI ( 0 , 0 );
27102 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
27103 written
|= ( 1 << 14 );
27104 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
27106 frvbf_media_overflow ( current_cpu
, 4 );
27110 DI opval
= tmp_tmp1
;
27111 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, ADDSI ( FLD ( f_ACC40Sk
), 1 ), opval
);
27112 written
|= ( 1 << 14 );
27113 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
27123 abuf
-> written
= written
;
27128 /* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
27131 SEM_FN_NAME ( frvbf
, mexpdhw
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27133 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27134 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27135 int UNUSED written
= 0 ;
27136 IADDR UNUSED pc
= abuf
-> addr
;
27137 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27141 if ( ANDSI ( FLD ( f_u6
), 1 )) {
27142 tmp_tmp
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 ));
27144 tmp_tmp
= GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 ));
27147 UHI opval
= tmp_tmp
;
27148 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27149 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27152 UHI opval
= tmp_tmp
;
27153 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27154 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27162 /* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
27165 SEM_FN_NAME ( frvbf
, cmexpdhw
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27167 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27168 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27169 int UNUSED written
= 0 ;
27170 IADDR UNUSED pc
= abuf
-> addr
;
27171 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27173 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
27176 if ( ANDSI ( FLD ( f_u6
), 1 )) {
27177 tmp_tmp
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 ));
27179 tmp_tmp
= GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 ));
27182 UHI opval
= tmp_tmp
;
27183 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27184 written
|= ( 1 << 7 );
27185 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27188 UHI opval
= tmp_tmp
;
27189 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27190 written
|= ( 1 << 8 );
27191 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27196 abuf
-> written
= written
;
27201 /* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
27204 SEM_FN_NAME ( frvbf
, mexpdhd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27206 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27207 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27208 int UNUSED written
= 0 ;
27209 IADDR UNUSED pc
= abuf
-> addr
;
27210 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27212 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))) {
27213 frvbf_media_register_not_aligned ( current_cpu
);
27218 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27219 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27220 written
|= ( 1 << 6 );
27221 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27223 if ( ANDSI ( FLD ( f_u6
), 1 )) {
27224 tmp_tmp
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 ));
27226 tmp_tmp
= GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 ));
27229 UHI opval
= tmp_tmp
;
27230 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27231 written
|= ( 1 << 7 );
27232 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27235 UHI opval
= tmp_tmp
;
27236 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27237 written
|= ( 1 << 9 );
27238 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27241 UHI opval
= tmp_tmp
;
27242 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
27243 written
|= ( 1 << 8 );
27244 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27247 UHI opval
= tmp_tmp
;
27248 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
27249 written
|= ( 1 << 10 );
27250 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27255 abuf
-> written
= written
;
27260 /* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
27263 SEM_FN_NAME ( frvbf
, cmexpdhd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27265 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27266 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27267 int UNUSED written
= 0 ;
27268 IADDR UNUSED pc
= abuf
-> addr
;
27269 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27271 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))) {
27272 frvbf_media_register_not_aligned ( current_cpu
);
27274 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
27278 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27279 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27280 written
|= ( 1 << 8 );
27281 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27283 if ( ANDSI ( FLD ( f_u6
), 1 )) {
27284 tmp_tmp
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 ));
27286 tmp_tmp
= GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 ));
27289 UHI opval
= tmp_tmp
;
27290 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27291 written
|= ( 1 << 9 );
27292 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27295 UHI opval
= tmp_tmp
;
27296 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27297 written
|= ( 1 << 11 );
27298 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27301 UHI opval
= tmp_tmp
;
27302 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
27303 written
|= ( 1 << 10 );
27304 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27307 UHI opval
= tmp_tmp
;
27308 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
27309 written
|= ( 1 << 12 );
27310 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27316 abuf
-> written
= written
;
27321 /* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
27324 SEM_FN_NAME ( frvbf
, mpackh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27326 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
27327 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27328 int UNUSED written
= 0 ;
27329 IADDR UNUSED pc
= abuf
-> addr
;
27330 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27334 UHI opval
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 ));
27335 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27336 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27339 UHI opval
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 ));
27340 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27341 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27349 /* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27352 SEM_FN_NAME ( frvbf
, mdpackh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27354 #define FLD(f) abuf->fields.sfmt_mdpackh.f
27355 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27356 int UNUSED written
= 0 ;
27357 IADDR UNUSED pc
= abuf
-> addr
;
27358 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27360 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
27361 frvbf_media_register_not_aligned ( current_cpu
);
27365 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
27366 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
27367 written
|= ( 1 << 10 );
27368 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27371 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
27372 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
27373 written
|= ( 1 << 11 );
27374 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27377 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27378 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27379 written
|= ( 1 << 12 );
27380 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27384 UHI opval
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 ));
27385 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27386 written
|= ( 1 << 13 );
27387 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27390 UHI opval
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 ));
27391 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27392 written
|= ( 1 << 15 );
27393 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27398 UHI opval
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 ));
27399 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
27400 written
|= ( 1 << 14 );
27401 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27404 UHI opval
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 ));
27405 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
27406 written
|= ( 1 << 16 );
27407 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27413 abuf
-> written
= written
;
27418 /* munpackh: munpackh$pack $FRinti,$FRintkeven */
27421 SEM_FN_NAME ( frvbf
, munpackh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27423 #define FLD(f) abuf->fields.sfmt_munpackh.f
27424 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27425 int UNUSED written
= 0 ;
27426 IADDR UNUSED pc
= abuf
-> addr
;
27427 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27429 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))) {
27430 frvbf_media_register_not_aligned ( current_cpu
);
27434 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
27435 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
27436 written
|= ( 1 << 6 );
27437 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27440 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27441 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27442 written
|= ( 1 << 7 );
27443 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27447 UHI opval
= GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 ));
27448 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27449 written
|= ( 1 << 8 );
27450 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27453 UHI opval
= GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 ));
27454 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27455 written
|= ( 1 << 10 );
27456 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27459 UHI opval
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 ));
27460 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), ADDSI ( 0 , 1 )), opval
);
27461 written
|= ( 1 << 9 );
27462 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27465 UHI opval
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 ));
27466 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), ADDSI ( 0 , 1 )), opval
);
27467 written
|= ( 1 << 11 );
27468 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27474 abuf
-> written
= written
;
27479 /* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27482 SEM_FN_NAME ( frvbf
, mdunpackh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27484 #define FLD(f) abuf->fields.sfmt_mdunpackh.f
27485 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27486 int UNUSED written
= 0 ;
27487 IADDR UNUSED pc
= abuf
-> addr
;
27488 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27490 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 4 , 1 )))) {
27491 frvbf_media_register_not_aligned ( current_cpu
);
27495 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
27496 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
27497 written
|= ( 1 << 8 );
27498 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27501 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27502 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27503 written
|= ( 1 << 9 );
27504 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27508 UHI opval
= GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 ));
27509 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27510 written
|= ( 1 << 10 );
27511 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27514 UHI opval
= GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 0 ));
27515 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27516 written
|= ( 1 << 14 );
27517 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27520 UHI opval
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 ));
27521 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), ADDSI ( 0 , 1 )), opval
);
27522 written
|= ( 1 << 12 );
27523 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27526 UHI opval
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 0 ));
27527 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), ADDSI ( 0 , 1 )), opval
);
27528 written
|= ( 1 << 16 );
27529 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27534 UHI opval
= GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 ));
27535 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 2 ), opval
);
27536 written
|= ( 1 << 11 );
27537 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27540 UHI opval
= GET_H_FR_HI ( ADDSI ( FLD ( f_FRi
), 1 ));
27541 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 2 ), opval
);
27542 written
|= ( 1 << 15 );
27543 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27546 UHI opval
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 ));
27547 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), ADDSI ( 2 , 1 )), opval
);
27548 written
|= ( 1 << 13 );
27549 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27552 UHI opval
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRi
), 1 ));
27553 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), ADDSI ( 2 , 1 )), opval
);
27554 written
|= ( 1 << 17 );
27555 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27561 abuf
-> written
= written
;
27566 /* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27569 SEM_FN_NAME ( frvbf
, mbtoh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27571 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27572 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27573 int UNUSED written
= 0 ;
27574 IADDR UNUSED pc
= abuf
-> addr
;
27575 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27579 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
27580 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
27581 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27584 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27585 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27586 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27588 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))) {
27589 frvbf_media_register_not_aligned ( current_cpu
);
27593 UHI opval
= GET_H_FR_3 ( ADDSI ( FLD ( f_FRj
), 0 ));
27594 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27595 written
|= ( 1 << 10 );
27596 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27599 UHI opval
= GET_H_FR_2 ( ADDSI ( FLD ( f_FRj
), 0 ));
27600 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27601 written
|= ( 1 << 12 );
27602 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27605 UHI opval
= GET_H_FR_1 ( ADDSI ( FLD ( f_FRj
), 0 ));
27606 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
27607 written
|= ( 1 << 11 );
27608 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27611 UHI opval
= GET_H_FR_0 ( ADDSI ( FLD ( f_FRj
), 0 ));
27612 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
27613 written
|= ( 1 << 13 );
27614 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27620 abuf
-> written
= written
;
27625 /* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27628 SEM_FN_NAME ( frvbf
, cmbtoh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27630 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27631 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27632 int UNUSED written
= 0 ;
27633 IADDR UNUSED pc
= abuf
-> addr
;
27634 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27638 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
27639 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
27640 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27643 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27644 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27645 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27647 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))) {
27648 frvbf_media_register_not_aligned ( current_cpu
);
27650 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
27653 UHI opval
= GET_H_FR_3 ( ADDSI ( FLD ( f_FRj
), 0 ));
27654 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27655 written
|= ( 1 << 12 );
27656 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27659 UHI opval
= GET_H_FR_2 ( ADDSI ( FLD ( f_FRj
), 0 ));
27660 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27661 written
|= ( 1 << 14 );
27662 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27665 UHI opval
= GET_H_FR_1 ( ADDSI ( FLD ( f_FRj
), 0 ));
27666 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
27667 written
|= ( 1 << 13 );
27668 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27671 UHI opval
= GET_H_FR_0 ( ADDSI ( FLD ( f_FRj
), 0 ));
27672 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
27673 written
|= ( 1 << 15 );
27674 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27681 abuf
-> written
= written
;
27686 /* mhtob: mhtob$pack $FRintjeven,$FRintk */
27689 SEM_FN_NAME ( frvbf
, mhtob
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27691 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27692 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27693 int UNUSED written
= 0 ;
27694 IADDR UNUSED pc
= abuf
-> addr
;
27695 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27699 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
27700 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
27701 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27704 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27705 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27706 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27708 if ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 ))) {
27709 frvbf_media_register_not_aligned ( current_cpu
);
27713 UHI opval
= GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 ));
27714 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_3_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27715 written
|= ( 1 << 13 );
27716 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_3" , 'x' , opval
);
27719 UHI opval
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 ));
27720 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_2_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27721 written
|= ( 1 << 12 );
27722 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_2" , 'x' , opval
);
27725 UHI opval
= GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 ));
27726 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_1_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27727 written
|= ( 1 << 11 );
27728 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_1" , 'x' , opval
);
27731 UHI opval
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 ));
27732 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_0_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27733 written
|= ( 1 << 10 );
27734 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_0" , 'x' , opval
);
27740 abuf
-> written
= written
;
27745 /* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27748 SEM_FN_NAME ( frvbf
, cmhtob
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27750 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27751 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27752 int UNUSED written
= 0 ;
27753 IADDR UNUSED pc
= abuf
-> addr
;
27754 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27758 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
27759 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
27760 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27763 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27764 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27765 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27767 if ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 ))) {
27768 frvbf_media_register_not_aligned ( current_cpu
);
27770 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
27773 UHI opval
= GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 0 ));
27774 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_3_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27775 written
|= ( 1 << 15 );
27776 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_3" , 'x' , opval
);
27779 UHI opval
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 0 ));
27780 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_2_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27781 written
|= ( 1 << 14 );
27782 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_2" , 'x' , opval
);
27785 UHI opval
= GET_H_FR_HI ( ADDSI ( FLD ( f_FRj
), 1 ));
27786 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_1_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27787 written
|= ( 1 << 13 );
27788 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_1" , 'x' , opval
);
27791 UHI opval
= GET_H_FR_LO ( ADDSI ( FLD ( f_FRj
), 1 ));
27792 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_0_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27793 written
|= ( 1 << 12 );
27794 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_0" , 'x' , opval
);
27801 abuf
-> written
= written
;
27806 /* mbtohe: mbtohe$pack $FRintj,$FRintk */
27809 SEM_FN_NAME ( frvbf
, mbtohe
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27811 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27812 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27813 int UNUSED written
= 0 ;
27814 IADDR UNUSED pc
= abuf
-> addr
;
27815 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27819 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
27820 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
27821 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27824 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27825 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27826 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27828 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 4 , 1 ))) {
27829 frvbf_media_register_not_aligned ( current_cpu
);
27833 UHI opval
= GET_H_FR_3 ( ADDSI ( FLD ( f_FRj
), 0 ));
27834 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27835 written
|= ( 1 << 10 );
27836 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27839 UHI opval
= GET_H_FR_3 ( ADDSI ( FLD ( f_FRj
), 0 ));
27840 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27841 written
|= ( 1 << 14 );
27842 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27845 UHI opval
= GET_H_FR_2 ( ADDSI ( FLD ( f_FRj
), 0 ));
27846 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
27847 written
|= ( 1 << 11 );
27848 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27851 UHI opval
= GET_H_FR_2 ( ADDSI ( FLD ( f_FRj
), 0 ));
27852 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
27853 written
|= ( 1 << 15 );
27854 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27857 UHI opval
= GET_H_FR_1 ( ADDSI ( FLD ( f_FRj
), 0 ));
27858 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 2 ), opval
);
27859 written
|= ( 1 << 12 );
27860 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27863 UHI opval
= GET_H_FR_1 ( ADDSI ( FLD ( f_FRj
), 0 ));
27864 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 2 ), opval
);
27865 written
|= ( 1 << 16 );
27866 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27869 UHI opval
= GET_H_FR_0 ( ADDSI ( FLD ( f_FRj
), 0 ));
27870 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 3 ), opval
);
27871 written
|= ( 1 << 13 );
27872 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27875 UHI opval
= GET_H_FR_0 ( ADDSI ( FLD ( f_FRj
), 0 ));
27876 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 3 ), opval
);
27877 written
|= ( 1 << 17 );
27878 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27884 abuf
-> written
= written
;
27889 /* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27892 SEM_FN_NAME ( frvbf
, cmbtohe
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27894 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27895 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27896 int UNUSED written
= 0 ;
27897 IADDR UNUSED pc
= abuf
-> addr
;
27898 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27902 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
27903 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
27904 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27907 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27908 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27909 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27911 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 4 , 1 ))) {
27912 frvbf_media_register_not_aligned ( current_cpu
);
27914 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
27917 UHI opval
= GET_H_FR_3 ( ADDSI ( FLD ( f_FRj
), 0 ));
27918 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27919 written
|= ( 1 << 12 );
27920 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27923 UHI opval
= GET_H_FR_3 ( ADDSI ( FLD ( f_FRj
), 0 ));
27924 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 0 ), opval
);
27925 written
|= ( 1 << 16 );
27926 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27929 UHI opval
= GET_H_FR_2 ( ADDSI ( FLD ( f_FRj
), 0 ));
27930 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
27931 written
|= ( 1 << 13 );
27932 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27935 UHI opval
= GET_H_FR_2 ( ADDSI ( FLD ( f_FRj
), 0 ));
27936 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 1 ), opval
);
27937 written
|= ( 1 << 17 );
27938 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27941 UHI opval
= GET_H_FR_1 ( ADDSI ( FLD ( f_FRj
), 0 ));
27942 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 2 ), opval
);
27943 written
|= ( 1 << 14 );
27944 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27947 UHI opval
= GET_H_FR_1 ( ADDSI ( FLD ( f_FRj
), 0 ));
27948 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 2 ), opval
);
27949 written
|= ( 1 << 18 );
27950 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27953 UHI opval
= GET_H_FR_0 ( ADDSI ( FLD ( f_FRj
), 0 ));
27954 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, ADDSI ( FLD ( f_FRk
), 3 ), opval
);
27955 written
|= ( 1 << 15 );
27956 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27959 UHI opval
= GET_H_FR_0 ( ADDSI ( FLD ( f_FRj
), 0 ));
27960 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, ADDSI ( FLD ( f_FRk
), 3 ), opval
);
27961 written
|= ( 1 << 19 );
27962 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27969 abuf
-> written
= written
;
27974 /* mnop: mnop$pack */
27977 SEM_FN_NAME ( frvbf
, mnop
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27979 #define FLD(f) abuf->fields.sfmt_empty.f
27980 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27981 int UNUSED written
= 0 ;
27982 IADDR UNUSED pc
= abuf
-> addr
;
27983 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27985 (( void ) 0 ); /*nop*/
27991 /* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27994 SEM_FN_NAME ( frvbf
, mclracc_0
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27996 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27997 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27998 int UNUSED written
= 0 ;
27999 IADDR UNUSED pc
= abuf
-> addr
;
28000 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28002 frvbf_clear_accumulators ( current_cpu
, FLD ( f_ACC40Sk
), 0 );
28008 /* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
28011 SEM_FN_NAME ( frvbf
, mclracc_1
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28013 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
28014 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28015 int UNUSED written
= 0 ;
28016 IADDR UNUSED pc
= abuf
-> addr
;
28017 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28019 frvbf_clear_accumulators ( current_cpu
, FLD ( f_ACC40Sk
), 1 );
28025 /* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
28028 SEM_FN_NAME ( frvbf
, mrdacc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28030 #define FLD(f) abuf->fields.sfmt_mcuti.f
28031 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28032 int UNUSED written
= 0 ;
28033 IADDR UNUSED pc
= abuf
-> addr
;
28034 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28037 SI opval
= GET_H_ACC40S ( FLD ( f_ACC40Si
));
28038 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
28039 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
28046 /* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
28049 SEM_FN_NAME ( frvbf
, mrdaccg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28051 #define FLD(f) abuf->fields.sfmt_mrdaccg.f
28052 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28053 int UNUSED written
= 0 ;
28054 IADDR UNUSED pc
= abuf
-> addr
;
28055 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28058 SI opval
= GET_H_ACCG ( FLD ( f_ACCGi
));
28059 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
28060 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
28067 /* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
28070 SEM_FN_NAME ( frvbf
, mwtacc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28072 #define FLD(f) abuf->fields.sfmt_cmmachs.f
28073 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28074 int UNUSED written
= 0 ;
28075 IADDR UNUSED pc
= abuf
-> addr
;
28076 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28079 DI opval
= ORDI ( ANDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MAKEDI ( 0xffffffff , 0 )), GET_H_FR_INT ( FLD ( f_FRi
)));
28080 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
28081 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
28088 /* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
28091 SEM_FN_NAME ( frvbf
, mwtaccg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28093 #define FLD(f) abuf->fields.sfmt_mwtaccg.f
28094 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28095 int UNUSED written
= 0 ;
28096 IADDR UNUSED pc
= abuf
-> addr
;
28097 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28100 frv_ref_SI ( GET_H_ACCG ( FLD ( f_ACCGk
)));
28102 USI opval
= GET_H_FR_INT ( FLD ( f_FRi
));
28103 sim_queue_fn_si_write ( current_cpu
, frvbf_h_accg_set
, FLD ( f_ACCGk
), opval
);
28104 CGEN_TRACE_RESULT ( current_cpu
, abuf
, "accg" , 'x' , opval
);
28112 /* mcop1: mcop1$pack $FRi,$FRj,$FRk */
28115 SEM_FN_NAME ( frvbf
, mcop1
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28117 #define FLD(f) abuf->fields.sfmt_empty.f
28118 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28119 int UNUSED written
= 0 ;
28120 IADDR UNUSED pc
= abuf
-> addr
;
28121 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28123 frvbf_media_cop ( current_cpu
, 1 );
28129 /* mcop2: mcop2$pack $FRi,$FRj,$FRk */
28132 SEM_FN_NAME ( frvbf
, mcop2
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28134 #define FLD(f) abuf->fields.sfmt_empty.f
28135 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28136 int UNUSED written
= 0 ;
28137 IADDR UNUSED pc
= abuf
-> addr
;
28138 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28140 frvbf_media_cop ( current_cpu
, 2 );
28146 /* fnop: fnop$pack */
28149 SEM_FN_NAME ( frvbf
, fnop
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28151 #define FLD(f) abuf->fields.sfmt_empty.f
28152 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28153 int UNUSED written
= 0 ;
28154 IADDR UNUSED pc
= abuf
-> addr
;
28155 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28157 (( void ) 0 ); /*nop*/
28163 /* Table of all semantic fns. */
28165 static const struct sem_fn_desc sem_fns
[] = {
28166 { FRVBF_INSN_X_INVALID
, SEM_FN_NAME ( frvbf
, x_invalid
) },
28167 { FRVBF_INSN_X_AFTER
, SEM_FN_NAME ( frvbf
, x_after
) },
28168 { FRVBF_INSN_X_BEFORE
, SEM_FN_NAME ( frvbf
, x_before
) },
28169 { FRVBF_INSN_X_CTI_CHAIN
, SEM_FN_NAME ( frvbf
, x_cti_chain
) },
28170 { FRVBF_INSN_X_CHAIN
, SEM_FN_NAME ( frvbf
, x_chain
) },
28171 { FRVBF_INSN_X_BEGIN
, SEM_FN_NAME ( frvbf
, x_begin
) },
28172 { FRVBF_INSN_ADD
, SEM_FN_NAME ( frvbf
, add
) },
28173 { FRVBF_INSN_SUB
, SEM_FN_NAME ( frvbf
, sub
) },
28174 { FRVBF_INSN_AND
, SEM_FN_NAME ( frvbf
, and ) },
28175 { FRVBF_INSN_OR
, SEM_FN_NAME ( frvbf
, or ) },
28176 { FRVBF_INSN_XOR
, SEM_FN_NAME ( frvbf
, xor ) },
28177 { FRVBF_INSN_NOT
, SEM_FN_NAME ( frvbf
, not ) },
28178 { FRVBF_INSN_SDIV
, SEM_FN_NAME ( frvbf
, sdiv
) },
28179 { FRVBF_INSN_NSDIV
, SEM_FN_NAME ( frvbf
, nsdiv
) },
28180 { FRVBF_INSN_UDIV
, SEM_FN_NAME ( frvbf
, udiv
) },
28181 { FRVBF_INSN_NUDIV
, SEM_FN_NAME ( frvbf
, nudiv
) },
28182 { FRVBF_INSN_SMUL
, SEM_FN_NAME ( frvbf
, smul
) },
28183 { FRVBF_INSN_UMUL
, SEM_FN_NAME ( frvbf
, umul
) },
28184 { FRVBF_INSN_SMU
, SEM_FN_NAME ( frvbf
, smu
) },
28185 { FRVBF_INSN_SMASS
, SEM_FN_NAME ( frvbf
, smass
) },
28186 { FRVBF_INSN_SMSSS
, SEM_FN_NAME ( frvbf
, smsss
) },
28187 { FRVBF_INSN_SLL
, SEM_FN_NAME ( frvbf
, sll
) },
28188 { FRVBF_INSN_SRL
, SEM_FN_NAME ( frvbf
, srl
) },
28189 { FRVBF_INSN_SRA
, SEM_FN_NAME ( frvbf
, sra
) },
28190 { FRVBF_INSN_SLASS
, SEM_FN_NAME ( frvbf
, slass
) },
28191 { FRVBF_INSN_SCUTSS
, SEM_FN_NAME ( frvbf
, scutss
) },
28192 { FRVBF_INSN_SCAN
, SEM_FN_NAME ( frvbf
, scan
) },
28193 { FRVBF_INSN_CADD
, SEM_FN_NAME ( frvbf
, cadd
) },
28194 { FRVBF_INSN_CSUB
, SEM_FN_NAME ( frvbf
, csub
) },
28195 { FRVBF_INSN_CAND
, SEM_FN_NAME ( frvbf
, cand
) },
28196 { FRVBF_INSN_COR
, SEM_FN_NAME ( frvbf
, cor
) },
28197 { FRVBF_INSN_CXOR
, SEM_FN_NAME ( frvbf
, cxor
) },
28198 { FRVBF_INSN_CNOT
, SEM_FN_NAME ( frvbf
, cnot
) },
28199 { FRVBF_INSN_CSMUL
, SEM_FN_NAME ( frvbf
, csmul
) },
28200 { FRVBF_INSN_CSDIV
, SEM_FN_NAME ( frvbf
, csdiv
) },
28201 { FRVBF_INSN_CUDIV
, SEM_FN_NAME ( frvbf
, cudiv
) },
28202 { FRVBF_INSN_CSLL
, SEM_FN_NAME ( frvbf
, csll
) },
28203 { FRVBF_INSN_CSRL
, SEM_FN_NAME ( frvbf
, csrl
) },
28204 { FRVBF_INSN_CSRA
, SEM_FN_NAME ( frvbf
, csra
) },
28205 { FRVBF_INSN_CSCAN
, SEM_FN_NAME ( frvbf
, cscan
) },
28206 { FRVBF_INSN_ADDCC
, SEM_FN_NAME ( frvbf
, addcc
) },
28207 { FRVBF_INSN_SUBCC
, SEM_FN_NAME ( frvbf
, subcc
) },
28208 { FRVBF_INSN_ANDCC
, SEM_FN_NAME ( frvbf
, andcc
) },
28209 { FRVBF_INSN_ORCC
, SEM_FN_NAME ( frvbf
, orcc
) },
28210 { FRVBF_INSN_XORCC
, SEM_FN_NAME ( frvbf
, xorcc
) },
28211 { FRVBF_INSN_SLLCC
, SEM_FN_NAME ( frvbf
, sllcc
) },
28212 { FRVBF_INSN_SRLCC
, SEM_FN_NAME ( frvbf
, srlcc
) },
28213 { FRVBF_INSN_SRACC
, SEM_FN_NAME ( frvbf
, sracc
) },
28214 { FRVBF_INSN_SMULCC
, SEM_FN_NAME ( frvbf
, smulcc
) },
28215 { FRVBF_INSN_UMULCC
, SEM_FN_NAME ( frvbf
, umulcc
) },
28216 { FRVBF_INSN_CADDCC
, SEM_FN_NAME ( frvbf
, caddcc
) },
28217 { FRVBF_INSN_CSUBCC
, SEM_FN_NAME ( frvbf
, csubcc
) },
28218 { FRVBF_INSN_CSMULCC
, SEM_FN_NAME ( frvbf
, csmulcc
) },
28219 { FRVBF_INSN_CANDCC
, SEM_FN_NAME ( frvbf
, candcc
) },
28220 { FRVBF_INSN_CORCC
, SEM_FN_NAME ( frvbf
, corcc
) },
28221 { FRVBF_INSN_CXORCC
, SEM_FN_NAME ( frvbf
, cxorcc
) },
28222 { FRVBF_INSN_CSLLCC
, SEM_FN_NAME ( frvbf
, csllcc
) },
28223 { FRVBF_INSN_CSRLCC
, SEM_FN_NAME ( frvbf
, csrlcc
) },
28224 { FRVBF_INSN_CSRACC
, SEM_FN_NAME ( frvbf
, csracc
) },
28225 { FRVBF_INSN_ADDX
, SEM_FN_NAME ( frvbf
, addx
) },
28226 { FRVBF_INSN_SUBX
, SEM_FN_NAME ( frvbf
, subx
) },
28227 { FRVBF_INSN_ADDXCC
, SEM_FN_NAME ( frvbf
, addxcc
) },
28228 { FRVBF_INSN_SUBXCC
, SEM_FN_NAME ( frvbf
, subxcc
) },
28229 { FRVBF_INSN_ADDSS
, SEM_FN_NAME ( frvbf
, addss
) },
28230 { FRVBF_INSN_SUBSS
, SEM_FN_NAME ( frvbf
, subss
) },
28231 { FRVBF_INSN_ADDI
, SEM_FN_NAME ( frvbf
, addi
) },
28232 { FRVBF_INSN_SUBI
, SEM_FN_NAME ( frvbf
, subi
) },
28233 { FRVBF_INSN_ANDI
, SEM_FN_NAME ( frvbf
, andi
) },
28234 { FRVBF_INSN_ORI
, SEM_FN_NAME ( frvbf
, ori
) },
28235 { FRVBF_INSN_XORI
, SEM_FN_NAME ( frvbf
, xori
) },
28236 { FRVBF_INSN_SDIVI
, SEM_FN_NAME ( frvbf
, sdivi
) },
28237 { FRVBF_INSN_NSDIVI
, SEM_FN_NAME ( frvbf
, nsdivi
) },
28238 { FRVBF_INSN_UDIVI
, SEM_FN_NAME ( frvbf
, udivi
) },
28239 { FRVBF_INSN_NUDIVI
, SEM_FN_NAME ( frvbf
, nudivi
) },
28240 { FRVBF_INSN_SMULI
, SEM_FN_NAME ( frvbf
, smuli
) },
28241 { FRVBF_INSN_UMULI
, SEM_FN_NAME ( frvbf
, umuli
) },
28242 { FRVBF_INSN_SLLI
, SEM_FN_NAME ( frvbf
, slli
) },
28243 { FRVBF_INSN_SRLI
, SEM_FN_NAME ( frvbf
, srli
) },
28244 { FRVBF_INSN_SRAI
, SEM_FN_NAME ( frvbf
, srai
) },
28245 { FRVBF_INSN_SCANI
, SEM_FN_NAME ( frvbf
, scani
) },
28246 { FRVBF_INSN_ADDICC
, SEM_FN_NAME ( frvbf
, addicc
) },
28247 { FRVBF_INSN_SUBICC
, SEM_FN_NAME ( frvbf
, subicc
) },
28248 { FRVBF_INSN_ANDICC
, SEM_FN_NAME ( frvbf
, andicc
) },
28249 { FRVBF_INSN_ORICC
, SEM_FN_NAME ( frvbf
, oricc
) },
28250 { FRVBF_INSN_XORICC
, SEM_FN_NAME ( frvbf
, xoricc
) },
28251 { FRVBF_INSN_SMULICC
, SEM_FN_NAME ( frvbf
, smulicc
) },
28252 { FRVBF_INSN_UMULICC
, SEM_FN_NAME ( frvbf
, umulicc
) },
28253 { FRVBF_INSN_SLLICC
, SEM_FN_NAME ( frvbf
, sllicc
) },
28254 { FRVBF_INSN_SRLICC
, SEM_FN_NAME ( frvbf
, srlicc
) },
28255 { FRVBF_INSN_SRAICC
, SEM_FN_NAME ( frvbf
, sraicc
) },
28256 { FRVBF_INSN_ADDXI
, SEM_FN_NAME ( frvbf
, addxi
) },
28257 { FRVBF_INSN_SUBXI
, SEM_FN_NAME ( frvbf
, subxi
) },
28258 { FRVBF_INSN_ADDXICC
, SEM_FN_NAME ( frvbf
, addxicc
) },
28259 { FRVBF_INSN_SUBXICC
, SEM_FN_NAME ( frvbf
, subxicc
) },
28260 { FRVBF_INSN_CMPB
, SEM_FN_NAME ( frvbf
, cmpb
) },
28261 { FRVBF_INSN_CMPBA
, SEM_FN_NAME ( frvbf
, cmpba
) },
28262 { FRVBF_INSN_SETLO
, SEM_FN_NAME ( frvbf
, setlo
) },
28263 { FRVBF_INSN_SETHI
, SEM_FN_NAME ( frvbf
, sethi
) },
28264 { FRVBF_INSN_SETLOS
, SEM_FN_NAME ( frvbf
, setlos
) },
28265 { FRVBF_INSN_LDSB
, SEM_FN_NAME ( frvbf
, ldsb
) },
28266 { FRVBF_INSN_LDUB
, SEM_FN_NAME ( frvbf
, ldub
) },
28267 { FRVBF_INSN_LDSH
, SEM_FN_NAME ( frvbf
, ldsh
) },
28268 { FRVBF_INSN_LDUH
, SEM_FN_NAME ( frvbf
, lduh
) },
28269 { FRVBF_INSN_LD
, SEM_FN_NAME ( frvbf
, ld
) },
28270 { FRVBF_INSN_LDBF
, SEM_FN_NAME ( frvbf
, ldbf
) },
28271 { FRVBF_INSN_LDHF
, SEM_FN_NAME ( frvbf
, ldhf
) },
28272 { FRVBF_INSN_LDF
, SEM_FN_NAME ( frvbf
, ldf
) },
28273 { FRVBF_INSN_LDC
, SEM_FN_NAME ( frvbf
, ldc
) },
28274 { FRVBF_INSN_NLDSB
, SEM_FN_NAME ( frvbf
, nldsb
) },
28275 { FRVBF_INSN_NLDUB
, SEM_FN_NAME ( frvbf
, nldub
) },
28276 { FRVBF_INSN_NLDSH
, SEM_FN_NAME ( frvbf
, nldsh
) },
28277 { FRVBF_INSN_NLDUH
, SEM_FN_NAME ( frvbf
, nlduh
) },
28278 { FRVBF_INSN_NLD
, SEM_FN_NAME ( frvbf
, nld
) },
28279 { FRVBF_INSN_NLDBF
, SEM_FN_NAME ( frvbf
, nldbf
) },
28280 { FRVBF_INSN_NLDHF
, SEM_FN_NAME ( frvbf
, nldhf
) },
28281 { FRVBF_INSN_NLDF
, SEM_FN_NAME ( frvbf
, nldf
) },
28282 { FRVBF_INSN_LDD
, SEM_FN_NAME ( frvbf
, ldd
) },
28283 { FRVBF_INSN_LDDF
, SEM_FN_NAME ( frvbf
, lddf
) },
28284 { FRVBF_INSN_LDDC
, SEM_FN_NAME ( frvbf
, lddc
) },
28285 { FRVBF_INSN_NLDD
, SEM_FN_NAME ( frvbf
, nldd
) },
28286 { FRVBF_INSN_NLDDF
, SEM_FN_NAME ( frvbf
, nlddf
) },
28287 { FRVBF_INSN_LDQ
, SEM_FN_NAME ( frvbf
, ldq
) },
28288 { FRVBF_INSN_LDQF
, SEM_FN_NAME ( frvbf
, ldqf
) },
28289 { FRVBF_INSN_LDQC
, SEM_FN_NAME ( frvbf
, ldqc
) },
28290 { FRVBF_INSN_NLDQ
, SEM_FN_NAME ( frvbf
, nldq
) },
28291 { FRVBF_INSN_NLDQF
, SEM_FN_NAME ( frvbf
, nldqf
) },
28292 { FRVBF_INSN_LDSBU
, SEM_FN_NAME ( frvbf
, ldsbu
) },
28293 { FRVBF_INSN_LDUBU
, SEM_FN_NAME ( frvbf
, ldubu
) },
28294 { FRVBF_INSN_LDSHU
, SEM_FN_NAME ( frvbf
, ldshu
) },
28295 { FRVBF_INSN_LDUHU
, SEM_FN_NAME ( frvbf
, lduhu
) },
28296 { FRVBF_INSN_LDU
, SEM_FN_NAME ( frvbf
, ldu
) },
28297 { FRVBF_INSN_NLDSBU
, SEM_FN_NAME ( frvbf
, nldsbu
) },
28298 { FRVBF_INSN_NLDUBU
, SEM_FN_NAME ( frvbf
, nldubu
) },
28299 { FRVBF_INSN_NLDSHU
, SEM_FN_NAME ( frvbf
, nldshu
) },
28300 { FRVBF_INSN_NLDUHU
, SEM_FN_NAME ( frvbf
, nlduhu
) },
28301 { FRVBF_INSN_NLDU
, SEM_FN_NAME ( frvbf
, nldu
) },
28302 { FRVBF_INSN_LDBFU
, SEM_FN_NAME ( frvbf
, ldbfu
) },
28303 { FRVBF_INSN_LDHFU
, SEM_FN_NAME ( frvbf
, ldhfu
) },
28304 { FRVBF_INSN_LDFU
, SEM_FN_NAME ( frvbf
, ldfu
) },
28305 { FRVBF_INSN_LDCU
, SEM_FN_NAME ( frvbf
, ldcu
) },
28306 { FRVBF_INSN_NLDBFU
, SEM_FN_NAME ( frvbf
, nldbfu
) },
28307 { FRVBF_INSN_NLDHFU
, SEM_FN_NAME ( frvbf
, nldhfu
) },
28308 { FRVBF_INSN_NLDFU
, SEM_FN_NAME ( frvbf
, nldfu
) },
28309 { FRVBF_INSN_LDDU
, SEM_FN_NAME ( frvbf
, lddu
) },
28310 { FRVBF_INSN_NLDDU
, SEM_FN_NAME ( frvbf
, nlddu
) },
28311 { FRVBF_INSN_LDDFU
, SEM_FN_NAME ( frvbf
, lddfu
) },
28312 { FRVBF_INSN_LDDCU
, SEM_FN_NAME ( frvbf
, lddcu
) },
28313 { FRVBF_INSN_NLDDFU
, SEM_FN_NAME ( frvbf
, nlddfu
) },
28314 { FRVBF_INSN_LDQU
, SEM_FN_NAME ( frvbf
, ldqu
) },
28315 { FRVBF_INSN_NLDQU
, SEM_FN_NAME ( frvbf
, nldqu
) },
28316 { FRVBF_INSN_LDQFU
, SEM_FN_NAME ( frvbf
, ldqfu
) },
28317 { FRVBF_INSN_LDQCU
, SEM_FN_NAME ( frvbf
, ldqcu
) },
28318 { FRVBF_INSN_NLDQFU
, SEM_FN_NAME ( frvbf
, nldqfu
) },
28319 { FRVBF_INSN_LDSBI
, SEM_FN_NAME ( frvbf
, ldsbi
) },
28320 { FRVBF_INSN_LDSHI
, SEM_FN_NAME ( frvbf
, ldshi
) },
28321 { FRVBF_INSN_LDI
, SEM_FN_NAME ( frvbf
, ldi
) },
28322 { FRVBF_INSN_LDUBI
, SEM_FN_NAME ( frvbf
, ldubi
) },
28323 { FRVBF_INSN_LDUHI
, SEM_FN_NAME ( frvbf
, lduhi
) },
28324 { FRVBF_INSN_LDBFI
, SEM_FN_NAME ( frvbf
, ldbfi
) },
28325 { FRVBF_INSN_LDHFI
, SEM_FN_NAME ( frvbf
, ldhfi
) },
28326 { FRVBF_INSN_LDFI
, SEM_FN_NAME ( frvbf
, ldfi
) },
28327 { FRVBF_INSN_NLDSBI
, SEM_FN_NAME ( frvbf
, nldsbi
) },
28328 { FRVBF_INSN_NLDUBI
, SEM_FN_NAME ( frvbf
, nldubi
) },
28329 { FRVBF_INSN_NLDSHI
, SEM_FN_NAME ( frvbf
, nldshi
) },
28330 { FRVBF_INSN_NLDUHI
, SEM_FN_NAME ( frvbf
, nlduhi
) },
28331 { FRVBF_INSN_NLDI
, SEM_FN_NAME ( frvbf
, nldi
) },
28332 { FRVBF_INSN_NLDBFI
, SEM_FN_NAME ( frvbf
, nldbfi
) },
28333 { FRVBF_INSN_NLDHFI
, SEM_FN_NAME ( frvbf
, nldhfi
) },
28334 { FRVBF_INSN_NLDFI
, SEM_FN_NAME ( frvbf
, nldfi
) },
28335 { FRVBF_INSN_LDDI
, SEM_FN_NAME ( frvbf
, lddi
) },
28336 { FRVBF_INSN_LDDFI
, SEM_FN_NAME ( frvbf
, lddfi
) },
28337 { FRVBF_INSN_NLDDI
, SEM_FN_NAME ( frvbf
, nlddi
) },
28338 { FRVBF_INSN_NLDDFI
, SEM_FN_NAME ( frvbf
, nlddfi
) },
28339 { FRVBF_INSN_LDQI
, SEM_FN_NAME ( frvbf
, ldqi
) },
28340 { FRVBF_INSN_LDQFI
, SEM_FN_NAME ( frvbf
, ldqfi
) },
28341 { FRVBF_INSN_NLDQFI
, SEM_FN_NAME ( frvbf
, nldqfi
) },
28342 { FRVBF_INSN_STB
, SEM_FN_NAME ( frvbf
, stb
) },
28343 { FRVBF_INSN_STH
, SEM_FN_NAME ( frvbf
, sth
) },
28344 { FRVBF_INSN_ST
, SEM_FN_NAME ( frvbf
, st
) },
28345 { FRVBF_INSN_STBF
, SEM_FN_NAME ( frvbf
, stbf
) },
28346 { FRVBF_INSN_STHF
, SEM_FN_NAME ( frvbf
, sthf
) },
28347 { FRVBF_INSN_STF
, SEM_FN_NAME ( frvbf
, stf
) },
28348 { FRVBF_INSN_STC
, SEM_FN_NAME ( frvbf
, stc
) },
28349 { FRVBF_INSN_STD
, SEM_FN_NAME ( frvbf
, std
) },
28350 { FRVBF_INSN_STDF
, SEM_FN_NAME ( frvbf
, stdf
) },
28351 { FRVBF_INSN_STDC
, SEM_FN_NAME ( frvbf
, stdc
) },
28352 { FRVBF_INSN_STQ
, SEM_FN_NAME ( frvbf
, stq
) },
28353 { FRVBF_INSN_STQF
, SEM_FN_NAME ( frvbf
, stqf
) },
28354 { FRVBF_INSN_STQC
, SEM_FN_NAME ( frvbf
, stqc
) },
28355 { FRVBF_INSN_STBU
, SEM_FN_NAME ( frvbf
, stbu
) },
28356 { FRVBF_INSN_STHU
, SEM_FN_NAME ( frvbf
, sthu
) },
28357 { FRVBF_INSN_STU
, SEM_FN_NAME ( frvbf
, stu
) },
28358 { FRVBF_INSN_STBFU
, SEM_FN_NAME ( frvbf
, stbfu
) },
28359 { FRVBF_INSN_STHFU
, SEM_FN_NAME ( frvbf
, sthfu
) },
28360 { FRVBF_INSN_STFU
, SEM_FN_NAME ( frvbf
, stfu
) },
28361 { FRVBF_INSN_STCU
, SEM_FN_NAME ( frvbf
, stcu
) },
28362 { FRVBF_INSN_STDU
, SEM_FN_NAME ( frvbf
, stdu
) },
28363 { FRVBF_INSN_STDFU
, SEM_FN_NAME ( frvbf
, stdfu
) },
28364 { FRVBF_INSN_STDCU
, SEM_FN_NAME ( frvbf
, stdcu
) },
28365 { FRVBF_INSN_STQU
, SEM_FN_NAME ( frvbf
, stqu
) },
28366 { FRVBF_INSN_STQFU
, SEM_FN_NAME ( frvbf
, stqfu
) },
28367 { FRVBF_INSN_STQCU
, SEM_FN_NAME ( frvbf
, stqcu
) },
28368 { FRVBF_INSN_CLDSB
, SEM_FN_NAME ( frvbf
, cldsb
) },
28369 { FRVBF_INSN_CLDUB
, SEM_FN_NAME ( frvbf
, cldub
) },
28370 { FRVBF_INSN_CLDSH
, SEM_FN_NAME ( frvbf
, cldsh
) },
28371 { FRVBF_INSN_CLDUH
, SEM_FN_NAME ( frvbf
, clduh
) },
28372 { FRVBF_INSN_CLD
, SEM_FN_NAME ( frvbf
, cld
) },
28373 { FRVBF_INSN_CLDBF
, SEM_FN_NAME ( frvbf
, cldbf
) },
28374 { FRVBF_INSN_CLDHF
, SEM_FN_NAME ( frvbf
, cldhf
) },
28375 { FRVBF_INSN_CLDF
, SEM_FN_NAME ( frvbf
, cldf
) },
28376 { FRVBF_INSN_CLDD
, SEM_FN_NAME ( frvbf
, cldd
) },
28377 { FRVBF_INSN_CLDDF
, SEM_FN_NAME ( frvbf
, clddf
) },
28378 { FRVBF_INSN_CLDQ
, SEM_FN_NAME ( frvbf
, cldq
) },
28379 { FRVBF_INSN_CLDSBU
, SEM_FN_NAME ( frvbf
, cldsbu
) },
28380 { FRVBF_INSN_CLDUBU
, SEM_FN_NAME ( frvbf
, cldubu
) },
28381 { FRVBF_INSN_CLDSHU
, SEM_FN_NAME ( frvbf
, cldshu
) },
28382 { FRVBF_INSN_CLDUHU
, SEM_FN_NAME ( frvbf
, clduhu
) },
28383 { FRVBF_INSN_CLDU
, SEM_FN_NAME ( frvbf
, cldu
) },
28384 { FRVBF_INSN_CLDBFU
, SEM_FN_NAME ( frvbf
, cldbfu
) },
28385 { FRVBF_INSN_CLDHFU
, SEM_FN_NAME ( frvbf
, cldhfu
) },
28386 { FRVBF_INSN_CLDFU
, SEM_FN_NAME ( frvbf
, cldfu
) },
28387 { FRVBF_INSN_CLDDU
, SEM_FN_NAME ( frvbf
, clddu
) },
28388 { FRVBF_INSN_CLDDFU
, SEM_FN_NAME ( frvbf
, clddfu
) },
28389 { FRVBF_INSN_CLDQU
, SEM_FN_NAME ( frvbf
, cldqu
) },
28390 { FRVBF_INSN_CSTB
, SEM_FN_NAME ( frvbf
, cstb
) },
28391 { FRVBF_INSN_CSTH
, SEM_FN_NAME ( frvbf
, csth
) },
28392 { FRVBF_INSN_CST
, SEM_FN_NAME ( frvbf
, cst
) },
28393 { FRVBF_INSN_CSTBF
, SEM_FN_NAME ( frvbf
, cstbf
) },
28394 { FRVBF_INSN_CSTHF
, SEM_FN_NAME ( frvbf
, csthf
) },
28395 { FRVBF_INSN_CSTF
, SEM_FN_NAME ( frvbf
, cstf
) },
28396 { FRVBF_INSN_CSTD
, SEM_FN_NAME ( frvbf
, cstd
) },
28397 { FRVBF_INSN_CSTDF
, SEM_FN_NAME ( frvbf
, cstdf
) },
28398 { FRVBF_INSN_CSTQ
, SEM_FN_NAME ( frvbf
, cstq
) },
28399 { FRVBF_INSN_CSTBU
, SEM_FN_NAME ( frvbf
, cstbu
) },
28400 { FRVBF_INSN_CSTHU
, SEM_FN_NAME ( frvbf
, csthu
) },
28401 { FRVBF_INSN_CSTU
, SEM_FN_NAME ( frvbf
, cstu
) },
28402 { FRVBF_INSN_CSTBFU
, SEM_FN_NAME ( frvbf
, cstbfu
) },
28403 { FRVBF_INSN_CSTHFU
, SEM_FN_NAME ( frvbf
, csthfu
) },
28404 { FRVBF_INSN_CSTFU
, SEM_FN_NAME ( frvbf
, cstfu
) },
28405 { FRVBF_INSN_CSTDU
, SEM_FN_NAME ( frvbf
, cstdu
) },
28406 { FRVBF_INSN_CSTDFU
, SEM_FN_NAME ( frvbf
, cstdfu
) },
28407 { FRVBF_INSN_STBI
, SEM_FN_NAME ( frvbf
, stbi
) },
28408 { FRVBF_INSN_STHI
, SEM_FN_NAME ( frvbf
, sthi
) },
28409 { FRVBF_INSN_STI
, SEM_FN_NAME ( frvbf
, sti
) },
28410 { FRVBF_INSN_STBFI
, SEM_FN_NAME ( frvbf
, stbfi
) },
28411 { FRVBF_INSN_STHFI
, SEM_FN_NAME ( frvbf
, sthfi
) },
28412 { FRVBF_INSN_STFI
, SEM_FN_NAME ( frvbf
, stfi
) },
28413 { FRVBF_INSN_STDI
, SEM_FN_NAME ( frvbf
, stdi
) },
28414 { FRVBF_INSN_STDFI
, SEM_FN_NAME ( frvbf
, stdfi
) },
28415 { FRVBF_INSN_STQI
, SEM_FN_NAME ( frvbf
, stqi
) },
28416 { FRVBF_INSN_STQFI
, SEM_FN_NAME ( frvbf
, stqfi
) },
28417 { FRVBF_INSN_SWAP
, SEM_FN_NAME ( frvbf
, swap
) },
28418 { FRVBF_INSN_SWAPI
, SEM_FN_NAME ( frvbf
, swapi
) },
28419 { FRVBF_INSN_CSWAP
, SEM_FN_NAME ( frvbf
, cswap
) },
28420 { FRVBF_INSN_MOVGF
, SEM_FN_NAME ( frvbf
, movgf
) },
28421 { FRVBF_INSN_MOVFG
, SEM_FN_NAME ( frvbf
, movfg
) },
28422 { FRVBF_INSN_MOVGFD
, SEM_FN_NAME ( frvbf
, movgfd
) },
28423 { FRVBF_INSN_MOVFGD
, SEM_FN_NAME ( frvbf
, movfgd
) },
28424 { FRVBF_INSN_MOVGFQ
, SEM_FN_NAME ( frvbf
, movgfq
) },
28425 { FRVBF_INSN_MOVFGQ
, SEM_FN_NAME ( frvbf
, movfgq
) },
28426 { FRVBF_INSN_CMOVGF
, SEM_FN_NAME ( frvbf
, cmovgf
) },
28427 { FRVBF_INSN_CMOVFG
, SEM_FN_NAME ( frvbf
, cmovfg
) },
28428 { FRVBF_INSN_CMOVGFD
, SEM_FN_NAME ( frvbf
, cmovgfd
) },
28429 { FRVBF_INSN_CMOVFGD
, SEM_FN_NAME ( frvbf
, cmovfgd
) },
28430 { FRVBF_INSN_MOVGS
, SEM_FN_NAME ( frvbf
, movgs
) },
28431 { FRVBF_INSN_MOVSG
, SEM_FN_NAME ( frvbf
, movsg
) },
28432 { FRVBF_INSN_BRA
, SEM_FN_NAME ( frvbf
, bra
) },
28433 { FRVBF_INSN_BNO
, SEM_FN_NAME ( frvbf
, bno
) },
28434 { FRVBF_INSN_BEQ
, SEM_FN_NAME ( frvbf
, beq
) },
28435 { FRVBF_INSN_BNE
, SEM_FN_NAME ( frvbf
, bne
) },
28436 { FRVBF_INSN_BLE
, SEM_FN_NAME ( frvbf
, ble
) },
28437 { FRVBF_INSN_BGT
, SEM_FN_NAME ( frvbf
, bgt
) },
28438 { FRVBF_INSN_BLT
, SEM_FN_NAME ( frvbf
, blt
) },
28439 { FRVBF_INSN_BGE
, SEM_FN_NAME ( frvbf
, bge
) },
28440 { FRVBF_INSN_BLS
, SEM_FN_NAME ( frvbf
, bls
) },
28441 { FRVBF_INSN_BHI
, SEM_FN_NAME ( frvbf
, bhi
) },
28442 { FRVBF_INSN_BC
, SEM_FN_NAME ( frvbf
, bc
) },
28443 { FRVBF_INSN_BNC
, SEM_FN_NAME ( frvbf
, bnc
) },
28444 { FRVBF_INSN_BN
, SEM_FN_NAME ( frvbf
, bn
) },
28445 { FRVBF_INSN_BP
, SEM_FN_NAME ( frvbf
, bp
) },
28446 { FRVBF_INSN_BV
, SEM_FN_NAME ( frvbf
, bv
) },
28447 { FRVBF_INSN_BNV
, SEM_FN_NAME ( frvbf
, bnv
) },
28448 { FRVBF_INSN_FBRA
, SEM_FN_NAME ( frvbf
, fbra
) },
28449 { FRVBF_INSN_FBNO
, SEM_FN_NAME ( frvbf
, fbno
) },
28450 { FRVBF_INSN_FBNE
, SEM_FN_NAME ( frvbf
, fbne
) },
28451 { FRVBF_INSN_FBEQ
, SEM_FN_NAME ( frvbf
, fbeq
) },
28452 { FRVBF_INSN_FBLG
, SEM_FN_NAME ( frvbf
, fblg
) },
28453 { FRVBF_INSN_FBUE
, SEM_FN_NAME ( frvbf
, fbue
) },
28454 { FRVBF_INSN_FBUL
, SEM_FN_NAME ( frvbf
, fbul
) },
28455 { FRVBF_INSN_FBGE
, SEM_FN_NAME ( frvbf
, fbge
) },
28456 { FRVBF_INSN_FBLT
, SEM_FN_NAME ( frvbf
, fblt
) },
28457 { FRVBF_INSN_FBUGE
, SEM_FN_NAME ( frvbf
, fbuge
) },
28458 { FRVBF_INSN_FBUG
, SEM_FN_NAME ( frvbf
, fbug
) },
28459 { FRVBF_INSN_FBLE
, SEM_FN_NAME ( frvbf
, fble
) },
28460 { FRVBF_INSN_FBGT
, SEM_FN_NAME ( frvbf
, fbgt
) },
28461 { FRVBF_INSN_FBULE
, SEM_FN_NAME ( frvbf
, fbule
) },
28462 { FRVBF_INSN_FBU
, SEM_FN_NAME ( frvbf
, fbu
) },
28463 { FRVBF_INSN_FBO
, SEM_FN_NAME ( frvbf
, fbo
) },
28464 { FRVBF_INSN_BCTRLR
, SEM_FN_NAME ( frvbf
, bctrlr
) },
28465 { FRVBF_INSN_BRALR
, SEM_FN_NAME ( frvbf
, bralr
) },
28466 { FRVBF_INSN_BNOLR
, SEM_FN_NAME ( frvbf
, bnolr
) },
28467 { FRVBF_INSN_BEQLR
, SEM_FN_NAME ( frvbf
, beqlr
) },
28468 { FRVBF_INSN_BNELR
, SEM_FN_NAME ( frvbf
, bnelr
) },
28469 { FRVBF_INSN_BLELR
, SEM_FN_NAME ( frvbf
, blelr
) },
28470 { FRVBF_INSN_BGTLR
, SEM_FN_NAME ( frvbf
, bgtlr
) },
28471 { FRVBF_INSN_BLTLR
, SEM_FN_NAME ( frvbf
, bltlr
) },
28472 { FRVBF_INSN_BGELR
, SEM_FN_NAME ( frvbf
, bgelr
) },
28473 { FRVBF_INSN_BLSLR
, SEM_FN_NAME ( frvbf
, blslr
) },
28474 { FRVBF_INSN_BHILR
, SEM_FN_NAME ( frvbf
, bhilr
) },
28475 { FRVBF_INSN_BCLR
, SEM_FN_NAME ( frvbf
, bclr
) },
28476 { FRVBF_INSN_BNCLR
, SEM_FN_NAME ( frvbf
, bnclr
) },
28477 { FRVBF_INSN_BNLR
, SEM_FN_NAME ( frvbf
, bnlr
) },
28478 { FRVBF_INSN_BPLR
, SEM_FN_NAME ( frvbf
, bplr
) },
28479 { FRVBF_INSN_BVLR
, SEM_FN_NAME ( frvbf
, bvlr
) },
28480 { FRVBF_INSN_BNVLR
, SEM_FN_NAME ( frvbf
, bnvlr
) },
28481 { FRVBF_INSN_FBRALR
, SEM_FN_NAME ( frvbf
, fbralr
) },
28482 { FRVBF_INSN_FBNOLR
, SEM_FN_NAME ( frvbf
, fbnolr
) },
28483 { FRVBF_INSN_FBEQLR
, SEM_FN_NAME ( frvbf
, fbeqlr
) },
28484 { FRVBF_INSN_FBNELR
, SEM_FN_NAME ( frvbf
, fbnelr
) },
28485 { FRVBF_INSN_FBLGLR
, SEM_FN_NAME ( frvbf
, fblglr
) },
28486 { FRVBF_INSN_FBUELR
, SEM_FN_NAME ( frvbf
, fbuelr
) },
28487 { FRVBF_INSN_FBULLR
, SEM_FN_NAME ( frvbf
, fbullr
) },
28488 { FRVBF_INSN_FBGELR
, SEM_FN_NAME ( frvbf
, fbgelr
) },
28489 { FRVBF_INSN_FBLTLR
, SEM_FN_NAME ( frvbf
, fbltlr
) },
28490 { FRVBF_INSN_FBUGELR
, SEM_FN_NAME ( frvbf
, fbugelr
) },
28491 { FRVBF_INSN_FBUGLR
, SEM_FN_NAME ( frvbf
, fbuglr
) },
28492 { FRVBF_INSN_FBLELR
, SEM_FN_NAME ( frvbf
, fblelr
) },
28493 { FRVBF_INSN_FBGTLR
, SEM_FN_NAME ( frvbf
, fbgtlr
) },
28494 { FRVBF_INSN_FBULELR
, SEM_FN_NAME ( frvbf
, fbulelr
) },
28495 { FRVBF_INSN_FBULR
, SEM_FN_NAME ( frvbf
, fbulr
) },
28496 { FRVBF_INSN_FBOLR
, SEM_FN_NAME ( frvbf
, fbolr
) },
28497 { FRVBF_INSN_BCRALR
, SEM_FN_NAME ( frvbf
, bcralr
) },
28498 { FRVBF_INSN_BCNOLR
, SEM_FN_NAME ( frvbf
, bcnolr
) },
28499 { FRVBF_INSN_BCEQLR
, SEM_FN_NAME ( frvbf
, bceqlr
) },
28500 { FRVBF_INSN_BCNELR
, SEM_FN_NAME ( frvbf
, bcnelr
) },
28501 { FRVBF_INSN_BCLELR
, SEM_FN_NAME ( frvbf
, bclelr
) },
28502 { FRVBF_INSN_BCGTLR
, SEM_FN_NAME ( frvbf
, bcgtlr
) },
28503 { FRVBF_INSN_BCLTLR
, SEM_FN_NAME ( frvbf
, bcltlr
) },
28504 { FRVBF_INSN_BCGELR
, SEM_FN_NAME ( frvbf
, bcgelr
) },
28505 { FRVBF_INSN_BCLSLR
, SEM_FN_NAME ( frvbf
, bclslr
) },
28506 { FRVBF_INSN_BCHILR
, SEM_FN_NAME ( frvbf
, bchilr
) },
28507 { FRVBF_INSN_BCCLR
, SEM_FN_NAME ( frvbf
, bcclr
) },
28508 { FRVBF_INSN_BCNCLR
, SEM_FN_NAME ( frvbf
, bcnclr
) },
28509 { FRVBF_INSN_BCNLR
, SEM_FN_NAME ( frvbf
, bcnlr
) },
28510 { FRVBF_INSN_BCPLR
, SEM_FN_NAME ( frvbf
, bcplr
) },
28511 { FRVBF_INSN_BCVLR
, SEM_FN_NAME ( frvbf
, bcvlr
) },
28512 { FRVBF_INSN_BCNVLR
, SEM_FN_NAME ( frvbf
, bcnvlr
) },
28513 { FRVBF_INSN_FCBRALR
, SEM_FN_NAME ( frvbf
, fcbralr
) },
28514 { FRVBF_INSN_FCBNOLR
, SEM_FN_NAME ( frvbf
, fcbnolr
) },
28515 { FRVBF_INSN_FCBEQLR
, SEM_FN_NAME ( frvbf
, fcbeqlr
) },
28516 { FRVBF_INSN_FCBNELR
, SEM_FN_NAME ( frvbf
, fcbnelr
) },
28517 { FRVBF_INSN_FCBLGLR
, SEM_FN_NAME ( frvbf
, fcblglr
) },
28518 { FRVBF_INSN_FCBUELR
, SEM_FN_NAME ( frvbf
, fcbuelr
) },
28519 { FRVBF_INSN_FCBULLR
, SEM_FN_NAME ( frvbf
, fcbullr
) },
28520 { FRVBF_INSN_FCBGELR
, SEM_FN_NAME ( frvbf
, fcbgelr
) },
28521 { FRVBF_INSN_FCBLTLR
, SEM_FN_NAME ( frvbf
, fcbltlr
) },
28522 { FRVBF_INSN_FCBUGELR
, SEM_FN_NAME ( frvbf
, fcbugelr
) },
28523 { FRVBF_INSN_FCBUGLR
, SEM_FN_NAME ( frvbf
, fcbuglr
) },
28524 { FRVBF_INSN_FCBLELR
, SEM_FN_NAME ( frvbf
, fcblelr
) },
28525 { FRVBF_INSN_FCBGTLR
, SEM_FN_NAME ( frvbf
, fcbgtlr
) },
28526 { FRVBF_INSN_FCBULELR
, SEM_FN_NAME ( frvbf
, fcbulelr
) },
28527 { FRVBF_INSN_FCBULR
, SEM_FN_NAME ( frvbf
, fcbulr
) },
28528 { FRVBF_INSN_FCBOLR
, SEM_FN_NAME ( frvbf
, fcbolr
) },
28529 { FRVBF_INSN_JMPL
, SEM_FN_NAME ( frvbf
, jmpl
) },
28530 { FRVBF_INSN_CALLL
, SEM_FN_NAME ( frvbf
, calll
) },
28531 { FRVBF_INSN_JMPIL
, SEM_FN_NAME ( frvbf
, jmpil
) },
28532 { FRVBF_INSN_CALLIL
, SEM_FN_NAME ( frvbf
, callil
) },
28533 { FRVBF_INSN_CALL
, SEM_FN_NAME ( frvbf
, call
) },
28534 { FRVBF_INSN_RETT
, SEM_FN_NAME ( frvbf
, rett
) },
28535 { FRVBF_INSN_REI
, SEM_FN_NAME ( frvbf
, rei
) },
28536 { FRVBF_INSN_TRA
, SEM_FN_NAME ( frvbf
, tra
) },
28537 { FRVBF_INSN_TNO
, SEM_FN_NAME ( frvbf
, tno
) },
28538 { FRVBF_INSN_TEQ
, SEM_FN_NAME ( frvbf
, teq
) },
28539 { FRVBF_INSN_TNE
, SEM_FN_NAME ( frvbf
, tne
) },
28540 { FRVBF_INSN_TLE
, SEM_FN_NAME ( frvbf
, tle
) },
28541 { FRVBF_INSN_TGT
, SEM_FN_NAME ( frvbf
, tgt
) },
28542 { FRVBF_INSN_TLT
, SEM_FN_NAME ( frvbf
, tlt
) },
28543 { FRVBF_INSN_TGE
, SEM_FN_NAME ( frvbf
, tge
) },
28544 { FRVBF_INSN_TLS
, SEM_FN_NAME ( frvbf
, tls
) },
28545 { FRVBF_INSN_THI
, SEM_FN_NAME ( frvbf
, thi
) },
28546 { FRVBF_INSN_TC
, SEM_FN_NAME ( frvbf
, tc
) },
28547 { FRVBF_INSN_TNC
, SEM_FN_NAME ( frvbf
, tnc
) },
28548 { FRVBF_INSN_TN
, SEM_FN_NAME ( frvbf
, tn
) },
28549 { FRVBF_INSN_TP
, SEM_FN_NAME ( frvbf
, tp
) },
28550 { FRVBF_INSN_TV
, SEM_FN_NAME ( frvbf
, tv
) },
28551 { FRVBF_INSN_TNV
, SEM_FN_NAME ( frvbf
, tnv
) },
28552 { FRVBF_INSN_FTRA
, SEM_FN_NAME ( frvbf
, ftra
) },
28553 { FRVBF_INSN_FTNO
, SEM_FN_NAME ( frvbf
, ftno
) },
28554 { FRVBF_INSN_FTNE
, SEM_FN_NAME ( frvbf
, ftne
) },
28555 { FRVBF_INSN_FTEQ
, SEM_FN_NAME ( frvbf
, fteq
) },
28556 { FRVBF_INSN_FTLG
, SEM_FN_NAME ( frvbf
, ftlg
) },
28557 { FRVBF_INSN_FTUE
, SEM_FN_NAME ( frvbf
, ftue
) },
28558 { FRVBF_INSN_FTUL
, SEM_FN_NAME ( frvbf
, ftul
) },
28559 { FRVBF_INSN_FTGE
, SEM_FN_NAME ( frvbf
, ftge
) },
28560 { FRVBF_INSN_FTLT
, SEM_FN_NAME ( frvbf
, ftlt
) },
28561 { FRVBF_INSN_FTUGE
, SEM_FN_NAME ( frvbf
, ftuge
) },
28562 { FRVBF_INSN_FTUG
, SEM_FN_NAME ( frvbf
, ftug
) },
28563 { FRVBF_INSN_FTLE
, SEM_FN_NAME ( frvbf
, ftle
) },
28564 { FRVBF_INSN_FTGT
, SEM_FN_NAME ( frvbf
, ftgt
) },
28565 { FRVBF_INSN_FTULE
, SEM_FN_NAME ( frvbf
, ftule
) },
28566 { FRVBF_INSN_FTU
, SEM_FN_NAME ( frvbf
, ftu
) },
28567 { FRVBF_INSN_FTO
, SEM_FN_NAME ( frvbf
, fto
) },
28568 { FRVBF_INSN_TIRA
, SEM_FN_NAME ( frvbf
, tira
) },
28569 { FRVBF_INSN_TINO
, SEM_FN_NAME ( frvbf
, tino
) },
28570 { FRVBF_INSN_TIEQ
, SEM_FN_NAME ( frvbf
, tieq
) },
28571 { FRVBF_INSN_TINE
, SEM_FN_NAME ( frvbf
, tine
) },
28572 { FRVBF_INSN_TILE
, SEM_FN_NAME ( frvbf
, tile
) },
28573 { FRVBF_INSN_TIGT
, SEM_FN_NAME ( frvbf
, tigt
) },
28574 { FRVBF_INSN_TILT
, SEM_FN_NAME ( frvbf
, tilt
) },
28575 { FRVBF_INSN_TIGE
, SEM_FN_NAME ( frvbf
, tige
) },
28576 { FRVBF_INSN_TILS
, SEM_FN_NAME ( frvbf
, tils
) },
28577 { FRVBF_INSN_TIHI
, SEM_FN_NAME ( frvbf
, tihi
) },
28578 { FRVBF_INSN_TIC
, SEM_FN_NAME ( frvbf
, tic
) },
28579 { FRVBF_INSN_TINC
, SEM_FN_NAME ( frvbf
, tinc
) },
28580 { FRVBF_INSN_TIN
, SEM_FN_NAME ( frvbf
, tin
) },
28581 { FRVBF_INSN_TIP
, SEM_FN_NAME ( frvbf
, tip
) },
28582 { FRVBF_INSN_TIV
, SEM_FN_NAME ( frvbf
, tiv
) },
28583 { FRVBF_INSN_TINV
, SEM_FN_NAME ( frvbf
, tinv
) },
28584 { FRVBF_INSN_FTIRA
, SEM_FN_NAME ( frvbf
, ftira
) },
28585 { FRVBF_INSN_FTINO
, SEM_FN_NAME ( frvbf
, ftino
) },
28586 { FRVBF_INSN_FTINE
, SEM_FN_NAME ( frvbf
, ftine
) },
28587 { FRVBF_INSN_FTIEQ
, SEM_FN_NAME ( frvbf
, ftieq
) },
28588 { FRVBF_INSN_FTILG
, SEM_FN_NAME ( frvbf
, ftilg
) },
28589 { FRVBF_INSN_FTIUE
, SEM_FN_NAME ( frvbf
, ftiue
) },
28590 { FRVBF_INSN_FTIUL
, SEM_FN_NAME ( frvbf
, ftiul
) },
28591 { FRVBF_INSN_FTIGE
, SEM_FN_NAME ( frvbf
, ftige
) },
28592 { FRVBF_INSN_FTILT
, SEM_FN_NAME ( frvbf
, ftilt
) },
28593 { FRVBF_INSN_FTIUGE
, SEM_FN_NAME ( frvbf
, ftiuge
) },
28594 { FRVBF_INSN_FTIUG
, SEM_FN_NAME ( frvbf
, ftiug
) },
28595 { FRVBF_INSN_FTILE
, SEM_FN_NAME ( frvbf
, ftile
) },
28596 { FRVBF_INSN_FTIGT
, SEM_FN_NAME ( frvbf
, ftigt
) },
28597 { FRVBF_INSN_FTIULE
, SEM_FN_NAME ( frvbf
, ftiule
) },
28598 { FRVBF_INSN_FTIU
, SEM_FN_NAME ( frvbf
, ftiu
) },
28599 { FRVBF_INSN_FTIO
, SEM_FN_NAME ( frvbf
, ftio
) },
28600 { FRVBF_INSN_BREAK
, SEM_FN_NAME ( frvbf
, break ) },
28601 { FRVBF_INSN_MTRAP
, SEM_FN_NAME ( frvbf
, mtrap
) },
28602 { FRVBF_INSN_ANDCR
, SEM_FN_NAME ( frvbf
, andcr
) },
28603 { FRVBF_INSN_ORCR
, SEM_FN_NAME ( frvbf
, orcr
) },
28604 { FRVBF_INSN_XORCR
, SEM_FN_NAME ( frvbf
, xorcr
) },
28605 { FRVBF_INSN_NANDCR
, SEM_FN_NAME ( frvbf
, nandcr
) },
28606 { FRVBF_INSN_NORCR
, SEM_FN_NAME ( frvbf
, norcr
) },
28607 { FRVBF_INSN_ANDNCR
, SEM_FN_NAME ( frvbf
, andncr
) },
28608 { FRVBF_INSN_ORNCR
, SEM_FN_NAME ( frvbf
, orncr
) },
28609 { FRVBF_INSN_NANDNCR
, SEM_FN_NAME ( frvbf
, nandncr
) },
28610 { FRVBF_INSN_NORNCR
, SEM_FN_NAME ( frvbf
, norncr
) },
28611 { FRVBF_INSN_NOTCR
, SEM_FN_NAME ( frvbf
, notcr
) },
28612 { FRVBF_INSN_CKRA
, SEM_FN_NAME ( frvbf
, ckra
) },
28613 { FRVBF_INSN_CKNO
, SEM_FN_NAME ( frvbf
, ckno
) },
28614 { FRVBF_INSN_CKEQ
, SEM_FN_NAME ( frvbf
, ckeq
) },
28615 { FRVBF_INSN_CKNE
, SEM_FN_NAME ( frvbf
, ckne
) },
28616 { FRVBF_INSN_CKLE
, SEM_FN_NAME ( frvbf
, ckle
) },
28617 { FRVBF_INSN_CKGT
, SEM_FN_NAME ( frvbf
, ckgt
) },
28618 { FRVBF_INSN_CKLT
, SEM_FN_NAME ( frvbf
, cklt
) },
28619 { FRVBF_INSN_CKGE
, SEM_FN_NAME ( frvbf
, ckge
) },
28620 { FRVBF_INSN_CKLS
, SEM_FN_NAME ( frvbf
, ckls
) },
28621 { FRVBF_INSN_CKHI
, SEM_FN_NAME ( frvbf
, ckhi
) },
28622 { FRVBF_INSN_CKC
, SEM_FN_NAME ( frvbf
, ckc
) },
28623 { FRVBF_INSN_CKNC
, SEM_FN_NAME ( frvbf
, cknc
) },
28624 { FRVBF_INSN_CKN
, SEM_FN_NAME ( frvbf
, ckn
) },
28625 { FRVBF_INSN_CKP
, SEM_FN_NAME ( frvbf
, ckp
) },
28626 { FRVBF_INSN_CKV
, SEM_FN_NAME ( frvbf
, ckv
) },
28627 { FRVBF_INSN_CKNV
, SEM_FN_NAME ( frvbf
, cknv
) },
28628 { FRVBF_INSN_FCKRA
, SEM_FN_NAME ( frvbf
, fckra
) },
28629 { FRVBF_INSN_FCKNO
, SEM_FN_NAME ( frvbf
, fckno
) },
28630 { FRVBF_INSN_FCKNE
, SEM_FN_NAME ( frvbf
, fckne
) },
28631 { FRVBF_INSN_FCKEQ
, SEM_FN_NAME ( frvbf
, fckeq
) },
28632 { FRVBF_INSN_FCKLG
, SEM_FN_NAME ( frvbf
, fcklg
) },
28633 { FRVBF_INSN_FCKUE
, SEM_FN_NAME ( frvbf
, fckue
) },
28634 { FRVBF_INSN_FCKUL
, SEM_FN_NAME ( frvbf
, fckul
) },
28635 { FRVBF_INSN_FCKGE
, SEM_FN_NAME ( frvbf
, fckge
) },
28636 { FRVBF_INSN_FCKLT
, SEM_FN_NAME ( frvbf
, fcklt
) },
28637 { FRVBF_INSN_FCKUGE
, SEM_FN_NAME ( frvbf
, fckuge
) },
28638 { FRVBF_INSN_FCKUG
, SEM_FN_NAME ( frvbf
, fckug
) },
28639 { FRVBF_INSN_FCKLE
, SEM_FN_NAME ( frvbf
, fckle
) },
28640 { FRVBF_INSN_FCKGT
, SEM_FN_NAME ( frvbf
, fckgt
) },
28641 { FRVBF_INSN_FCKULE
, SEM_FN_NAME ( frvbf
, fckule
) },
28642 { FRVBF_INSN_FCKU
, SEM_FN_NAME ( frvbf
, fcku
) },
28643 { FRVBF_INSN_FCKO
, SEM_FN_NAME ( frvbf
, fcko
) },
28644 { FRVBF_INSN_CCKRA
, SEM_FN_NAME ( frvbf
, cckra
) },
28645 { FRVBF_INSN_CCKNO
, SEM_FN_NAME ( frvbf
, cckno
) },
28646 { FRVBF_INSN_CCKEQ
, SEM_FN_NAME ( frvbf
, cckeq
) },
28647 { FRVBF_INSN_CCKNE
, SEM_FN_NAME ( frvbf
, cckne
) },
28648 { FRVBF_INSN_CCKLE
, SEM_FN_NAME ( frvbf
, cckle
) },
28649 { FRVBF_INSN_CCKGT
, SEM_FN_NAME ( frvbf
, cckgt
) },
28650 { FRVBF_INSN_CCKLT
, SEM_FN_NAME ( frvbf
, ccklt
) },
28651 { FRVBF_INSN_CCKGE
, SEM_FN_NAME ( frvbf
, cckge
) },
28652 { FRVBF_INSN_CCKLS
, SEM_FN_NAME ( frvbf
, cckls
) },
28653 { FRVBF_INSN_CCKHI
, SEM_FN_NAME ( frvbf
, cckhi
) },
28654 { FRVBF_INSN_CCKC
, SEM_FN_NAME ( frvbf
, cckc
) },
28655 { FRVBF_INSN_CCKNC
, SEM_FN_NAME ( frvbf
, ccknc
) },
28656 { FRVBF_INSN_CCKN
, SEM_FN_NAME ( frvbf
, cckn
) },
28657 { FRVBF_INSN_CCKP
, SEM_FN_NAME ( frvbf
, cckp
) },
28658 { FRVBF_INSN_CCKV
, SEM_FN_NAME ( frvbf
, cckv
) },
28659 { FRVBF_INSN_CCKNV
, SEM_FN_NAME ( frvbf
, ccknv
) },
28660 { FRVBF_INSN_CFCKRA
, SEM_FN_NAME ( frvbf
, cfckra
) },
28661 { FRVBF_INSN_CFCKNO
, SEM_FN_NAME ( frvbf
, cfckno
) },
28662 { FRVBF_INSN_CFCKNE
, SEM_FN_NAME ( frvbf
, cfckne
) },
28663 { FRVBF_INSN_CFCKEQ
, SEM_FN_NAME ( frvbf
, cfckeq
) },
28664 { FRVBF_INSN_CFCKLG
, SEM_FN_NAME ( frvbf
, cfcklg
) },
28665 { FRVBF_INSN_CFCKUE
, SEM_FN_NAME ( frvbf
, cfckue
) },
28666 { FRVBF_INSN_CFCKUL
, SEM_FN_NAME ( frvbf
, cfckul
) },
28667 { FRVBF_INSN_CFCKGE
, SEM_FN_NAME ( frvbf
, cfckge
) },
28668 { FRVBF_INSN_CFCKLT
, SEM_FN_NAME ( frvbf
, cfcklt
) },
28669 { FRVBF_INSN_CFCKUGE
, SEM_FN_NAME ( frvbf
, cfckuge
) },
28670 { FRVBF_INSN_CFCKUG
, SEM_FN_NAME ( frvbf
, cfckug
) },
28671 { FRVBF_INSN_CFCKLE
, SEM_FN_NAME ( frvbf
, cfckle
) },
28672 { FRVBF_INSN_CFCKGT
, SEM_FN_NAME ( frvbf
, cfckgt
) },
28673 { FRVBF_INSN_CFCKULE
, SEM_FN_NAME ( frvbf
, cfckule
) },
28674 { FRVBF_INSN_CFCKU
, SEM_FN_NAME ( frvbf
, cfcku
) },
28675 { FRVBF_INSN_CFCKO
, SEM_FN_NAME ( frvbf
, cfcko
) },
28676 { FRVBF_INSN_CJMPL
, SEM_FN_NAME ( frvbf
, cjmpl
) },
28677 { FRVBF_INSN_CCALLL
, SEM_FN_NAME ( frvbf
, ccalll
) },
28678 { FRVBF_INSN_ICI
, SEM_FN_NAME ( frvbf
, ici
) },
28679 { FRVBF_INSN_DCI
, SEM_FN_NAME ( frvbf
, dci
) },
28680 { FRVBF_INSN_ICEI
, SEM_FN_NAME ( frvbf
, icei
) },
28681 { FRVBF_INSN_DCEI
, SEM_FN_NAME ( frvbf
, dcei
) },
28682 { FRVBF_INSN_DCF
, SEM_FN_NAME ( frvbf
, dcf
) },
28683 { FRVBF_INSN_DCEF
, SEM_FN_NAME ( frvbf
, dcef
) },
28684 { FRVBF_INSN_WITLB
, SEM_FN_NAME ( frvbf
, witlb
) },
28685 { FRVBF_INSN_WDTLB
, SEM_FN_NAME ( frvbf
, wdtlb
) },
28686 { FRVBF_INSN_ITLBI
, SEM_FN_NAME ( frvbf
, itlbi
) },
28687 { FRVBF_INSN_DTLBI
, SEM_FN_NAME ( frvbf
, dtlbi
) },
28688 { FRVBF_INSN_ICPL
, SEM_FN_NAME ( frvbf
, icpl
) },
28689 { FRVBF_INSN_DCPL
, SEM_FN_NAME ( frvbf
, dcpl
) },
28690 { FRVBF_INSN_ICUL
, SEM_FN_NAME ( frvbf
, icul
) },
28691 { FRVBF_INSN_DCUL
, SEM_FN_NAME ( frvbf
, dcul
) },
28692 { FRVBF_INSN_BAR
, SEM_FN_NAME ( frvbf
, bar
) },
28693 { FRVBF_INSN_MEMBAR
, SEM_FN_NAME ( frvbf
, membar
) },
28694 { FRVBF_INSN_LRAI
, SEM_FN_NAME ( frvbf
, lrai
) },
28695 { FRVBF_INSN_LRAD
, SEM_FN_NAME ( frvbf
, lrad
) },
28696 { FRVBF_INSN_TLBPR
, SEM_FN_NAME ( frvbf
, tlbpr
) },
28697 { FRVBF_INSN_COP1
, SEM_FN_NAME ( frvbf
, cop1
) },
28698 { FRVBF_INSN_COP2
, SEM_FN_NAME ( frvbf
, cop2
) },
28699 { FRVBF_INSN_CLRGR
, SEM_FN_NAME ( frvbf
, clrgr
) },
28700 { FRVBF_INSN_CLRFR
, SEM_FN_NAME ( frvbf
, clrfr
) },
28701 { FRVBF_INSN_CLRGA
, SEM_FN_NAME ( frvbf
, clrga
) },
28702 { FRVBF_INSN_CLRFA
, SEM_FN_NAME ( frvbf
, clrfa
) },
28703 { FRVBF_INSN_COMMITGR
, SEM_FN_NAME ( frvbf
, commitgr
) },
28704 { FRVBF_INSN_COMMITFR
, SEM_FN_NAME ( frvbf
, commitfr
) },
28705 { FRVBF_INSN_COMMITGA
, SEM_FN_NAME ( frvbf
, commitga
) },
28706 { FRVBF_INSN_COMMITFA
, SEM_FN_NAME ( frvbf
, commitfa
) },
28707 { FRVBF_INSN_FITOS
, SEM_FN_NAME ( frvbf
, fitos
) },
28708 { FRVBF_INSN_FSTOI
, SEM_FN_NAME ( frvbf
, fstoi
) },
28709 { FRVBF_INSN_FITOD
, SEM_FN_NAME ( frvbf
, fitod
) },
28710 { FRVBF_INSN_FDTOI
, SEM_FN_NAME ( frvbf
, fdtoi
) },
28711 { FRVBF_INSN_FDITOS
, SEM_FN_NAME ( frvbf
, fditos
) },
28712 { FRVBF_INSN_FDSTOI
, SEM_FN_NAME ( frvbf
, fdstoi
) },
28713 { FRVBF_INSN_NFDITOS
, SEM_FN_NAME ( frvbf
, nfditos
) },
28714 { FRVBF_INSN_NFDSTOI
, SEM_FN_NAME ( frvbf
, nfdstoi
) },
28715 { FRVBF_INSN_CFITOS
, SEM_FN_NAME ( frvbf
, cfitos
) },
28716 { FRVBF_INSN_CFSTOI
, SEM_FN_NAME ( frvbf
, cfstoi
) },
28717 { FRVBF_INSN_NFITOS
, SEM_FN_NAME ( frvbf
, nfitos
) },
28718 { FRVBF_INSN_NFSTOI
, SEM_FN_NAME ( frvbf
, nfstoi
) },
28719 { FRVBF_INSN_FMOVS
, SEM_FN_NAME ( frvbf
, fmovs
) },
28720 { FRVBF_INSN_FMOVD
, SEM_FN_NAME ( frvbf
, fmovd
) },
28721 { FRVBF_INSN_FDMOVS
, SEM_FN_NAME ( frvbf
, fdmovs
) },
28722 { FRVBF_INSN_CFMOVS
, SEM_FN_NAME ( frvbf
, cfmovs
) },
28723 { FRVBF_INSN_FNEGS
, SEM_FN_NAME ( frvbf
, fnegs
) },
28724 { FRVBF_INSN_FNEGD
, SEM_FN_NAME ( frvbf
, fnegd
) },
28725 { FRVBF_INSN_FDNEGS
, SEM_FN_NAME ( frvbf
, fdnegs
) },
28726 { FRVBF_INSN_CFNEGS
, SEM_FN_NAME ( frvbf
, cfnegs
) },
28727 { FRVBF_INSN_FABSS
, SEM_FN_NAME ( frvbf
, fabss
) },
28728 { FRVBF_INSN_FABSD
, SEM_FN_NAME ( frvbf
, fabsd
) },
28729 { FRVBF_INSN_FDABSS
, SEM_FN_NAME ( frvbf
, fdabss
) },
28730 { FRVBF_INSN_CFABSS
, SEM_FN_NAME ( frvbf
, cfabss
) },
28731 { FRVBF_INSN_FSQRTS
, SEM_FN_NAME ( frvbf
, fsqrts
) },
28732 { FRVBF_INSN_FDSQRTS
, SEM_FN_NAME ( frvbf
, fdsqrts
) },
28733 { FRVBF_INSN_NFDSQRTS
, SEM_FN_NAME ( frvbf
, nfdsqrts
) },
28734 { FRVBF_INSN_FSQRTD
, SEM_FN_NAME ( frvbf
, fsqrtd
) },
28735 { FRVBF_INSN_CFSQRTS
, SEM_FN_NAME ( frvbf
, cfsqrts
) },
28736 { FRVBF_INSN_NFSQRTS
, SEM_FN_NAME ( frvbf
, nfsqrts
) },
28737 { FRVBF_INSN_FADDS
, SEM_FN_NAME ( frvbf
, fadds
) },
28738 { FRVBF_INSN_FSUBS
, SEM_FN_NAME ( frvbf
, fsubs
) },
28739 { FRVBF_INSN_FMULS
, SEM_FN_NAME ( frvbf
, fmuls
) },
28740 { FRVBF_INSN_FDIVS
, SEM_FN_NAME ( frvbf
, fdivs
) },
28741 { FRVBF_INSN_FADDD
, SEM_FN_NAME ( frvbf
, faddd
) },
28742 { FRVBF_INSN_FSUBD
, SEM_FN_NAME ( frvbf
, fsubd
) },
28743 { FRVBF_INSN_FMULD
, SEM_FN_NAME ( frvbf
, fmuld
) },
28744 { FRVBF_INSN_FDIVD
, SEM_FN_NAME ( frvbf
, fdivd
) },
28745 { FRVBF_INSN_CFADDS
, SEM_FN_NAME ( frvbf
, cfadds
) },
28746 { FRVBF_INSN_CFSUBS
, SEM_FN_NAME ( frvbf
, cfsubs
) },
28747 { FRVBF_INSN_CFMULS
, SEM_FN_NAME ( frvbf
, cfmuls
) },
28748 { FRVBF_INSN_CFDIVS
, SEM_FN_NAME ( frvbf
, cfdivs
) },
28749 { FRVBF_INSN_NFADDS
, SEM_FN_NAME ( frvbf
, nfadds
) },
28750 { FRVBF_INSN_NFSUBS
, SEM_FN_NAME ( frvbf
, nfsubs
) },
28751 { FRVBF_INSN_NFMULS
, SEM_FN_NAME ( frvbf
, nfmuls
) },
28752 { FRVBF_INSN_NFDIVS
, SEM_FN_NAME ( frvbf
, nfdivs
) },
28753 { FRVBF_INSN_FCMPS
, SEM_FN_NAME ( frvbf
, fcmps
) },
28754 { FRVBF_INSN_FCMPD
, SEM_FN_NAME ( frvbf
, fcmpd
) },
28755 { FRVBF_INSN_CFCMPS
, SEM_FN_NAME ( frvbf
, cfcmps
) },
28756 { FRVBF_INSN_FDCMPS
, SEM_FN_NAME ( frvbf
, fdcmps
) },
28757 { FRVBF_INSN_FMADDS
, SEM_FN_NAME ( frvbf
, fmadds
) },
28758 { FRVBF_INSN_FMSUBS
, SEM_FN_NAME ( frvbf
, fmsubs
) },
28759 { FRVBF_INSN_FMADDD
, SEM_FN_NAME ( frvbf
, fmaddd
) },
28760 { FRVBF_INSN_FMSUBD
, SEM_FN_NAME ( frvbf
, fmsubd
) },
28761 { FRVBF_INSN_FDMADDS
, SEM_FN_NAME ( frvbf
, fdmadds
) },
28762 { FRVBF_INSN_NFDMADDS
, SEM_FN_NAME ( frvbf
, nfdmadds
) },
28763 { FRVBF_INSN_CFMADDS
, SEM_FN_NAME ( frvbf
, cfmadds
) },
28764 { FRVBF_INSN_CFMSUBS
, SEM_FN_NAME ( frvbf
, cfmsubs
) },
28765 { FRVBF_INSN_NFMADDS
, SEM_FN_NAME ( frvbf
, nfmadds
) },
28766 { FRVBF_INSN_NFMSUBS
, SEM_FN_NAME ( frvbf
, nfmsubs
) },
28767 { FRVBF_INSN_FMAS
, SEM_FN_NAME ( frvbf
, fmas
) },
28768 { FRVBF_INSN_FMSS
, SEM_FN_NAME ( frvbf
, fmss
) },
28769 { FRVBF_INSN_FDMAS
, SEM_FN_NAME ( frvbf
, fdmas
) },
28770 { FRVBF_INSN_FDMSS
, SEM_FN_NAME ( frvbf
, fdmss
) },
28771 { FRVBF_INSN_NFDMAS
, SEM_FN_NAME ( frvbf
, nfdmas
) },
28772 { FRVBF_INSN_NFDMSS
, SEM_FN_NAME ( frvbf
, nfdmss
) },
28773 { FRVBF_INSN_CFMAS
, SEM_FN_NAME ( frvbf
, cfmas
) },
28774 { FRVBF_INSN_CFMSS
, SEM_FN_NAME ( frvbf
, cfmss
) },
28775 { FRVBF_INSN_FMAD
, SEM_FN_NAME ( frvbf
, fmad
) },
28776 { FRVBF_INSN_FMSD
, SEM_FN_NAME ( frvbf
, fmsd
) },
28777 { FRVBF_INSN_NFMAS
, SEM_FN_NAME ( frvbf
, nfmas
) },
28778 { FRVBF_INSN_NFMSS
, SEM_FN_NAME ( frvbf
, nfmss
) },
28779 { FRVBF_INSN_FDADDS
, SEM_FN_NAME ( frvbf
, fdadds
) },
28780 { FRVBF_INSN_FDSUBS
, SEM_FN_NAME ( frvbf
, fdsubs
) },
28781 { FRVBF_INSN_FDMULS
, SEM_FN_NAME ( frvbf
, fdmuls
) },
28782 { FRVBF_INSN_FDDIVS
, SEM_FN_NAME ( frvbf
, fddivs
) },
28783 { FRVBF_INSN_FDSADS
, SEM_FN_NAME ( frvbf
, fdsads
) },
28784 { FRVBF_INSN_FDMULCS
, SEM_FN_NAME ( frvbf
, fdmulcs
) },
28785 { FRVBF_INSN_NFDMULCS
, SEM_FN_NAME ( frvbf
, nfdmulcs
) },
28786 { FRVBF_INSN_NFDADDS
, SEM_FN_NAME ( frvbf
, nfdadds
) },
28787 { FRVBF_INSN_NFDSUBS
, SEM_FN_NAME ( frvbf
, nfdsubs
) },
28788 { FRVBF_INSN_NFDMULS
, SEM_FN_NAME ( frvbf
, nfdmuls
) },
28789 { FRVBF_INSN_NFDDIVS
, SEM_FN_NAME ( frvbf
, nfddivs
) },
28790 { FRVBF_INSN_NFDSADS
, SEM_FN_NAME ( frvbf
, nfdsads
) },
28791 { FRVBF_INSN_NFDCMPS
, SEM_FN_NAME ( frvbf
, nfdcmps
) },
28792 { FRVBF_INSN_MHSETLOS
, SEM_FN_NAME ( frvbf
, mhsetlos
) },
28793 { FRVBF_INSN_MHSETHIS
, SEM_FN_NAME ( frvbf
, mhsethis
) },
28794 { FRVBF_INSN_MHDSETS
, SEM_FN_NAME ( frvbf
, mhdsets
) },
28795 { FRVBF_INSN_MHSETLOH
, SEM_FN_NAME ( frvbf
, mhsetloh
) },
28796 { FRVBF_INSN_MHSETHIH
, SEM_FN_NAME ( frvbf
, mhsethih
) },
28797 { FRVBF_INSN_MHDSETH
, SEM_FN_NAME ( frvbf
, mhdseth
) },
28798 { FRVBF_INSN_MAND
, SEM_FN_NAME ( frvbf
, mand
) },
28799 { FRVBF_INSN_MOR
, SEM_FN_NAME ( frvbf
, mor
) },
28800 { FRVBF_INSN_MXOR
, SEM_FN_NAME ( frvbf
, mxor
) },
28801 { FRVBF_INSN_CMAND
, SEM_FN_NAME ( frvbf
, cmand
) },
28802 { FRVBF_INSN_CMOR
, SEM_FN_NAME ( frvbf
, cmor
) },
28803 { FRVBF_INSN_CMXOR
, SEM_FN_NAME ( frvbf
, cmxor
) },
28804 { FRVBF_INSN_MNOT
, SEM_FN_NAME ( frvbf
, mnot
) },
28805 { FRVBF_INSN_CMNOT
, SEM_FN_NAME ( frvbf
, cmnot
) },
28806 { FRVBF_INSN_MROTLI
, SEM_FN_NAME ( frvbf
, mrotli
) },
28807 { FRVBF_INSN_MROTRI
, SEM_FN_NAME ( frvbf
, mrotri
) },
28808 { FRVBF_INSN_MWCUT
, SEM_FN_NAME ( frvbf
, mwcut
) },
28809 { FRVBF_INSN_MWCUTI
, SEM_FN_NAME ( frvbf
, mwcuti
) },
28810 { FRVBF_INSN_MCUT
, SEM_FN_NAME ( frvbf
, mcut
) },
28811 { FRVBF_INSN_MCUTI
, SEM_FN_NAME ( frvbf
, mcuti
) },
28812 { FRVBF_INSN_MCUTSS
, SEM_FN_NAME ( frvbf
, mcutss
) },
28813 { FRVBF_INSN_MCUTSSI
, SEM_FN_NAME ( frvbf
, mcutssi
) },
28814 { FRVBF_INSN_MDCUTSSI
, SEM_FN_NAME ( frvbf
, mdcutssi
) },
28815 { FRVBF_INSN_MAVEH
, SEM_FN_NAME ( frvbf
, maveh
) },
28816 { FRVBF_INSN_MSLLHI
, SEM_FN_NAME ( frvbf
, msllhi
) },
28817 { FRVBF_INSN_MSRLHI
, SEM_FN_NAME ( frvbf
, msrlhi
) },
28818 { FRVBF_INSN_MSRAHI
, SEM_FN_NAME ( frvbf
, msrahi
) },
28819 { FRVBF_INSN_MDROTLI
, SEM_FN_NAME ( frvbf
, mdrotli
) },
28820 { FRVBF_INSN_MCPLHI
, SEM_FN_NAME ( frvbf
, mcplhi
) },
28821 { FRVBF_INSN_MCPLI
, SEM_FN_NAME ( frvbf
, mcpli
) },
28822 { FRVBF_INSN_MSATHS
, SEM_FN_NAME ( frvbf
, msaths
) },
28823 { FRVBF_INSN_MQSATHS
, SEM_FN_NAME ( frvbf
, mqsaths
) },
28824 { FRVBF_INSN_MSATHU
, SEM_FN_NAME ( frvbf
, msathu
) },
28825 { FRVBF_INSN_MCMPSH
, SEM_FN_NAME ( frvbf
, mcmpsh
) },
28826 { FRVBF_INSN_MCMPUH
, SEM_FN_NAME ( frvbf
, mcmpuh
) },
28827 { FRVBF_INSN_MABSHS
, SEM_FN_NAME ( frvbf
, mabshs
) },
28828 { FRVBF_INSN_MADDHSS
, SEM_FN_NAME ( frvbf
, maddhss
) },
28829 { FRVBF_INSN_MADDHUS
, SEM_FN_NAME ( frvbf
, maddhus
) },
28830 { FRVBF_INSN_MSUBHSS
, SEM_FN_NAME ( frvbf
, msubhss
) },
28831 { FRVBF_INSN_MSUBHUS
, SEM_FN_NAME ( frvbf
, msubhus
) },
28832 { FRVBF_INSN_CMADDHSS
, SEM_FN_NAME ( frvbf
, cmaddhss
) },
28833 { FRVBF_INSN_CMADDHUS
, SEM_FN_NAME ( frvbf
, cmaddhus
) },
28834 { FRVBF_INSN_CMSUBHSS
, SEM_FN_NAME ( frvbf
, cmsubhss
) },
28835 { FRVBF_INSN_CMSUBHUS
, SEM_FN_NAME ( frvbf
, cmsubhus
) },
28836 { FRVBF_INSN_MQADDHSS
, SEM_FN_NAME ( frvbf
, mqaddhss
) },
28837 { FRVBF_INSN_MQADDHUS
, SEM_FN_NAME ( frvbf
, mqaddhus
) },
28838 { FRVBF_INSN_MQSUBHSS
, SEM_FN_NAME ( frvbf
, mqsubhss
) },
28839 { FRVBF_INSN_MQSUBHUS
, SEM_FN_NAME ( frvbf
, mqsubhus
) },
28840 { FRVBF_INSN_CMQADDHSS
, SEM_FN_NAME ( frvbf
, cmqaddhss
) },
28841 { FRVBF_INSN_CMQADDHUS
, SEM_FN_NAME ( frvbf
, cmqaddhus
) },
28842 { FRVBF_INSN_CMQSUBHSS
, SEM_FN_NAME ( frvbf
, cmqsubhss
) },
28843 { FRVBF_INSN_CMQSUBHUS
, SEM_FN_NAME ( frvbf
, cmqsubhus
) },
28844 { FRVBF_INSN_MQLCLRHS
, SEM_FN_NAME ( frvbf
, mqlclrhs
) },
28845 { FRVBF_INSN_MQLMTHS
, SEM_FN_NAME ( frvbf
, mqlmths
) },
28846 { FRVBF_INSN_MQSLLHI
, SEM_FN_NAME ( frvbf
, mqsllhi
) },
28847 { FRVBF_INSN_MQSRAHI
, SEM_FN_NAME ( frvbf
, mqsrahi
) },
28848 { FRVBF_INSN_MADDACCS
, SEM_FN_NAME ( frvbf
, maddaccs
) },
28849 { FRVBF_INSN_MSUBACCS
, SEM_FN_NAME ( frvbf
, msubaccs
) },
28850 { FRVBF_INSN_MDADDACCS
, SEM_FN_NAME ( frvbf
, mdaddaccs
) },
28851 { FRVBF_INSN_MDSUBACCS
, SEM_FN_NAME ( frvbf
, mdsubaccs
) },
28852 { FRVBF_INSN_MASACCS
, SEM_FN_NAME ( frvbf
, masaccs
) },
28853 { FRVBF_INSN_MDASACCS
, SEM_FN_NAME ( frvbf
, mdasaccs
) },
28854 { FRVBF_INSN_MMULHS
, SEM_FN_NAME ( frvbf
, mmulhs
) },
28855 { FRVBF_INSN_MMULHU
, SEM_FN_NAME ( frvbf
, mmulhu
) },
28856 { FRVBF_INSN_MMULXHS
, SEM_FN_NAME ( frvbf
, mmulxhs
) },
28857 { FRVBF_INSN_MMULXHU
, SEM_FN_NAME ( frvbf
, mmulxhu
) },
28858 { FRVBF_INSN_CMMULHS
, SEM_FN_NAME ( frvbf
, cmmulhs
) },
28859 { FRVBF_INSN_CMMULHU
, SEM_FN_NAME ( frvbf
, cmmulhu
) },
28860 { FRVBF_INSN_MQMULHS
, SEM_FN_NAME ( frvbf
, mqmulhs
) },
28861 { FRVBF_INSN_MQMULHU
, SEM_FN_NAME ( frvbf
, mqmulhu
) },
28862 { FRVBF_INSN_MQMULXHS
, SEM_FN_NAME ( frvbf
, mqmulxhs
) },
28863 { FRVBF_INSN_MQMULXHU
, SEM_FN_NAME ( frvbf
, mqmulxhu
) },
28864 { FRVBF_INSN_CMQMULHS
, SEM_FN_NAME ( frvbf
, cmqmulhs
) },
28865 { FRVBF_INSN_CMQMULHU
, SEM_FN_NAME ( frvbf
, cmqmulhu
) },
28866 { FRVBF_INSN_MMACHS
, SEM_FN_NAME ( frvbf
, mmachs
) },
28867 { FRVBF_INSN_MMACHU
, SEM_FN_NAME ( frvbf
, mmachu
) },
28868 { FRVBF_INSN_MMRDHS
, SEM_FN_NAME ( frvbf
, mmrdhs
) },
28869 { FRVBF_INSN_MMRDHU
, SEM_FN_NAME ( frvbf
, mmrdhu
) },
28870 { FRVBF_INSN_CMMACHS
, SEM_FN_NAME ( frvbf
, cmmachs
) },
28871 { FRVBF_INSN_CMMACHU
, SEM_FN_NAME ( frvbf
, cmmachu
) },
28872 { FRVBF_INSN_MQMACHS
, SEM_FN_NAME ( frvbf
, mqmachs
) },
28873 { FRVBF_INSN_MQMACHU
, SEM_FN_NAME ( frvbf
, mqmachu
) },
28874 { FRVBF_INSN_CMQMACHS
, SEM_FN_NAME ( frvbf
, cmqmachs
) },
28875 { FRVBF_INSN_CMQMACHU
, SEM_FN_NAME ( frvbf
, cmqmachu
) },
28876 { FRVBF_INSN_MQXMACHS
, SEM_FN_NAME ( frvbf
, mqxmachs
) },
28877 { FRVBF_INSN_MQXMACXHS
, SEM_FN_NAME ( frvbf
, mqxmacxhs
) },
28878 { FRVBF_INSN_MQMACXHS
, SEM_FN_NAME ( frvbf
, mqmacxhs
) },
28879 { FRVBF_INSN_MCPXRS
, SEM_FN_NAME ( frvbf
, mcpxrs
) },
28880 { FRVBF_INSN_MCPXRU
, SEM_FN_NAME ( frvbf
, mcpxru
) },
28881 { FRVBF_INSN_MCPXIS
, SEM_FN_NAME ( frvbf
, mcpxis
) },
28882 { FRVBF_INSN_MCPXIU
, SEM_FN_NAME ( frvbf
, mcpxiu
) },
28883 { FRVBF_INSN_CMCPXRS
, SEM_FN_NAME ( frvbf
, cmcpxrs
) },
28884 { FRVBF_INSN_CMCPXRU
, SEM_FN_NAME ( frvbf
, cmcpxru
) },
28885 { FRVBF_INSN_CMCPXIS
, SEM_FN_NAME ( frvbf
, cmcpxis
) },
28886 { FRVBF_INSN_CMCPXIU
, SEM_FN_NAME ( frvbf
, cmcpxiu
) },
28887 { FRVBF_INSN_MQCPXRS
, SEM_FN_NAME ( frvbf
, mqcpxrs
) },
28888 { FRVBF_INSN_MQCPXRU
, SEM_FN_NAME ( frvbf
, mqcpxru
) },
28889 { FRVBF_INSN_MQCPXIS
, SEM_FN_NAME ( frvbf
, mqcpxis
) },
28890 { FRVBF_INSN_MQCPXIU
, SEM_FN_NAME ( frvbf
, mqcpxiu
) },
28891 { FRVBF_INSN_MEXPDHW
, SEM_FN_NAME ( frvbf
, mexpdhw
) },
28892 { FRVBF_INSN_CMEXPDHW
, SEM_FN_NAME ( frvbf
, cmexpdhw
) },
28893 { FRVBF_INSN_MEXPDHD
, SEM_FN_NAME ( frvbf
, mexpdhd
) },
28894 { FRVBF_INSN_CMEXPDHD
, SEM_FN_NAME ( frvbf
, cmexpdhd
) },
28895 { FRVBF_INSN_MPACKH
, SEM_FN_NAME ( frvbf
, mpackh
) },
28896 { FRVBF_INSN_MDPACKH
, SEM_FN_NAME ( frvbf
, mdpackh
) },
28897 { FRVBF_INSN_MUNPACKH
, SEM_FN_NAME ( frvbf
, munpackh
) },
28898 { FRVBF_INSN_MDUNPACKH
, SEM_FN_NAME ( frvbf
, mdunpackh
) },
28899 { FRVBF_INSN_MBTOH
, SEM_FN_NAME ( frvbf
, mbtoh
) },
28900 { FRVBF_INSN_CMBTOH
, SEM_FN_NAME ( frvbf
, cmbtoh
) },
28901 { FRVBF_INSN_MHTOB
, SEM_FN_NAME ( frvbf
, mhtob
) },
28902 { FRVBF_INSN_CMHTOB
, SEM_FN_NAME ( frvbf
, cmhtob
) },
28903 { FRVBF_INSN_MBTOHE
, SEM_FN_NAME ( frvbf
, mbtohe
) },
28904 { FRVBF_INSN_CMBTOHE
, SEM_FN_NAME ( frvbf
, cmbtohe
) },
28905 { FRVBF_INSN_MNOP
, SEM_FN_NAME ( frvbf
, mnop
) },
28906 { FRVBF_INSN_MCLRACC_0
, SEM_FN_NAME ( frvbf
, mclracc_0
) },
28907 { FRVBF_INSN_MCLRACC_1
, SEM_FN_NAME ( frvbf
, mclracc_1
) },
28908 { FRVBF_INSN_MRDACC
, SEM_FN_NAME ( frvbf
, mrdacc
) },
28909 { FRVBF_INSN_MRDACCG
, SEM_FN_NAME ( frvbf
, mrdaccg
) },
28910 { FRVBF_INSN_MWTACC
, SEM_FN_NAME ( frvbf
, mwtacc
) },
28911 { FRVBF_INSN_MWTACCG
, SEM_FN_NAME ( frvbf
, mwtaccg
) },
28912 { FRVBF_INSN_MCOP1
, SEM_FN_NAME ( frvbf
, mcop1
) },
28913 { FRVBF_INSN_MCOP2
, SEM_FN_NAME ( frvbf
, mcop2
) },
28914 { FRVBF_INSN_FNOP
, SEM_FN_NAME ( frvbf
, fnop
) },
28918 /* Add the semantic fns to IDESC_TABLE. */
28921 SEM_FN_NAME ( frvbf
, init_idesc_table
) ( SIM_CPU
* current_cpu
)
28923 IDESC
* idesc_table
= CPU_IDESC ( current_cpu
);
28924 const struct sem_fn_desc
* sf
;
28925 int mach_num
= MACH_NUM ( CPU_MACH ( current_cpu
));
28927 for ( sf
= & sem_fns
[ 0 ]; sf
-> fn
!= 0 ; ++ sf
)
28929 const CGEN_INSN
* insn
= idesc_table
[ sf
-> index
]. idata
;
28930 int valid_p
= ( CGEN_INSN_VIRTUAL_P ( insn
)
28931 || CGEN_INSN_MACH_HAS_P ( insn
, mach_num
));
28934 idesc_table
[ sf
-> index
]. sem_fast
= sf
-> fn
;
28936 idesc_table
[ sf
-> index
]. sem_fast
= SEM_FN_NAME ( frvbf
, x_invalid
);
28939 idesc_table
[ sf
-> index
]. sem_full
= sf
-> fn
;
28941 idesc_table
[ sf
-> index
]. sem_full
= SEM_FN_NAME ( frvbf
, x_invalid
);