]>
git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/frv/sem.c
1 /* Simulator instruction semantics for frvbf.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996-2005 Free Software Foundation, Inc.
7 This file is part of the GNU simulators.
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 3 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with this program. If not, see <http://www.gnu.org/licenses/>.
24 #define WANT_CPU frvbf
25 #define WANT_CPU_FRVBF
32 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
33 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
35 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_ /**/ attr)
38 /* This is used so that we can compile two copies of the semantic code,
39 one with full feature support and one without that runs fast(er).
40 FAST_P, when desired, is defined on the command line, -DFAST_P=1. */
42 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_semf_,fn)
44 #define TRACE_RESULT(cpu, abuf, name, type, val)
46 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_sem_,fn)
49 /* x-invalid: --invalid-- */
52 SEM_FN_NAME ( frvbf
, x_invalid
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
54 #define FLD(f) abuf->fields.fmt_empty.f
55 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
56 int UNUSED written
= 0 ;
57 IADDR UNUSED pc
= abuf
-> addr
;
58 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 0 );
61 /* Update the recorded pc in the cpu state struct.
62 Only necessary for WITH_SCACHE case, but to avoid the
63 conditional compilation .... */
65 /* Virtual insns have zero size. Overwrite vpc with address of next insn
66 using the default-insn-bitsize spec. When executing insns in parallel
67 we may want to queue the fault and continue execution. */
68 vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
69 vpc
= sim_engine_invalid_insn ( current_cpu
, pc
, vpc
);
76 /* x-after: --after-- */
79 SEM_FN_NAME ( frvbf
, x_after
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
81 #define FLD(f) abuf->fields.fmt_empty.f
82 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
83 int UNUSED written
= 0 ;
84 IADDR UNUSED pc
= abuf
-> addr
;
85 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 0 );
88 #if WITH_SCACHE_PBB_FRVBF
89 frvbf_pbb_after ( current_cpu
, sem_arg
);
97 /* x-before: --before-- */
100 SEM_FN_NAME ( frvbf
, x_before
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
102 #define FLD(f) abuf->fields.fmt_empty.f
103 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
104 int UNUSED written
= 0 ;
105 IADDR UNUSED pc
= abuf
-> addr
;
106 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 0 );
109 #if WITH_SCACHE_PBB_FRVBF
110 frvbf_pbb_before ( current_cpu
, sem_arg
);
118 /* x-cti-chain: --cti-chain-- */
121 SEM_FN_NAME ( frvbf
, x_cti_chain
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
123 #define FLD(f) abuf->fields.fmt_empty.f
124 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
125 int UNUSED written
= 0 ;
126 IADDR UNUSED pc
= abuf
-> addr
;
127 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 0 );
130 #if WITH_SCACHE_PBB_FRVBF
132 vpc
= frvbf_pbb_cti_chain ( current_cpu
, sem_arg
,
133 pbb_br_type
, pbb_br_npc
);
136 /* FIXME: Allow provision of explicit ifmt spec in insn spec. */
137 vpc
= frvbf_pbb_cti_chain ( current_cpu
, sem_arg
,
138 CPU_PBB_BR_TYPE ( current_cpu
),
139 CPU_PBB_BR_NPC ( current_cpu
));
148 /* x-chain: --chain-- */
151 SEM_FN_NAME ( frvbf
, x_chain
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
153 #define FLD(f) abuf->fields.fmt_empty.f
154 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
155 int UNUSED written
= 0 ;
156 IADDR UNUSED pc
= abuf
-> addr
;
157 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 0 );
160 #if WITH_SCACHE_PBB_FRVBF
161 vpc
= frvbf_pbb_chain ( current_cpu
, sem_arg
);
172 /* x-begin: --begin-- */
175 SEM_FN_NAME ( frvbf
, x_begin
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
177 #define FLD(f) abuf->fields.fmt_empty.f
178 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
179 int UNUSED written
= 0 ;
180 IADDR UNUSED pc
= abuf
-> addr
;
181 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 0 );
184 #if WITH_SCACHE_PBB_FRVBF
185 #if defined DEFINE_SWITCH || defined FAST_P
186 /* In the switch case FAST_P is a constant, allowing several optimizations
187 in any called inline functions. */
188 vpc
= frvbf_pbb_begin ( current_cpu
, FAST_P
);
190 #if 0 /* cgen engine can't handle dynamic fast/full switching yet. */
191 vpc
= frvbf_pbb_begin ( current_cpu
, STATE_RUN_FAST_P ( CPU_STATE ( current_cpu
)));
193 vpc
= frvbf_pbb_begin ( current_cpu
, 0 );
203 /* add: add$pack $GRi,$GRj,$GRk */
206 SEM_FN_NAME ( frvbf
, add
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
208 #define FLD(f) abuf->fields.sfmt_addcc.f
209 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
210 int UNUSED written
= 0 ;
211 IADDR UNUSED pc
= abuf
-> addr
;
212 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
215 SI opval
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
216 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
217 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
224 /* sub: sub$pack $GRi,$GRj,$GRk */
227 SEM_FN_NAME ( frvbf
, sub
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
229 #define FLD(f) abuf->fields.sfmt_addcc.f
230 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
231 int UNUSED written
= 0 ;
232 IADDR UNUSED pc
= abuf
-> addr
;
233 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
236 SI opval
= SUBSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
237 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
238 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
245 /* and: and$pack $GRi,$GRj,$GRk */
248 SEM_FN_NAME ( frvbf
, and ) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
250 #define FLD(f) abuf->fields.sfmt_addcc.f
251 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
252 int UNUSED written
= 0 ;
253 IADDR UNUSED pc
= abuf
-> addr
;
254 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
257 SI opval
= ANDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
258 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
259 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
266 /* or: or$pack $GRi,$GRj,$GRk */
269 SEM_FN_NAME ( frvbf
, or ) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
271 #define FLD(f) abuf->fields.sfmt_addcc.f
272 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
273 int UNUSED written
= 0 ;
274 IADDR UNUSED pc
= abuf
-> addr
;
275 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
278 SI opval
= ORSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
279 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
280 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
287 /* xor: xor$pack $GRi,$GRj,$GRk */
290 SEM_FN_NAME ( frvbf
, xor ) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
292 #define FLD(f) abuf->fields.sfmt_addcc.f
293 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
294 int UNUSED written
= 0 ;
295 IADDR UNUSED pc
= abuf
-> addr
;
296 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
299 SI opval
= XORSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
300 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
301 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
308 /* not: not$pack $GRj,$GRk */
311 SEM_FN_NAME ( frvbf
, not ) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
313 #define FLD(f) abuf->fields.sfmt_scutss.f
314 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
315 int UNUSED written
= 0 ;
316 IADDR UNUSED pc
= abuf
-> addr
;
317 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
320 SI opval
= INVSI ( GET_H_GR ( FLD ( f_GRj
)));
321 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
322 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
329 /* sdiv: sdiv$pack $GRi,$GRj,$GRk */
332 SEM_FN_NAME ( frvbf
, sdiv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
334 #define FLD(f) abuf->fields.sfmt_addcc.f
335 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
336 int UNUSED written
= 0 ;
337 IADDR UNUSED pc
= abuf
-> addr
;
338 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
341 frvbf_signed_integer_divide ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), FLD ( f_GRk
), 0 );
349 /* nsdiv: nsdiv$pack $GRi,$GRj,$GRk */
352 SEM_FN_NAME ( frvbf
, nsdiv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
354 #define FLD(f) abuf->fields.sfmt_addcc.f
355 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
356 int UNUSED written
= 0 ;
357 IADDR UNUSED pc
= abuf
-> addr
;
358 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
361 frvbf_signed_integer_divide ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), FLD ( f_GRk
), 1 );
369 /* udiv: udiv$pack $GRi,$GRj,$GRk */
372 SEM_FN_NAME ( frvbf
, udiv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
374 #define FLD(f) abuf->fields.sfmt_addcc.f
375 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
376 int UNUSED written
= 0 ;
377 IADDR UNUSED pc
= abuf
-> addr
;
378 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
381 frvbf_unsigned_integer_divide ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), FLD ( f_GRk
), 0 );
389 /* nudiv: nudiv$pack $GRi,$GRj,$GRk */
392 SEM_FN_NAME ( frvbf
, nudiv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
394 #define FLD(f) abuf->fields.sfmt_addcc.f
395 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
396 int UNUSED written
= 0 ;
397 IADDR UNUSED pc
= abuf
-> addr
;
398 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
401 frvbf_unsigned_integer_divide ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), FLD ( f_GRk
), 1 );
409 /* smul: smul$pack $GRi,$GRj,$GRdoublek */
412 SEM_FN_NAME ( frvbf
, smul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
414 #define FLD(f) abuf->fields.sfmt_smulcc.f
415 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
416 int UNUSED written
= 0 ;
417 IADDR UNUSED pc
= abuf
-> addr
;
418 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
421 DI opval
= MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( GET_H_GR ( FLD ( f_GRj
))));
422 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
423 TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
430 /* umul: umul$pack $GRi,$GRj,$GRdoublek */
433 SEM_FN_NAME ( frvbf
, umul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
435 #define FLD(f) abuf->fields.sfmt_smulcc.f
436 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
437 int UNUSED written
= 0 ;
438 IADDR UNUSED pc
= abuf
-> addr
;
439 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
442 DI opval
= MULDI ( ZEXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), ZEXTSIDI ( GET_H_GR ( FLD ( f_GRj
))));
443 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
444 TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
451 /* smu: smu$pack $GRi,$GRj */
454 SEM_FN_NAME ( frvbf
, smu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
456 #define FLD(f) abuf->fields.sfmt_smass.f
457 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
458 int UNUSED written
= 0 ;
459 IADDR UNUSED pc
= abuf
-> addr
;
460 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
463 DI opval
= MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( GET_H_GR ( FLD ( f_GRj
))));
464 sim_queue_fn_di_write ( current_cpu
, frvbf_h_iacc0_set
, (( UINT
) 0 ), opval
);
465 TRACE_RESULT ( current_cpu
, abuf
, "iacc0" , 'D' , opval
);
472 /* smass: smass$pack $GRi,$GRj */
475 SEM_FN_NAME ( frvbf
, smass
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
477 #define FLD(f) abuf->fields.sfmt_smass.f
478 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
479 int UNUSED written
= 0 ;
480 IADDR UNUSED pc
= abuf
-> addr
;
481 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
484 DI opval
= ( ANDIF ( ANDIF ( GTDI ( MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( GET_H_GR ( FLD ( f_GRj
)))), 0 ), GTDI ( GET_H_IACC0 ((( UINT
) 0 )), 0 )), LTDI ( SUBDI ( 9223372036854775807 , MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( GET_H_GR ( FLD ( f_GRj
))))), GET_H_IACC0 ((( UINT
) 0 ))))) ? ( MAKEDI ( 2147483647 , 0xffffffff )) : ( ANDIF ( ANDIF ( LTDI ( MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( GET_H_GR ( FLD ( f_GRj
)))), 0 ), LTDI ( GET_H_IACC0 ((( UINT
) 0 )), 0 )), GTDI ( SUBDI ( 9223372036854775808 , MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( GET_H_GR ( FLD ( f_GRj
))))), GET_H_IACC0 ((( UINT
) 0 ))))) ? ( MAKEDI ( 0x80000000 , 0 )) : ( ADDDI ( GET_H_IACC0 ((( UINT
) 0 )), MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( GET_H_GR ( FLD ( f_GRj
))))));
485 sim_queue_fn_di_write ( current_cpu
, frvbf_h_iacc0_set
, (( UINT
) 0 ), opval
);
486 TRACE_RESULT ( current_cpu
, abuf
, "iacc0" , 'D' , opval
);
493 /* smsss: smsss$pack $GRi,$GRj */
496 SEM_FN_NAME ( frvbf
, smsss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
498 #define FLD(f) abuf->fields.sfmt_smass.f
499 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
500 int UNUSED written
= 0 ;
501 IADDR UNUSED pc
= abuf
-> addr
;
502 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
505 DI opval
= ( ANDIF ( ANDIF ( LTDI ( MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( GET_H_GR ( FLD ( f_GRj
)))), 0 ), GTDI ( GET_H_IACC0 ((( UINT
) 0 )), 0 )), LTDI ( ADDDI ( 9223372036854775807 , MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( GET_H_GR ( FLD ( f_GRj
))))), GET_H_IACC0 ((( UINT
) 0 ))))) ? ( MAKEDI ( 2147483647 , 0xffffffff )) : ( ANDIF ( ANDIF ( GTDI ( MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( GET_H_GR ( FLD ( f_GRj
)))), 0 ), LTDI ( GET_H_IACC0 ((( UINT
) 0 )), 0 )), GTDI ( ADDDI ( 9223372036854775808 , MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( GET_H_GR ( FLD ( f_GRj
))))), GET_H_IACC0 ((( UINT
) 0 ))))) ? ( MAKEDI ( 0x80000000 , 0 )) : ( SUBDI ( GET_H_IACC0 ((( UINT
) 0 )), MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( GET_H_GR ( FLD ( f_GRj
))))));
506 sim_queue_fn_di_write ( current_cpu
, frvbf_h_iacc0_set
, (( UINT
) 0 ), opval
);
507 TRACE_RESULT ( current_cpu
, abuf
, "iacc0" , 'D' , opval
);
514 /* sll: sll$pack $GRi,$GRj,$GRk */
517 SEM_FN_NAME ( frvbf
, sll
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
519 #define FLD(f) abuf->fields.sfmt_addcc.f
520 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
521 int UNUSED written
= 0 ;
522 IADDR UNUSED pc
= abuf
-> addr
;
523 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
526 SI opval
= SLLSI ( GET_H_GR ( FLD ( f_GRi
)), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 ));
527 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
528 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
535 /* srl: srl$pack $GRi,$GRj,$GRk */
538 SEM_FN_NAME ( frvbf
, srl
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
540 #define FLD(f) abuf->fields.sfmt_addcc.f
541 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
542 int UNUSED written
= 0 ;
543 IADDR UNUSED pc
= abuf
-> addr
;
544 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
547 SI opval
= SRLSI ( GET_H_GR ( FLD ( f_GRi
)), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 ));
548 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
549 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
556 /* sra: sra$pack $GRi,$GRj,$GRk */
559 SEM_FN_NAME ( frvbf
, sra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
561 #define FLD(f) abuf->fields.sfmt_addcc.f
562 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
563 int UNUSED written
= 0 ;
564 IADDR UNUSED pc
= abuf
-> addr
;
565 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
568 SI opval
= SRASI ( GET_H_GR ( FLD ( f_GRi
)), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 ));
569 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
570 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
577 /* slass: slass$pack $GRi,$GRj,$GRk */
580 SEM_FN_NAME ( frvbf
, slass
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
582 #define FLD(f) abuf->fields.sfmt_addcc.f
583 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
584 int UNUSED written
= 0 ;
585 IADDR UNUSED pc
= abuf
-> addr
;
586 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
589 SI opval
= frvbf_shift_left_arith_saturate ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
590 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
591 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
598 /* scutss: scutss$pack $GRj,$GRk */
601 SEM_FN_NAME ( frvbf
, scutss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
603 #define FLD(f) abuf->fields.sfmt_scutss.f
604 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
605 int UNUSED written
= 0 ;
606 IADDR UNUSED pc
= abuf
-> addr
;
607 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
610 SI opval
= frvbf_iacc_cut ( current_cpu
, GET_H_IACC0 ((( UINT
) 0 )), GET_H_GR ( FLD ( f_GRj
)));
611 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
612 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
619 /* scan: scan$pack $GRi,$GRj,$GRk */
622 SEM_FN_NAME ( frvbf
, scan
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
624 #define FLD(f) abuf->fields.sfmt_addcc.f
625 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
626 int UNUSED written
= 0 ;
627 IADDR UNUSED pc
= abuf
-> addr
;
628 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
633 tmp_tmp1
= GET_H_GR ( FLD ( f_GRi
));
634 tmp_tmp2
= SRASI ( GET_H_GR ( FLD ( f_GRj
)), 1 );
636 SI opval
= frvbf_scan_result ( current_cpu
, XORSI ( tmp_tmp1
, tmp_tmp2
));
637 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
638 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
646 /* cadd: cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */
649 SEM_FN_NAME ( frvbf
, cadd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
651 #define FLD(f) abuf->fields.sfmt_cswap.f
652 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
653 int UNUSED written
= 0 ;
654 IADDR UNUSED pc
= abuf
-> addr
;
655 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
657 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
659 SI opval
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
660 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
662 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
666 abuf
-> written
= written
;
671 /* csub: csub$pack $GRi,$GRj,$GRk,$CCi,$cond */
674 SEM_FN_NAME ( frvbf
, csub
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
676 #define FLD(f) abuf->fields.sfmt_cswap.f
677 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
678 int UNUSED written
= 0 ;
679 IADDR UNUSED pc
= abuf
-> addr
;
680 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
682 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
684 SI opval
= SUBSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
685 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
687 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
691 abuf
-> written
= written
;
696 /* cand: cand$pack $GRi,$GRj,$GRk,$CCi,$cond */
699 SEM_FN_NAME ( frvbf
, cand
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
701 #define FLD(f) abuf->fields.sfmt_cswap.f
702 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
703 int UNUSED written
= 0 ;
704 IADDR UNUSED pc
= abuf
-> addr
;
705 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
707 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
709 SI opval
= ANDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
710 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
712 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
716 abuf
-> written
= written
;
721 /* cor: cor$pack $GRi,$GRj,$GRk,$CCi,$cond */
724 SEM_FN_NAME ( frvbf
, cor
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
726 #define FLD(f) abuf->fields.sfmt_cswap.f
727 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
728 int UNUSED written
= 0 ;
729 IADDR UNUSED pc
= abuf
-> addr
;
730 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
732 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
734 SI opval
= ORSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
735 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
737 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
741 abuf
-> written
= written
;
746 /* cxor: cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */
749 SEM_FN_NAME ( frvbf
, cxor
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
751 #define FLD(f) abuf->fields.sfmt_cswap.f
752 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
753 int UNUSED written
= 0 ;
754 IADDR UNUSED pc
= abuf
-> addr
;
755 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
757 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
759 SI opval
= XORSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
760 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
762 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
766 abuf
-> written
= written
;
771 /* cnot: cnot$pack $GRj,$GRk,$CCi,$cond */
774 SEM_FN_NAME ( frvbf
, cnot
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
776 #define FLD(f) abuf->fields.sfmt_cswap.f
777 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
778 int UNUSED written
= 0 ;
779 IADDR UNUSED pc
= abuf
-> addr
;
780 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
782 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
784 SI opval
= INVSI ( GET_H_GR ( FLD ( f_GRj
)));
785 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
787 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
791 abuf
-> written
= written
;
796 /* csmul: csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
799 SEM_FN_NAME ( frvbf
, csmul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
801 #define FLD(f) abuf->fields.sfmt_clddu.f
802 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
803 int UNUSED written
= 0 ;
804 IADDR UNUSED pc
= abuf
-> addr
;
805 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
807 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
809 DI opval
= MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( GET_H_GR ( FLD ( f_GRj
))));
810 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
812 TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
816 abuf
-> written
= written
;
821 /* csdiv: csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
824 SEM_FN_NAME ( frvbf
, csdiv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
826 #define FLD(f) abuf->fields.sfmt_cswap.f
827 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
828 int UNUSED written
= 0 ;
829 IADDR UNUSED pc
= abuf
-> addr
;
830 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
832 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
834 frvbf_signed_integer_divide ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), FLD ( f_GRk
), 0 );
839 abuf
-> written
= written
;
844 /* cudiv: cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
847 SEM_FN_NAME ( frvbf
, cudiv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
849 #define FLD(f) abuf->fields.sfmt_cswap.f
850 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
851 int UNUSED written
= 0 ;
852 IADDR UNUSED pc
= abuf
-> addr
;
853 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
855 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
857 frvbf_unsigned_integer_divide ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), FLD ( f_GRk
), 0 );
862 abuf
-> written
= written
;
867 /* csll: csll$pack $GRi,$GRj,$GRk,$CCi,$cond */
870 SEM_FN_NAME ( frvbf
, csll
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
872 #define FLD(f) abuf->fields.sfmt_cswap.f
873 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
874 int UNUSED written
= 0 ;
875 IADDR UNUSED pc
= abuf
-> addr
;
876 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
878 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
880 SI opval
= SLLSI ( GET_H_GR ( FLD ( f_GRi
)), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 ));
881 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
883 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
887 abuf
-> written
= written
;
892 /* csrl: csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */
895 SEM_FN_NAME ( frvbf
, csrl
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
897 #define FLD(f) abuf->fields.sfmt_cswap.f
898 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
899 int UNUSED written
= 0 ;
900 IADDR UNUSED pc
= abuf
-> addr
;
901 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
903 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
905 SI opval
= SRLSI ( GET_H_GR ( FLD ( f_GRi
)), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 ));
906 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
908 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
912 abuf
-> written
= written
;
917 /* csra: csra$pack $GRi,$GRj,$GRk,$CCi,$cond */
920 SEM_FN_NAME ( frvbf
, csra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
922 #define FLD(f) abuf->fields.sfmt_cswap.f
923 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
924 int UNUSED written
= 0 ;
925 IADDR UNUSED pc
= abuf
-> addr
;
926 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
928 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
930 SI opval
= SRASI ( GET_H_GR ( FLD ( f_GRi
)), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 ));
931 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
933 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
937 abuf
-> written
= written
;
942 /* cscan: cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */
945 SEM_FN_NAME ( frvbf
, cscan
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
947 #define FLD(f) abuf->fields.sfmt_cswap.f
948 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
949 int UNUSED written
= 0 ;
950 IADDR UNUSED pc
= abuf
-> addr
;
951 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
953 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
957 tmp_tmp1
= GET_H_GR ( FLD ( f_GRi
));
958 tmp_tmp2
= SRASI ( GET_H_GR ( FLD ( f_GRj
)), 1 );
960 SI opval
= frvbf_scan_result ( current_cpu
, XORSI ( tmp_tmp1
, tmp_tmp2
));
961 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
963 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
968 abuf
-> written
= written
;
973 /* addcc: addcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
976 SEM_FN_NAME ( frvbf
, addcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
978 #define FLD(f) abuf->fields.sfmt_addcc.f
979 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
980 int UNUSED written
= 0 ;
981 IADDR UNUSED pc
= abuf
-> addr
;
982 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
988 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
989 tmp_tmp
= ADDOFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), 0 );
990 if ( EQBI ( tmp_tmp
, 0 )) {
991 tmp_cc
= ANDQI ( tmp_cc
, 13 );
993 tmp_cc
= ORQI ( tmp_cc
, 2 );
995 tmp_tmp
= ADDCFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), 0 );
996 if ( EQBI ( tmp_tmp
, 0 )) {
997 tmp_cc
= ANDQI ( tmp_cc
, 14 );
999 tmp_cc
= ORQI ( tmp_cc
, 1 );
1001 tmp_result
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
1002 if ( EQSI ( tmp_result
, 0 )) {
1003 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1005 if ( LTSI ( tmp_result
, 0 )) {
1006 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1008 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1012 SI opval
= tmp_result
;
1013 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1014 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1018 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1019 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1027 /* subcc: subcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1030 SEM_FN_NAME ( frvbf
, subcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1032 #define FLD(f) abuf->fields.sfmt_addcc.f
1033 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1034 int UNUSED written
= 0 ;
1035 IADDR UNUSED pc
= abuf
-> addr
;
1036 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1042 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
1043 tmp_tmp
= SUBOFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), 0 );
1044 if ( EQBI ( tmp_tmp
, 0 )) {
1045 tmp_cc
= ANDQI ( tmp_cc
, 13 );
1047 tmp_cc
= ORQI ( tmp_cc
, 2 );
1049 tmp_tmp
= SUBCFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), 0 );
1050 if ( EQBI ( tmp_tmp
, 0 )) {
1051 tmp_cc
= ANDQI ( tmp_cc
, 14 );
1053 tmp_cc
= ORQI ( tmp_cc
, 1 );
1055 tmp_result
= SUBSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
1056 if ( EQSI ( tmp_result
, 0 )) {
1057 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1059 if ( LTSI ( tmp_result
, 0 )) {
1060 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1062 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1066 SI opval
= tmp_result
;
1067 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1068 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1072 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1073 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1081 /* andcc: andcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1084 SEM_FN_NAME ( frvbf
, andcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1086 #define FLD(f) abuf->fields.sfmt_addcc.f
1087 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1088 int UNUSED written
= 0 ;
1089 IADDR UNUSED pc
= abuf
-> addr
;
1090 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1094 tmp_tmp
= ANDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
1097 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1098 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1100 if ( EQSI ( tmp_tmp
, 0 )) {
1102 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 7 ), 4 );
1103 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1104 written
|= ( 1 << 4 );
1105 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1108 if ( LTSI ( tmp_tmp
, 0 )) {
1110 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 11 ), 8 );
1111 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1112 written
|= ( 1 << 4 );
1113 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1117 UQI opval
= ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 3 );
1118 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1119 written
|= ( 1 << 4 );
1120 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1126 abuf
-> written
= written
;
1131 /* orcc: orcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1134 SEM_FN_NAME ( frvbf
, orcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1136 #define FLD(f) abuf->fields.sfmt_addcc.f
1137 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1138 int UNUSED written
= 0 ;
1139 IADDR UNUSED pc
= abuf
-> addr
;
1140 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1144 tmp_tmp
= ORSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
1147 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1148 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1150 if ( EQSI ( tmp_tmp
, 0 )) {
1152 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 7 ), 4 );
1153 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1154 written
|= ( 1 << 4 );
1155 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1158 if ( LTSI ( tmp_tmp
, 0 )) {
1160 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 11 ), 8 );
1161 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1162 written
|= ( 1 << 4 );
1163 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1167 UQI opval
= ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 3 );
1168 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1169 written
|= ( 1 << 4 );
1170 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1176 abuf
-> written
= written
;
1181 /* xorcc: xorcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1184 SEM_FN_NAME ( frvbf
, xorcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1186 #define FLD(f) abuf->fields.sfmt_addcc.f
1187 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1188 int UNUSED written
= 0 ;
1189 IADDR UNUSED pc
= abuf
-> addr
;
1190 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1194 tmp_tmp
= XORSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
1197 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1198 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1200 if ( EQSI ( tmp_tmp
, 0 )) {
1202 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 7 ), 4 );
1203 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1204 written
|= ( 1 << 4 );
1205 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1208 if ( LTSI ( tmp_tmp
, 0 )) {
1210 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 11 ), 8 );
1211 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1212 written
|= ( 1 << 4 );
1213 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1217 UQI opval
= ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 3 );
1218 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1219 written
|= ( 1 << 4 );
1220 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1226 abuf
-> written
= written
;
1231 /* sllcc: sllcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1234 SEM_FN_NAME ( frvbf
, sllcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1236 #define FLD(f) abuf->fields.sfmt_addcc.f
1237 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1238 int UNUSED written
= 0 ;
1239 IADDR UNUSED pc
= abuf
-> addr
;
1240 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1246 tmp_shift
= ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 );
1247 tmp_cc
= frvbf_set_icc_for_shift_left ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), tmp_shift
, CPU ( h_iccr
[ FLD ( f_ICCi_1
)]));
1248 tmp_tmp
= SLLSI ( GET_H_GR ( FLD ( f_GRi
)), tmp_shift
);
1251 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1252 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1254 if ( EQSI ( tmp_tmp
, 0 )) {
1255 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1257 if ( LTSI ( tmp_tmp
, 0 )) {
1258 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1260 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1265 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1266 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1274 /* srlcc: srlcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1277 SEM_FN_NAME ( frvbf
, srlcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1279 #define FLD(f) abuf->fields.sfmt_addcc.f
1280 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1281 int UNUSED written
= 0 ;
1282 IADDR UNUSED pc
= abuf
-> addr
;
1283 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1289 tmp_shift
= ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 );
1290 tmp_cc
= frvbf_set_icc_for_shift_right ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), tmp_shift
, CPU ( h_iccr
[ FLD ( f_ICCi_1
)]));
1291 tmp_tmp
= SRLSI ( GET_H_GR ( FLD ( f_GRi
)), tmp_shift
);
1294 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1295 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1297 if ( EQSI ( tmp_tmp
, 0 )) {
1298 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1300 if ( LTSI ( tmp_tmp
, 0 )) {
1301 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1303 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1308 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1309 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1317 /* sracc: sracc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1320 SEM_FN_NAME ( frvbf
, sracc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1322 #define FLD(f) abuf->fields.sfmt_addcc.f
1323 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1324 int UNUSED written
= 0 ;
1325 IADDR UNUSED pc
= abuf
-> addr
;
1326 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1332 tmp_shift
= ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 );
1333 tmp_cc
= frvbf_set_icc_for_shift_right ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), tmp_shift
, CPU ( h_iccr
[ FLD ( f_ICCi_1
)]));
1334 tmp_tmp
= SRASI ( GET_H_GR ( FLD ( f_GRi
)), tmp_shift
);
1337 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1338 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1340 if ( EQSI ( tmp_tmp
, 0 )) {
1341 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1343 if ( LTSI ( tmp_tmp
, 0 )) {
1344 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1346 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1351 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1352 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1360 /* smulcc: smulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1363 SEM_FN_NAME ( frvbf
, smulcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1365 #define FLD(f) abuf->fields.sfmt_smulcc.f
1366 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1367 int UNUSED written
= 0 ;
1368 IADDR UNUSED pc
= abuf
-> addr
;
1369 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1374 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
1375 tmp_tmp
= MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( GET_H_GR ( FLD ( f_GRj
))));
1376 if ( EQDI ( SRLDI ( tmp_tmp
, 63 ), 0 )) {
1377 tmp_cc
= ANDQI ( tmp_cc
, 7 );
1379 tmp_cc
= ORQI ( tmp_cc
, 8 );
1381 if ( EQBI ( EQDI ( tmp_tmp
, 0 ), 0 )) {
1382 tmp_cc
= ANDQI ( tmp_cc
, 11 );
1384 tmp_cc
= ORQI ( tmp_cc
, 4 );
1388 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
1389 TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
1393 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1394 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1402 /* umulcc: umulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1405 SEM_FN_NAME ( frvbf
, umulcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1407 #define FLD(f) abuf->fields.sfmt_smulcc.f
1408 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1409 int UNUSED written
= 0 ;
1410 IADDR UNUSED pc
= abuf
-> addr
;
1411 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1416 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
1417 tmp_tmp
= MULDI ( ZEXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), ZEXTSIDI ( GET_H_GR ( FLD ( f_GRj
))));
1418 if ( EQDI ( SRLDI ( tmp_tmp
, 63 ), 0 )) {
1419 tmp_cc
= ANDQI ( tmp_cc
, 7 );
1421 tmp_cc
= ORQI ( tmp_cc
, 8 );
1423 if ( EQBI ( EQDI ( tmp_tmp
, 0 ), 0 )) {
1424 tmp_cc
= ANDQI ( tmp_cc
, 11 );
1426 tmp_cc
= ORQI ( tmp_cc
, 4 );
1430 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
1431 TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
1435 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1436 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1444 /* caddcc: caddcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1447 SEM_FN_NAME ( frvbf
, caddcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1449 #define FLD(f) abuf->fields.sfmt_caddcc.f
1450 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1451 int UNUSED written
= 0 ;
1452 IADDR UNUSED pc
= abuf
-> addr
;
1453 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1455 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
1460 tmp_cc
= CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]);
1461 tmp_tmp
= ADDOFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), 0 );
1462 if ( EQBI ( tmp_tmp
, 0 )) {
1463 tmp_cc
= ANDQI ( tmp_cc
, 13 );
1465 tmp_cc
= ORQI ( tmp_cc
, 2 );
1467 tmp_tmp
= ADDCFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), 0 );
1468 if ( EQBI ( tmp_tmp
, 0 )) {
1469 tmp_cc
= ANDQI ( tmp_cc
, 14 );
1471 tmp_cc
= ORQI ( tmp_cc
, 1 );
1473 tmp_result
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
1474 if ( EQSI ( tmp_result
, 0 )) {
1475 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1477 if ( LTSI ( tmp_result
, 0 )) {
1478 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1480 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1484 SI opval
= tmp_result
;
1485 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1486 written
|= ( 1 << 6 );
1487 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1491 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), opval
);
1492 written
|= ( 1 << 7 );
1493 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1498 abuf
-> written
= written
;
1503 /* csubcc: csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1506 SEM_FN_NAME ( frvbf
, csubcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1508 #define FLD(f) abuf->fields.sfmt_caddcc.f
1509 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1510 int UNUSED written
= 0 ;
1511 IADDR UNUSED pc
= abuf
-> addr
;
1512 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1514 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
1519 tmp_cc
= CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]);
1520 tmp_tmp
= SUBOFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), 0 );
1521 if ( EQBI ( tmp_tmp
, 0 )) {
1522 tmp_cc
= ANDQI ( tmp_cc
, 13 );
1524 tmp_cc
= ORQI ( tmp_cc
, 2 );
1526 tmp_tmp
= SUBCFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), 0 );
1527 if ( EQBI ( tmp_tmp
, 0 )) {
1528 tmp_cc
= ANDQI ( tmp_cc
, 14 );
1530 tmp_cc
= ORQI ( tmp_cc
, 1 );
1532 tmp_result
= SUBSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
1533 if ( EQSI ( tmp_result
, 0 )) {
1534 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1536 if ( LTSI ( tmp_result
, 0 )) {
1537 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1539 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1543 SI opval
= tmp_result
;
1544 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1545 written
|= ( 1 << 6 );
1546 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1550 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), opval
);
1551 written
|= ( 1 << 7 );
1552 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1557 abuf
-> written
= written
;
1562 /* csmulcc: csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
1565 SEM_FN_NAME ( frvbf
, csmulcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1567 #define FLD(f) abuf->fields.sfmt_csmulcc.f
1568 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1569 int UNUSED written
= 0 ;
1570 IADDR UNUSED pc
= abuf
-> addr
;
1571 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1573 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
1577 tmp_cc
= CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]);
1578 tmp_tmp
= MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( GET_H_GR ( FLD ( f_GRj
))));
1579 if ( EQDI ( SRLDI ( tmp_tmp
, 63 ), 0 )) {
1580 tmp_cc
= ANDQI ( tmp_cc
, 7 );
1582 tmp_cc
= ORQI ( tmp_cc
, 8 );
1584 if ( EQBI ( EQDI ( tmp_tmp
, 0 ), 0 )) {
1585 tmp_cc
= ANDQI ( tmp_cc
, 11 );
1587 tmp_cc
= ORQI ( tmp_cc
, 4 );
1591 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
1592 written
|= ( 1 << 6 );
1593 TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
1597 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), opval
);
1598 written
|= ( 1 << 7 );
1599 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1604 abuf
-> written
= written
;
1609 /* candcc: candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1612 SEM_FN_NAME ( frvbf
, candcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1614 #define FLD(f) abuf->fields.sfmt_caddcc.f
1615 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1616 int UNUSED written
= 0 ;
1617 IADDR UNUSED pc
= abuf
-> addr
;
1618 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1620 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
1623 tmp_tmp
= ANDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
1626 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1627 written
|= ( 1 << 6 );
1628 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1630 if ( EQSI ( tmp_tmp
, 0 )) {
1632 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), 7 ), 4 );
1633 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), opval
);
1634 written
|= ( 1 << 7 );
1635 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1638 if ( LTSI ( tmp_tmp
, 0 )) {
1640 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), 11 ), 8 );
1641 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), opval
);
1642 written
|= ( 1 << 7 );
1643 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1647 UQI opval
= ANDQI ( CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), 3 );
1648 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), opval
);
1649 written
|= ( 1 << 7 );
1650 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1657 abuf
-> written
= written
;
1662 /* corcc: corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1665 SEM_FN_NAME ( frvbf
, corcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1667 #define FLD(f) abuf->fields.sfmt_caddcc.f
1668 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1669 int UNUSED written
= 0 ;
1670 IADDR UNUSED pc
= abuf
-> addr
;
1671 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1673 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
1676 tmp_tmp
= ORSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
1679 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1680 written
|= ( 1 << 6 );
1681 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1683 if ( EQSI ( tmp_tmp
, 0 )) {
1685 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), 7 ), 4 );
1686 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), opval
);
1687 written
|= ( 1 << 7 );
1688 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1691 if ( LTSI ( tmp_tmp
, 0 )) {
1693 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), 11 ), 8 );
1694 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), opval
);
1695 written
|= ( 1 << 7 );
1696 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1700 UQI opval
= ANDQI ( CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), 3 );
1701 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), opval
);
1702 written
|= ( 1 << 7 );
1703 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1710 abuf
-> written
= written
;
1715 /* cxorcc: cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1718 SEM_FN_NAME ( frvbf
, cxorcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1720 #define FLD(f) abuf->fields.sfmt_caddcc.f
1721 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1722 int UNUSED written
= 0 ;
1723 IADDR UNUSED pc
= abuf
-> addr
;
1724 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1726 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
1729 tmp_tmp
= XORSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
1732 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1733 written
|= ( 1 << 6 );
1734 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1736 if ( EQSI ( tmp_tmp
, 0 )) {
1738 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), 7 ), 4 );
1739 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), opval
);
1740 written
|= ( 1 << 7 );
1741 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1744 if ( LTSI ( tmp_tmp
, 0 )) {
1746 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), 11 ), 8 );
1747 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), opval
);
1748 written
|= ( 1 << 7 );
1749 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1753 UQI opval
= ANDQI ( CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), 3 );
1754 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), opval
);
1755 written
|= ( 1 << 7 );
1756 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1763 abuf
-> written
= written
;
1768 /* csllcc: csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1771 SEM_FN_NAME ( frvbf
, csllcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1773 #define FLD(f) abuf->fields.sfmt_caddcc.f
1774 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1775 int UNUSED written
= 0 ;
1776 IADDR UNUSED pc
= abuf
-> addr
;
1777 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1779 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
1784 tmp_shift
= ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 );
1785 tmp_cc
= frvbf_set_icc_for_shift_left ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), tmp_shift
, CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]));
1786 tmp_tmp
= SLLSI ( GET_H_GR ( FLD ( f_GRi
)), tmp_shift
);
1789 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1790 written
|= ( 1 << 6 );
1791 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1793 if ( EQSI ( tmp_tmp
, 0 )) {
1794 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1796 if ( LTSI ( tmp_tmp
, 0 )) {
1797 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1799 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1804 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), opval
);
1805 written
|= ( 1 << 7 );
1806 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1811 abuf
-> written
= written
;
1816 /* csrlcc: csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1819 SEM_FN_NAME ( frvbf
, csrlcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1821 #define FLD(f) abuf->fields.sfmt_caddcc.f
1822 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1823 int UNUSED written
= 0 ;
1824 IADDR UNUSED pc
= abuf
-> addr
;
1825 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1827 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
1832 tmp_shift
= ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 );
1833 tmp_cc
= frvbf_set_icc_for_shift_right ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), tmp_shift
, CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]));
1834 tmp_tmp
= SRLSI ( GET_H_GR ( FLD ( f_GRi
)), tmp_shift
);
1837 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1838 written
|= ( 1 << 6 );
1839 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1841 if ( EQSI ( tmp_tmp
, 0 )) {
1842 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1844 if ( LTSI ( tmp_tmp
, 0 )) {
1845 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1847 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1852 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), opval
);
1853 written
|= ( 1 << 7 );
1854 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1859 abuf
-> written
= written
;
1864 /* csracc: csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1867 SEM_FN_NAME ( frvbf
, csracc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1869 #define FLD(f) abuf->fields.sfmt_caddcc.f
1870 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1871 int UNUSED written
= 0 ;
1872 IADDR UNUSED pc
= abuf
-> addr
;
1873 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1875 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
1880 tmp_shift
= ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 31 );
1881 tmp_cc
= frvbf_set_icc_for_shift_right ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), tmp_shift
, CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]));
1882 tmp_tmp
= SRASI ( GET_H_GR ( FLD ( f_GRi
)), tmp_shift
);
1885 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1886 written
|= ( 1 << 6 );
1887 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1889 if ( EQSI ( tmp_tmp
, 0 )) {
1890 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1892 if ( LTSI ( tmp_tmp
, 0 )) {
1893 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1895 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1900 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[(( FLD ( f_CCi
)) & ( 3 ))]), opval
);
1901 written
|= ( 1 << 7 );
1902 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
1907 abuf
-> written
= written
;
1912 /* addx: addx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1915 SEM_FN_NAME ( frvbf
, addx
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1917 #define FLD(f) abuf->fields.sfmt_addcc.f
1918 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1919 int UNUSED written
= 0 ;
1920 IADDR UNUSED pc
= abuf
-> addr
;
1921 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1924 SI opval
= ADDCSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 1 )));
1925 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1926 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1933 /* subx: subx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1936 SEM_FN_NAME ( frvbf
, subx
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1938 #define FLD(f) abuf->fields.sfmt_addcc.f
1939 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1940 int UNUSED written
= 0 ;
1941 IADDR UNUSED pc
= abuf
-> addr
;
1942 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1945 SI opval
= SUBCSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 1 )));
1946 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1947 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1954 /* addxcc: addxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1957 SEM_FN_NAME ( frvbf
, addxcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
1959 #define FLD(f) abuf->fields.sfmt_addcc.f
1960 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
1961 int UNUSED written
= 0 ;
1962 IADDR UNUSED pc
= abuf
-> addr
;
1963 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
1968 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
1969 tmp_tmp
= ADDCSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 )));
1970 if ( EQSI ( ADDOFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 ))), 0 )) {
1971 tmp_cc
= ANDQI ( tmp_cc
, 13 );
1973 tmp_cc
= ORQI ( tmp_cc
, 2 );
1975 if ( EQSI ( ADDCFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 ))), 0 )) {
1976 tmp_cc
= ANDQI ( tmp_cc
, 14 );
1978 tmp_cc
= ORQI ( tmp_cc
, 1 );
1980 if ( EQSI ( tmp_tmp
, 0 )) {
1981 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
1983 if ( LTSI ( tmp_tmp
, 0 )) {
1984 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
1986 tmp_cc
= ANDQI ( tmp_cc
, 3 );
1991 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
1992 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
1996 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
1997 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2005 /* subxcc: subxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
2008 SEM_FN_NAME ( frvbf
, subxcc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2010 #define FLD(f) abuf->fields.sfmt_addcc.f
2011 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2012 int UNUSED written
= 0 ;
2013 IADDR UNUSED pc
= abuf
-> addr
;
2014 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2019 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
2020 tmp_tmp
= SUBCSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 )));
2021 if ( EQSI ( SUBOFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 ))), 0 )) {
2022 tmp_cc
= ANDQI ( tmp_cc
, 13 );
2024 tmp_cc
= ORQI ( tmp_cc
, 2 );
2026 if ( EQSI ( SUBCFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 ))), 0 )) {
2027 tmp_cc
= ANDQI ( tmp_cc
, 14 );
2029 tmp_cc
= ORQI ( tmp_cc
, 1 );
2031 if ( EQSI ( tmp_tmp
, 0 )) {
2032 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
2034 if ( LTSI ( tmp_tmp
, 0 )) {
2035 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
2037 tmp_cc
= ANDQI ( tmp_cc
, 3 );
2042 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2043 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2047 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2048 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2056 /* addss: addss$pack $GRi,$GRj,$GRk */
2059 SEM_FN_NAME ( frvbf
, addss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2061 #define FLD(f) abuf->fields.sfmt_addcc.f
2062 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2063 int UNUSED written
= 0 ;
2064 IADDR UNUSED pc
= abuf
-> addr
;
2065 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2069 SI opval
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
2070 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2071 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2073 if ( ADDOFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), 0 )) {
2075 SI opval
= ( GTSI ( GET_H_GR ( FLD ( f_GRi
)), 0 )) ? ( 2147483647 ) : ( LTSI ( GET_H_GR ( FLD ( f_GRi
)), 0 )) ? ( 0x80000000 ) : ( 0 );
2076 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2077 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2086 /* subss: subss$pack $GRi,$GRj,$GRk */
2089 SEM_FN_NAME ( frvbf
, subss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2091 #define FLD(f) abuf->fields.sfmt_addcc.f
2092 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2093 int UNUSED written
= 0 ;
2094 IADDR UNUSED pc
= abuf
-> addr
;
2095 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2099 SI opval
= SUBSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
2100 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2101 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2103 if ( SUBOFSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), 0 )) {
2105 SI opval
= ( GTSI ( GET_H_GR ( FLD ( f_GRi
)), 0 )) ? ( 2147483647 ) : ( LTSI ( GET_H_GR ( FLD ( f_GRi
)), 0 )) ? ( 0x80000000 ) : ( 0 );
2106 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2107 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2116 /* addi: addi$pack $GRi,$s12,$GRk */
2119 SEM_FN_NAME ( frvbf
, addi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2121 #define FLD(f) abuf->fields.sfmt_swapi.f
2122 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2123 int UNUSED written
= 0 ;
2124 IADDR UNUSED pc
= abuf
-> addr
;
2125 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2128 SI opval
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
2129 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2130 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2137 /* subi: subi$pack $GRi,$s12,$GRk */
2140 SEM_FN_NAME ( frvbf
, subi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2142 #define FLD(f) abuf->fields.sfmt_swapi.f
2143 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2144 int UNUSED written
= 0 ;
2145 IADDR UNUSED pc
= abuf
-> addr
;
2146 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2149 SI opval
= SUBSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
2150 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2151 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2158 /* andi: andi$pack $GRi,$s12,$GRk */
2161 SEM_FN_NAME ( frvbf
, andi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2163 #define FLD(f) abuf->fields.sfmt_swapi.f
2164 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2165 int UNUSED written
= 0 ;
2166 IADDR UNUSED pc
= abuf
-> addr
;
2167 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2170 SI opval
= ANDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
2171 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2172 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2179 /* ori: ori$pack $GRi,$s12,$GRk */
2182 SEM_FN_NAME ( frvbf
, ori
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2184 #define FLD(f) abuf->fields.sfmt_swapi.f
2185 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2186 int UNUSED written
= 0 ;
2187 IADDR UNUSED pc
= abuf
-> addr
;
2188 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2191 SI opval
= ORSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
2192 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2193 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2200 /* xori: xori$pack $GRi,$s12,$GRk */
2203 SEM_FN_NAME ( frvbf
, xori
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2205 #define FLD(f) abuf->fields.sfmt_swapi.f
2206 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2207 int UNUSED written
= 0 ;
2208 IADDR UNUSED pc
= abuf
-> addr
;
2209 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2212 SI opval
= XORSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
2213 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2214 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2221 /* sdivi: sdivi$pack $GRi,$s12,$GRk */
2224 SEM_FN_NAME ( frvbf
, sdivi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2226 #define FLD(f) abuf->fields.sfmt_swapi.f
2227 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2228 int UNUSED written
= 0 ;
2229 IADDR UNUSED pc
= abuf
-> addr
;
2230 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2233 frvbf_signed_integer_divide ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
), FLD ( f_GRk
), 0 );
2241 /* nsdivi: nsdivi$pack $GRi,$s12,$GRk */
2244 SEM_FN_NAME ( frvbf
, nsdivi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2246 #define FLD(f) abuf->fields.sfmt_swapi.f
2247 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2248 int UNUSED written
= 0 ;
2249 IADDR UNUSED pc
= abuf
-> addr
;
2250 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2253 frvbf_signed_integer_divide ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
), FLD ( f_GRk
), 1 );
2261 /* udivi: udivi$pack $GRi,$s12,$GRk */
2264 SEM_FN_NAME ( frvbf
, udivi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2266 #define FLD(f) abuf->fields.sfmt_swapi.f
2267 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2268 int UNUSED written
= 0 ;
2269 IADDR UNUSED pc
= abuf
-> addr
;
2270 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2273 frvbf_unsigned_integer_divide ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
), FLD ( f_GRk
), 0 );
2281 /* nudivi: nudivi$pack $GRi,$s12,$GRk */
2284 SEM_FN_NAME ( frvbf
, nudivi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2286 #define FLD(f) abuf->fields.sfmt_swapi.f
2287 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2288 int UNUSED written
= 0 ;
2289 IADDR UNUSED pc
= abuf
-> addr
;
2290 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2293 frvbf_unsigned_integer_divide ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
), FLD ( f_GRk
), 1 );
2301 /* smuli: smuli$pack $GRi,$s12,$GRdoublek */
2304 SEM_FN_NAME ( frvbf
, smuli
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2306 #define FLD(f) abuf->fields.sfmt_smuli.f
2307 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2308 int UNUSED written
= 0 ;
2309 IADDR UNUSED pc
= abuf
-> addr
;
2310 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2313 DI opval
= MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( FLD ( f_d12
)));
2314 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
2315 TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
2322 /* umuli: umuli$pack $GRi,$s12,$GRdoublek */
2325 SEM_FN_NAME ( frvbf
, umuli
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2327 #define FLD(f) abuf->fields.sfmt_smuli.f
2328 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2329 int UNUSED written
= 0 ;
2330 IADDR UNUSED pc
= abuf
-> addr
;
2331 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2334 DI opval
= MULDI ( ZEXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), ZEXTSIDI ( FLD ( f_d12
)));
2335 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
2336 TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
2343 /* slli: slli$pack $GRi,$s12,$GRk */
2346 SEM_FN_NAME ( frvbf
, slli
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2348 #define FLD(f) abuf->fields.sfmt_swapi.f
2349 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2350 int UNUSED written
= 0 ;
2351 IADDR UNUSED pc
= abuf
-> addr
;
2352 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2355 SI opval
= SLLSI ( GET_H_GR ( FLD ( f_GRi
)), ANDSI ( FLD ( f_d12
), 31 ));
2356 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2357 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2364 /* srli: srli$pack $GRi,$s12,$GRk */
2367 SEM_FN_NAME ( frvbf
, srli
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2369 #define FLD(f) abuf->fields.sfmt_swapi.f
2370 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2371 int UNUSED written
= 0 ;
2372 IADDR UNUSED pc
= abuf
-> addr
;
2373 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2376 SI opval
= SRLSI ( GET_H_GR ( FLD ( f_GRi
)), ANDSI ( FLD ( f_d12
), 31 ));
2377 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2378 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2385 /* srai: srai$pack $GRi,$s12,$GRk */
2388 SEM_FN_NAME ( frvbf
, srai
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2390 #define FLD(f) abuf->fields.sfmt_swapi.f
2391 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2392 int UNUSED written
= 0 ;
2393 IADDR UNUSED pc
= abuf
-> addr
;
2394 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2397 SI opval
= SRASI ( GET_H_GR ( FLD ( f_GRi
)), ANDSI ( FLD ( f_d12
), 31 ));
2398 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2399 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2406 /* scani: scani$pack $GRi,$s12,$GRk */
2409 SEM_FN_NAME ( frvbf
, scani
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2411 #define FLD(f) abuf->fields.sfmt_swapi.f
2412 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2413 int UNUSED written
= 0 ;
2414 IADDR UNUSED pc
= abuf
-> addr
;
2415 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2420 tmp_tmp1
= GET_H_GR ( FLD ( f_GRi
));
2421 tmp_tmp2
= SRASI ( FLD ( f_d12
), 1 );
2423 SI opval
= frvbf_scan_result ( current_cpu
, XORSI ( tmp_tmp1
, tmp_tmp2
));
2424 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2425 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2433 /* addicc: addicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2436 SEM_FN_NAME ( frvbf
, addicc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2438 #define FLD(f) abuf->fields.sfmt_addicc.f
2439 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2440 int UNUSED written
= 0 ;
2441 IADDR UNUSED pc
= abuf
-> addr
;
2442 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2448 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
2449 tmp_tmp
= ADDOFSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), 0 );
2450 if ( EQBI ( tmp_tmp
, 0 )) {
2451 tmp_cc
= ANDQI ( tmp_cc
, 13 );
2453 tmp_cc
= ORQI ( tmp_cc
, 2 );
2455 tmp_tmp
= ADDCFSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), 0 );
2456 if ( EQBI ( tmp_tmp
, 0 )) {
2457 tmp_cc
= ANDQI ( tmp_cc
, 14 );
2459 tmp_cc
= ORQI ( tmp_cc
, 1 );
2461 tmp_result
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
));
2462 if ( EQSI ( tmp_result
, 0 )) {
2463 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
2465 if ( LTSI ( tmp_result
, 0 )) {
2466 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
2468 tmp_cc
= ANDQI ( tmp_cc
, 3 );
2472 SI opval
= tmp_result
;
2473 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2474 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2478 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2479 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2487 /* subicc: subicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2490 SEM_FN_NAME ( frvbf
, subicc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2492 #define FLD(f) abuf->fields.sfmt_addicc.f
2493 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2494 int UNUSED written
= 0 ;
2495 IADDR UNUSED pc
= abuf
-> addr
;
2496 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2502 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
2503 tmp_tmp
= SUBOFSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), 0 );
2504 if ( EQBI ( tmp_tmp
, 0 )) {
2505 tmp_cc
= ANDQI ( tmp_cc
, 13 );
2507 tmp_cc
= ORQI ( tmp_cc
, 2 );
2509 tmp_tmp
= SUBCFSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), 0 );
2510 if ( EQBI ( tmp_tmp
, 0 )) {
2511 tmp_cc
= ANDQI ( tmp_cc
, 14 );
2513 tmp_cc
= ORQI ( tmp_cc
, 1 );
2515 tmp_result
= SUBSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
));
2516 if ( EQSI ( tmp_result
, 0 )) {
2517 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
2519 if ( LTSI ( tmp_result
, 0 )) {
2520 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
2522 tmp_cc
= ANDQI ( tmp_cc
, 3 );
2526 SI opval
= tmp_result
;
2527 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2528 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2532 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2533 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2541 /* andicc: andicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2544 SEM_FN_NAME ( frvbf
, andicc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2546 #define FLD(f) abuf->fields.sfmt_addicc.f
2547 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2548 int UNUSED written
= 0 ;
2549 IADDR UNUSED pc
= abuf
-> addr
;
2550 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2554 tmp_tmp
= ANDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
));
2557 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2558 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2560 if ( EQSI ( tmp_tmp
, 0 )) {
2562 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 7 ), 4 );
2563 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2564 written
|= ( 1 << 4 );
2565 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2568 if ( LTSI ( tmp_tmp
, 0 )) {
2570 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 11 ), 8 );
2571 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2572 written
|= ( 1 << 4 );
2573 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2577 UQI opval
= ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 3 );
2578 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2579 written
|= ( 1 << 4 );
2580 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2586 abuf
-> written
= written
;
2591 /* oricc: oricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2594 SEM_FN_NAME ( frvbf
, oricc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2596 #define FLD(f) abuf->fields.sfmt_addicc.f
2597 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2598 int UNUSED written
= 0 ;
2599 IADDR UNUSED pc
= abuf
-> addr
;
2600 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2604 tmp_tmp
= ORSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
));
2607 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2608 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2610 if ( EQSI ( tmp_tmp
, 0 )) {
2612 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 7 ), 4 );
2613 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2614 written
|= ( 1 << 4 );
2615 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2618 if ( LTSI ( tmp_tmp
, 0 )) {
2620 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 11 ), 8 );
2621 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2622 written
|= ( 1 << 4 );
2623 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2627 UQI opval
= ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 3 );
2628 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2629 written
|= ( 1 << 4 );
2630 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2636 abuf
-> written
= written
;
2641 /* xoricc: xoricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2644 SEM_FN_NAME ( frvbf
, xoricc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2646 #define FLD(f) abuf->fields.sfmt_addicc.f
2647 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2648 int UNUSED written
= 0 ;
2649 IADDR UNUSED pc
= abuf
-> addr
;
2650 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2654 tmp_tmp
= XORSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
));
2657 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2658 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2660 if ( EQSI ( tmp_tmp
, 0 )) {
2662 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 7 ), 4 );
2663 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2664 written
|= ( 1 << 4 );
2665 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2668 if ( LTSI ( tmp_tmp
, 0 )) {
2670 UQI opval
= ORQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 11 ), 8 );
2671 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2672 written
|= ( 1 << 4 );
2673 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2677 UQI opval
= ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 3 );
2678 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2679 written
|= ( 1 << 4 );
2680 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2686 abuf
-> written
= written
;
2691 /* smulicc: smulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2694 SEM_FN_NAME ( frvbf
, smulicc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2696 #define FLD(f) abuf->fields.sfmt_smulicc.f
2697 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2698 int UNUSED written
= 0 ;
2699 IADDR UNUSED pc
= abuf
-> addr
;
2700 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2705 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
2706 tmp_tmp
= MULDI ( EXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), EXTSIDI ( FLD ( f_s10
)));
2707 if ( EQDI ( SRLDI ( tmp_tmp
, 63 ), 0 )) {
2708 tmp_cc
= ANDQI ( tmp_cc
, 7 );
2710 tmp_cc
= ORQI ( tmp_cc
, 8 );
2712 if ( EQBI ( EQDI ( tmp_tmp
, 0 ), 0 )) {
2713 tmp_cc
= ANDQI ( tmp_cc
, 11 );
2715 tmp_cc
= ORQI ( tmp_cc
, 4 );
2719 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
2720 TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
2724 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2725 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2733 /* umulicc: umulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2736 SEM_FN_NAME ( frvbf
, umulicc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2738 #define FLD(f) abuf->fields.sfmt_smulicc.f
2739 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2740 int UNUSED written
= 0 ;
2741 IADDR UNUSED pc
= abuf
-> addr
;
2742 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2747 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
2748 tmp_tmp
= MULDI ( ZEXTSIDI ( GET_H_GR ( FLD ( f_GRi
))), ZEXTSIDI ( FLD ( f_s10
)));
2749 if ( EQDI ( SRLDI ( tmp_tmp
, 63 ), 0 )) {
2750 tmp_cc
= ANDQI ( tmp_cc
, 7 );
2752 tmp_cc
= ORQI ( tmp_cc
, 8 );
2754 if ( EQBI ( EQDI ( tmp_tmp
, 0 ), 0 )) {
2755 tmp_cc
= ANDQI ( tmp_cc
, 11 );
2757 tmp_cc
= ORQI ( tmp_cc
, 4 );
2761 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
2762 TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
2766 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2767 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2775 /* sllicc: sllicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2778 SEM_FN_NAME ( frvbf
, sllicc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2780 #define FLD(f) abuf->fields.sfmt_addicc.f
2781 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2782 int UNUSED written
= 0 ;
2783 IADDR UNUSED pc
= abuf
-> addr
;
2784 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2790 tmp_shift
= ANDSI ( FLD ( f_s10
), 31 );
2791 tmp_cc
= frvbf_set_icc_for_shift_left ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), tmp_shift
, CPU ( h_iccr
[ FLD ( f_ICCi_1
)]));
2792 tmp_tmp
= SLLSI ( GET_H_GR ( FLD ( f_GRi
)), tmp_shift
);
2795 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2796 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2798 if ( EQSI ( tmp_tmp
, 0 )) {
2799 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
2801 if ( LTSI ( tmp_tmp
, 0 )) {
2802 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
2804 tmp_cc
= ANDQI ( tmp_cc
, 3 );
2809 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2810 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2818 /* srlicc: srlicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2821 SEM_FN_NAME ( frvbf
, srlicc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2823 #define FLD(f) abuf->fields.sfmt_addicc.f
2824 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2825 int UNUSED written
= 0 ;
2826 IADDR UNUSED pc
= abuf
-> addr
;
2827 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2833 tmp_shift
= ANDSI ( FLD ( f_s10
), 31 );
2834 tmp_cc
= frvbf_set_icc_for_shift_right ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), tmp_shift
, CPU ( h_iccr
[ FLD ( f_ICCi_1
)]));
2835 tmp_tmp
= SRLSI ( GET_H_GR ( FLD ( f_GRi
)), tmp_shift
);
2838 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2839 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2841 if ( EQSI ( tmp_tmp
, 0 )) {
2842 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
2844 if ( LTSI ( tmp_tmp
, 0 )) {
2845 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
2847 tmp_cc
= ANDQI ( tmp_cc
, 3 );
2852 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2853 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2861 /* sraicc: sraicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2864 SEM_FN_NAME ( frvbf
, sraicc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2866 #define FLD(f) abuf->fields.sfmt_addicc.f
2867 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2868 int UNUSED written
= 0 ;
2869 IADDR UNUSED pc
= abuf
-> addr
;
2870 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2876 tmp_shift
= ANDSI ( FLD ( f_s10
), 31 );
2877 tmp_cc
= frvbf_set_icc_for_shift_right ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), tmp_shift
, CPU ( h_iccr
[ FLD ( f_ICCi_1
)]));
2878 tmp_tmp
= SRASI ( GET_H_GR ( FLD ( f_GRi
)), tmp_shift
);
2881 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2882 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2884 if ( EQSI ( tmp_tmp
, 0 )) {
2885 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
2887 if ( LTSI ( tmp_tmp
, 0 )) {
2888 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
2890 tmp_cc
= ANDQI ( tmp_cc
, 3 );
2895 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2896 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2904 /* addxi: addxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2907 SEM_FN_NAME ( frvbf
, addxi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2909 #define FLD(f) abuf->fields.sfmt_addicc.f
2910 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2911 int UNUSED written
= 0 ;
2912 IADDR UNUSED pc
= abuf
-> addr
;
2913 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2916 SI opval
= ADDCSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 1 )));
2917 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2918 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2925 /* subxi: subxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2928 SEM_FN_NAME ( frvbf
, subxi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2930 #define FLD(f) abuf->fields.sfmt_addicc.f
2931 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2932 int UNUSED written
= 0 ;
2933 IADDR UNUSED pc
= abuf
-> addr
;
2934 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2937 SI opval
= SUBCSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), 1 )));
2938 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2939 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2946 /* addxicc: addxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2949 SEM_FN_NAME ( frvbf
, addxicc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
2951 #define FLD(f) abuf->fields.sfmt_addicc.f
2952 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
2953 int UNUSED written
= 0 ;
2954 IADDR UNUSED pc
= abuf
-> addr
;
2955 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
2960 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
2961 tmp_tmp
= ADDCSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 )));
2962 if ( EQSI ( ADDOFSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 ))), 0 )) {
2963 tmp_cc
= ANDQI ( tmp_cc
, 13 );
2965 tmp_cc
= ORQI ( tmp_cc
, 2 );
2967 if ( EQSI ( ADDCFSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 ))), 0 )) {
2968 tmp_cc
= ANDQI ( tmp_cc
, 14 );
2970 tmp_cc
= ORQI ( tmp_cc
, 1 );
2972 if ( EQSI ( tmp_tmp
, 0 )) {
2973 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
2975 if ( LTSI ( tmp_tmp
, 0 )) {
2976 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
2978 tmp_cc
= ANDQI ( tmp_cc
, 3 );
2983 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
2984 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
2988 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
2989 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
2997 /* subxicc: subxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
3000 SEM_FN_NAME ( frvbf
, subxicc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3002 #define FLD(f) abuf->fields.sfmt_addicc.f
3003 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3004 int UNUSED written
= 0 ;
3005 IADDR UNUSED pc
= abuf
-> addr
;
3006 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3011 tmp_cc
= CPU ( h_iccr
[ FLD ( f_ICCi_1
)]);
3012 tmp_tmp
= SUBCSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 )));
3013 if ( EQSI ( SUBOFSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 ))), 0 )) {
3014 tmp_cc
= ANDQI ( tmp_cc
, 13 );
3016 tmp_cc
= ORQI ( tmp_cc
, 2 );
3018 if ( EQSI ( SUBCFSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_s10
), TRUNCQIBI ( ANDQI ( tmp_cc
, 1 ))), 0 )) {
3019 tmp_cc
= ANDQI ( tmp_cc
, 14 );
3021 tmp_cc
= ORQI ( tmp_cc
, 1 );
3023 if ( EQSI ( tmp_tmp
, 0 )) {
3024 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 7 ), 4 );
3026 if ( LTSI ( tmp_tmp
, 0 )) {
3027 tmp_cc
= ORQI ( ANDQI ( tmp_cc
, 11 ), 8 );
3029 tmp_cc
= ANDQI ( tmp_cc
, 3 );
3034 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3035 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3039 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
3040 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
3048 /* cmpb: cmpb$pack $GRi,$GRj,$ICCi_1 */
3051 SEM_FN_NAME ( frvbf
, cmpb
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3053 #define FLD(f) abuf->fields.sfmt_smulcc.f
3054 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3055 int UNUSED written
= 0 ;
3056 IADDR UNUSED pc
= abuf
-> addr
;
3057 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3061 if ( EQBI ( EQSI ( ANDSI ( GET_H_GR ( FLD ( f_GRi
)), 0xff000000 ), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 0xff000000 )), 0 )) {
3062 tmp_cc
= ANDQI ( tmp_cc
, 7 );
3064 tmp_cc
= ORQI ( tmp_cc
, 8 );
3066 if ( EQBI ( EQSI ( ANDSI ( GET_H_GR ( FLD ( f_GRi
)), 16711680 ), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 16711680 )), 0 )) {
3067 tmp_cc
= ANDQI ( tmp_cc
, 11 );
3069 tmp_cc
= ORQI ( tmp_cc
, 4 );
3071 if ( EQBI ( EQSI ( ANDSI ( GET_H_GR ( FLD ( f_GRi
)), 65280 ), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 65280 )), 0 )) {
3072 tmp_cc
= ANDQI ( tmp_cc
, 13 );
3074 tmp_cc
= ORQI ( tmp_cc
, 2 );
3076 if ( EQBI ( EQSI ( ANDSI ( GET_H_GR ( FLD ( f_GRi
)), 255 ), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 255 )), 0 )) {
3077 tmp_cc
= ANDQI ( tmp_cc
, 14 );
3079 tmp_cc
= ORQI ( tmp_cc
, 1 );
3083 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
3084 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
3092 /* cmpba: cmpba$pack $GRi,$GRj,$ICCi_1 */
3095 SEM_FN_NAME ( frvbf
, cmpba
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3097 #define FLD(f) abuf->fields.sfmt_smulcc.f
3098 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3099 int UNUSED written
= 0 ;
3100 IADDR UNUSED pc
= abuf
-> addr
;
3101 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3106 if ( EQBI ( ORIF ( EQSI ( ANDSI ( GET_H_GR ( FLD ( f_GRi
)), 0xff000000 ), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 0xff000000 )), ORIF ( EQSI ( ANDSI ( GET_H_GR ( FLD ( f_GRi
)), 16711680 ), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 16711680 )), ORIF ( EQSI ( ANDSI ( GET_H_GR ( FLD ( f_GRi
)), 65280 ), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 65280 )), EQSI ( ANDSI ( GET_H_GR ( FLD ( f_GRi
)), 255 ), ANDSI ( GET_H_GR ( FLD ( f_GRj
)), 255 ))))), 0 )) {
3107 tmp_cc
= ANDQI ( tmp_cc
, 14 );
3109 tmp_cc
= ORQI ( tmp_cc
, 1 );
3113 sim_queue_qi_write ( current_cpu
, & CPU ( h_iccr
[ FLD ( f_ICCi_1
)]), opval
);
3114 TRACE_RESULT ( current_cpu
, abuf
, "iccr" , 'x' , opval
);
3122 /* setlo: setlo$pack $ulo16,$GRklo */
3125 SEM_FN_NAME ( frvbf
, setlo
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3127 #define FLD(f) abuf->fields.sfmt_setlo.f
3128 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3129 int UNUSED written
= 0 ;
3130 IADDR UNUSED pc
= abuf
-> addr
;
3131 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3134 UHI opval
= FLD ( f_u16
);
3135 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_gr_lo_set
, FLD ( f_GRk
), opval
);
3136 TRACE_RESULT ( current_cpu
, abuf
, "gr_lo" , 'x' , opval
);
3143 /* sethi: sethi$pack $uhi16,$GRkhi */
3146 SEM_FN_NAME ( frvbf
, sethi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3148 #define FLD(f) abuf->fields.sfmt_sethi.f
3149 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3150 int UNUSED written
= 0 ;
3151 IADDR UNUSED pc
= abuf
-> addr
;
3152 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3155 UHI opval
= FLD ( f_u16
);
3156 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_gr_hi_set
, FLD ( f_GRk
), opval
);
3157 TRACE_RESULT ( current_cpu
, abuf
, "gr_hi" , 'x' , opval
);
3164 /* setlos: setlos$pack $slo16,$GRk */
3167 SEM_FN_NAME ( frvbf
, setlos
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3169 #define FLD(f) abuf->fields.sfmt_setlos.f
3170 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3171 int UNUSED written
= 0 ;
3172 IADDR UNUSED pc
= abuf
-> addr
;
3173 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3176 SI opval
= FLD ( f_s16
);
3177 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3178 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3185 /* ldsb: ldsb$pack @($GRi,$GRj),$GRk */
3188 SEM_FN_NAME ( frvbf
, ldsb
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3190 #define FLD(f) abuf->fields.sfmt_addcc.f
3191 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3192 int UNUSED written
= 0 ;
3193 IADDR UNUSED pc
= abuf
-> addr
;
3194 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3197 SI opval
= frvbf_read_mem_QI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3198 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3199 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3206 /* ldub: ldub$pack @($GRi,$GRj),$GRk */
3209 SEM_FN_NAME ( frvbf
, ldub
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3211 #define FLD(f) abuf->fields.sfmt_addcc.f
3212 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3213 int UNUSED written
= 0 ;
3214 IADDR UNUSED pc
= abuf
-> addr
;
3215 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3218 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3219 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3220 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3227 /* ldsh: ldsh$pack @($GRi,$GRj),$GRk */
3230 SEM_FN_NAME ( frvbf
, ldsh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3232 #define FLD(f) abuf->fields.sfmt_addcc.f
3233 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3234 int UNUSED written
= 0 ;
3235 IADDR UNUSED pc
= abuf
-> addr
;
3236 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3239 SI opval
= frvbf_read_mem_HI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3240 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3241 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3248 /* lduh: lduh$pack @($GRi,$GRj),$GRk */
3251 SEM_FN_NAME ( frvbf
, lduh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3253 #define FLD(f) abuf->fields.sfmt_addcc.f
3254 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3255 int UNUSED written
= 0 ;
3256 IADDR UNUSED pc
= abuf
-> addr
;
3257 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3260 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3261 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3262 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3269 /* ld: ld$pack $ldann($GRi,$GRj),$GRk */
3272 SEM_FN_NAME ( frvbf
, ld
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3274 #define FLD(f) abuf->fields.sfmt_addcc.f
3275 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3276 int UNUSED written
= 0 ;
3277 IADDR UNUSED pc
= abuf
-> addr
;
3278 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3281 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3282 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3283 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3290 /* ldbf: ldbf$pack @($GRi,$GRj),$FRintk */
3293 SEM_FN_NAME ( frvbf
, ldbf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3295 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3296 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3297 int UNUSED written
= 0 ;
3298 IADDR UNUSED pc
= abuf
-> addr
;
3299 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3302 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3303 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
3304 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
3311 /* ldhf: ldhf$pack @($GRi,$GRj),$FRintk */
3314 SEM_FN_NAME ( frvbf
, ldhf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3316 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3317 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3318 int UNUSED written
= 0 ;
3319 IADDR UNUSED pc
= abuf
-> addr
;
3320 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3323 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3324 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
3325 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
3332 /* ldf: ldf$pack @($GRi,$GRj),$FRintk */
3335 SEM_FN_NAME ( frvbf
, ldf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3337 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3338 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3339 int UNUSED written
= 0 ;
3340 IADDR UNUSED pc
= abuf
-> addr
;
3341 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3344 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3345 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
3346 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
3353 /* ldc: ldc$pack @($GRi,$GRj),$CPRk */
3356 SEM_FN_NAME ( frvbf
, ldc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3358 #define FLD(f) abuf->fields.sfmt_ldcu.f
3359 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3360 int UNUSED written
= 0 ;
3361 IADDR UNUSED pc
= abuf
-> addr
;
3362 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3365 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3366 sim_queue_si_write ( current_cpu
, & CPU ( h_cpr
[ FLD ( f_CPRk
)]), opval
);
3367 TRACE_RESULT ( current_cpu
, abuf
, "cpr" , 'x' , opval
);
3374 /* nldsb: nldsb$pack @($GRi,$GRj),$GRk */
3377 SEM_FN_NAME ( frvbf
, nldsb
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3379 #define FLD(f) abuf->fields.sfmt_addcc.f
3380 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3381 int UNUSED written
= 0 ;
3382 IADDR UNUSED pc
= abuf
-> addr
;
3383 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3387 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 1 , 0 );
3390 SI opval
= frvbf_read_mem_QI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3391 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3392 written
|= ( 1 << 6 );
3393 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3398 abuf
-> written
= written
;
3403 /* nldub: nldub$pack @($GRi,$GRj),$GRk */
3406 SEM_FN_NAME ( frvbf
, nldub
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3408 #define FLD(f) abuf->fields.sfmt_addcc.f
3409 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3410 int UNUSED written
= 0 ;
3411 IADDR UNUSED pc
= abuf
-> addr
;
3412 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3416 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 0 , 0 );
3419 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3420 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3421 written
|= ( 1 << 6 );
3422 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3427 abuf
-> written
= written
;
3432 /* nldsh: nldsh$pack @($GRi,$GRj),$GRk */
3435 SEM_FN_NAME ( frvbf
, nldsh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3437 #define FLD(f) abuf->fields.sfmt_addcc.f
3438 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3439 int UNUSED written
= 0 ;
3440 IADDR UNUSED pc
= abuf
-> addr
;
3441 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3445 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 3 , 0 );
3448 SI opval
= frvbf_read_mem_HI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3449 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3450 written
|= ( 1 << 6 );
3451 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3456 abuf
-> written
= written
;
3461 /* nlduh: nlduh$pack @($GRi,$GRj),$GRk */
3464 SEM_FN_NAME ( frvbf
, nlduh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3466 #define FLD(f) abuf->fields.sfmt_addcc.f
3467 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3468 int UNUSED written
= 0 ;
3469 IADDR UNUSED pc
= abuf
-> addr
;
3470 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3474 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 2 , 0 );
3477 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3478 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3479 written
|= ( 1 << 6 );
3480 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3485 abuf
-> written
= written
;
3490 /* nld: nld$pack @($GRi,$GRj),$GRk */
3493 SEM_FN_NAME ( frvbf
, nld
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3495 #define FLD(f) abuf->fields.sfmt_addcc.f
3496 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3497 int UNUSED written
= 0 ;
3498 IADDR UNUSED pc
= abuf
-> addr
;
3499 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3503 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 4 , 0 );
3506 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3507 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3508 written
|= ( 1 << 6 );
3509 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3514 abuf
-> written
= written
;
3519 /* nldbf: nldbf$pack @($GRi,$GRj),$FRintk */
3522 SEM_FN_NAME ( frvbf
, nldbf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3524 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3525 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3526 int UNUSED written
= 0 ;
3527 IADDR UNUSED pc
= abuf
-> addr
;
3528 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3532 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_FRk
), 0 , 0 , 1 );
3535 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3536 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
3537 written
|= ( 1 << 6 );
3538 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
3543 abuf
-> written
= written
;
3548 /* nldhf: nldhf$pack @($GRi,$GRj),$FRintk */
3551 SEM_FN_NAME ( frvbf
, nldhf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3553 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3554 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3555 int UNUSED written
= 0 ;
3556 IADDR UNUSED pc
= abuf
-> addr
;
3557 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3561 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_FRk
), 0 , 2 , 1 );
3564 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3565 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
3566 written
|= ( 1 << 6 );
3567 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
3572 abuf
-> written
= written
;
3577 /* nldf: nldf$pack @($GRi,$GRj),$FRintk */
3580 SEM_FN_NAME ( frvbf
, nldf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3582 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3583 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3584 int UNUSED written
= 0 ;
3585 IADDR UNUSED pc
= abuf
-> addr
;
3586 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3590 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_FRk
), 0 , 4 , 1 );
3593 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
3594 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
3595 written
|= ( 1 << 6 );
3596 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
3601 abuf
-> written
= written
;
3606 /* ldd: ldd$pack $lddann($GRi,$GRj),$GRdoublek */
3609 SEM_FN_NAME ( frvbf
, ldd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3611 #define FLD(f) abuf->fields.sfmt_smulcc.f
3612 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3613 int UNUSED written
= 0 ;
3614 IADDR UNUSED pc
= abuf
-> addr
;
3615 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3619 if ( NESI ( FLD ( f_GRk
), 0 )) {
3621 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3623 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
3624 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
3625 written
|= ( 1 << 4 );
3626 TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
3632 abuf
-> written
= written
;
3637 /* lddf: lddf$pack @($GRi,$GRj),$FRdoublek */
3640 SEM_FN_NAME ( frvbf
, lddf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3642 #define FLD(f) abuf->fields.sfmt_clddfu.f
3643 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3644 int UNUSED written
= 0 ;
3645 IADDR UNUSED pc
= abuf
-> addr
;
3646 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3651 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3653 DF opval
= frvbf_read_mem_DF ( current_cpu
, pc
, tmp_address
);
3654 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
3655 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
3664 /* lddc: lddc$pack @($GRi,$GRj),$CPRdoublek */
3667 SEM_FN_NAME ( frvbf
, lddc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3669 #define FLD(f) abuf->fields.sfmt_lddcu.f
3670 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3671 int UNUSED written
= 0 ;
3672 IADDR UNUSED pc
= abuf
-> addr
;
3673 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3678 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3680 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
3681 sim_queue_fn_di_write ( current_cpu
, frvbf_h_cpr_double_set
, FLD ( f_CPRk
), opval
);
3682 TRACE_RESULT ( current_cpu
, abuf
, "cpr_double" , 'D' , opval
);
3691 /* nldd: nldd$pack @($GRi,$GRj),$GRdoublek */
3694 SEM_FN_NAME ( frvbf
, nldd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3696 #define FLD(f) abuf->fields.sfmt_smulcc.f
3697 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3698 int UNUSED written
= 0 ;
3699 IADDR UNUSED pc
= abuf
-> addr
;
3700 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3706 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 5 , 0 );
3708 if ( NESI ( FLD ( f_GRk
), 0 )) {
3710 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3712 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
3713 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
3714 written
|= ( 1 << 6 );
3715 TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
3723 abuf
-> written
= written
;
3728 /* nlddf: nlddf$pack @($GRi,$GRj),$FRdoublek */
3731 SEM_FN_NAME ( frvbf
, nlddf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3733 #define FLD(f) abuf->fields.sfmt_clddfu.f
3734 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3735 int UNUSED written
= 0 ;
3736 IADDR UNUSED pc
= abuf
-> addr
;
3737 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3743 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_FRk
), 0 , 5 , 1 );
3746 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3748 DF opval
= frvbf_read_mem_DF ( current_cpu
, pc
, tmp_address
);
3749 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
3750 written
|= ( 1 << 6 );
3751 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
3758 abuf
-> written
= written
;
3763 /* ldq: ldq$pack @($GRi,$GRj),$GRk */
3766 SEM_FN_NAME ( frvbf
, ldq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3768 #define FLD(f) abuf->fields.sfmt_smulcc.f
3769 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3770 int UNUSED written
= 0 ;
3771 IADDR UNUSED pc
= abuf
-> addr
;
3772 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3777 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3778 frvbf_load_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
3786 /* ldqf: ldqf$pack @($GRi,$GRj),$FRintk */
3789 SEM_FN_NAME ( frvbf
, ldqf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3791 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3792 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3793 int UNUSED written
= 0 ;
3794 IADDR UNUSED pc
= abuf
-> addr
;
3795 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3800 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3801 frvbf_load_quad_FRint ( current_cpu
, pc
, tmp_address
, FLD ( f_FRk
));
3809 /* ldqc: ldqc$pack @($GRi,$GRj),$CPRk */
3812 SEM_FN_NAME ( frvbf
, ldqc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3814 #define FLD(f) abuf->fields.sfmt_stdcu.f
3815 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3816 int UNUSED written
= 0 ;
3817 IADDR UNUSED pc
= abuf
-> addr
;
3818 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3823 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3824 frvbf_load_quad_CPR ( current_cpu
, pc
, tmp_address
, FLD ( f_CPRk
));
3832 /* nldq: nldq$pack @($GRi,$GRj),$GRk */
3835 SEM_FN_NAME ( frvbf
, nldq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3837 #define FLD(f) abuf->fields.sfmt_smulcc.f
3838 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3839 int UNUSED written
= 0 ;
3840 IADDR UNUSED pc
= abuf
-> addr
;
3841 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3847 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 6 , 0 );
3850 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3851 frvbf_load_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
3861 /* nldqf: nldqf$pack @($GRi,$GRj),$FRintk */
3864 SEM_FN_NAME ( frvbf
, nldqf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3866 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3867 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3868 int UNUSED written
= 0 ;
3869 IADDR UNUSED pc
= abuf
-> addr
;
3870 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3876 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_FRk
), 0 , 6 , 1 );
3879 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3880 frvbf_load_quad_FRint ( current_cpu
, pc
, tmp_address
, FLD ( f_FRk
));
3890 /* ldsbu: ldsbu$pack @($GRi,$GRj),$GRk */
3893 SEM_FN_NAME ( frvbf
, ldsbu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3895 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3896 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3897 int UNUSED written
= 0 ;
3898 IADDR UNUSED pc
= abuf
-> addr
;
3899 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3903 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3905 SI opval
= frvbf_read_mem_QI ( current_cpu
, pc
, tmp_address
);
3906 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3907 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3909 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
3912 SI opval
= tmp_address
;
3913 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
3914 written
|= ( 1 << 5 );
3915 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3917 frvbf_force_update ( current_cpu
);
3922 abuf
-> written
= written
;
3927 /* ldubu: ldubu$pack @($GRi,$GRj),$GRk */
3930 SEM_FN_NAME ( frvbf
, ldubu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3932 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3933 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3934 int UNUSED written
= 0 ;
3935 IADDR UNUSED pc
= abuf
-> addr
;
3936 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3940 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3942 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, tmp_address
);
3943 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3944 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3946 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
3949 SI opval
= tmp_address
;
3950 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
3951 written
|= ( 1 << 5 );
3952 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3954 frvbf_force_update ( current_cpu
);
3959 abuf
-> written
= written
;
3964 /* ldshu: ldshu$pack @($GRi,$GRj),$GRk */
3967 SEM_FN_NAME ( frvbf
, ldshu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
3969 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3970 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
3971 int UNUSED written
= 0 ;
3972 IADDR UNUSED pc
= abuf
-> addr
;
3973 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
3977 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
3979 SI opval
= frvbf_read_mem_HI ( current_cpu
, pc
, tmp_address
);
3980 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
3981 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3983 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
3986 SI opval
= tmp_address
;
3987 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
3988 written
|= ( 1 << 5 );
3989 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
3991 frvbf_force_update ( current_cpu
);
3996 abuf
-> written
= written
;
4001 /* lduhu: lduhu$pack @($GRi,$GRj),$GRk */
4004 SEM_FN_NAME ( frvbf
, lduhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4006 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4007 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4008 int UNUSED written
= 0 ;
4009 IADDR UNUSED pc
= abuf
-> addr
;
4010 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4014 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4016 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, tmp_address
);
4017 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4018 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4020 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4023 SI opval
= tmp_address
;
4024 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4025 written
|= ( 1 << 5 );
4026 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4028 frvbf_force_update ( current_cpu
);
4033 abuf
-> written
= written
;
4038 /* ldu: ldu$pack @($GRi,$GRj),$GRk */
4041 SEM_FN_NAME ( frvbf
, ldu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4043 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4044 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4045 int UNUSED written
= 0 ;
4046 IADDR UNUSED pc
= abuf
-> addr
;
4047 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4051 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4053 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, tmp_address
);
4054 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4055 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4057 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4060 SI opval
= tmp_address
;
4061 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4062 written
|= ( 1 << 5 );
4063 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4065 frvbf_force_update ( current_cpu
);
4070 abuf
-> written
= written
;
4075 /* nldsbu: nldsbu$pack @($GRi,$GRj),$GRk */
4078 SEM_FN_NAME ( frvbf
, nldsbu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4080 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4081 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4082 int UNUSED written
= 0 ;
4083 IADDR UNUSED pc
= abuf
-> addr
;
4084 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4088 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 1 , 0 );
4092 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4094 SI opval
= frvbf_read_mem_QI ( current_cpu
, pc
, tmp_address
);
4095 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4096 written
|= ( 1 << 7 );
4097 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4099 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4102 SI opval
= tmp_address
;
4103 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4104 written
|= ( 1 << 6 );
4105 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4107 frvbf_force_update ( current_cpu
);
4114 abuf
-> written
= written
;
4119 /* nldubu: nldubu$pack @($GRi,$GRj),$GRk */
4122 SEM_FN_NAME ( frvbf
, nldubu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4124 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4125 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4126 int UNUSED written
= 0 ;
4127 IADDR UNUSED pc
= abuf
-> addr
;
4128 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4132 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 0 , 0 );
4136 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4138 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, tmp_address
);
4139 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4140 written
|= ( 1 << 7 );
4141 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4143 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4146 SI opval
= tmp_address
;
4147 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4148 written
|= ( 1 << 6 );
4149 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4151 frvbf_force_update ( current_cpu
);
4158 abuf
-> written
= written
;
4163 /* nldshu: nldshu$pack @($GRi,$GRj),$GRk */
4166 SEM_FN_NAME ( frvbf
, nldshu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4168 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4169 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4170 int UNUSED written
= 0 ;
4171 IADDR UNUSED pc
= abuf
-> addr
;
4172 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4176 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 3 , 0 );
4180 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4182 SI opval
= frvbf_read_mem_HI ( current_cpu
, pc
, tmp_address
);
4183 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4184 written
|= ( 1 << 7 );
4185 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4187 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4190 SI opval
= tmp_address
;
4191 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4192 written
|= ( 1 << 6 );
4193 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4195 frvbf_force_update ( current_cpu
);
4202 abuf
-> written
= written
;
4207 /* nlduhu: nlduhu$pack @($GRi,$GRj),$GRk */
4210 SEM_FN_NAME ( frvbf
, nlduhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4212 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4213 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4214 int UNUSED written
= 0 ;
4215 IADDR UNUSED pc
= abuf
-> addr
;
4216 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4220 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 2 , 0 );
4224 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4226 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, tmp_address
);
4227 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4228 written
|= ( 1 << 7 );
4229 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4231 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4234 SI opval
= tmp_address
;
4235 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4236 written
|= ( 1 << 6 );
4237 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4239 frvbf_force_update ( current_cpu
);
4246 abuf
-> written
= written
;
4251 /* nldu: nldu$pack @($GRi,$GRj),$GRk */
4254 SEM_FN_NAME ( frvbf
, nldu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4256 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4257 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4258 int UNUSED written
= 0 ;
4259 IADDR UNUSED pc
= abuf
-> addr
;
4260 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4264 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 4 , 0 );
4268 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4270 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, tmp_address
);
4271 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4272 written
|= ( 1 << 7 );
4273 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4275 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4278 SI opval
= tmp_address
;
4279 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4280 written
|= ( 1 << 6 );
4281 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4283 frvbf_force_update ( current_cpu
);
4290 abuf
-> written
= written
;
4295 /* ldbfu: ldbfu$pack @($GRi,$GRj),$FRintk */
4298 SEM_FN_NAME ( frvbf
, ldbfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4300 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4301 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4302 int UNUSED written
= 0 ;
4303 IADDR UNUSED pc
= abuf
-> addr
;
4304 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4308 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4310 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, tmp_address
);
4311 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
4312 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
4315 SI opval
= tmp_address
;
4316 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4317 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4319 frvbf_force_update ( current_cpu
);
4326 /* ldhfu: ldhfu$pack @($GRi,$GRj),$FRintk */
4329 SEM_FN_NAME ( frvbf
, ldhfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4331 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4332 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4333 int UNUSED written
= 0 ;
4334 IADDR UNUSED pc
= abuf
-> addr
;
4335 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4339 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4341 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, tmp_address
);
4342 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
4343 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
4346 SI opval
= tmp_address
;
4347 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4348 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4350 frvbf_force_update ( current_cpu
);
4357 /* ldfu: ldfu$pack @($GRi,$GRj),$FRintk */
4360 SEM_FN_NAME ( frvbf
, ldfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4362 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4363 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4364 int UNUSED written
= 0 ;
4365 IADDR UNUSED pc
= abuf
-> addr
;
4366 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4370 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4372 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, tmp_address
);
4373 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
4374 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
4377 SI opval
= tmp_address
;
4378 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4379 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4381 frvbf_force_update ( current_cpu
);
4388 /* ldcu: ldcu$pack @($GRi,$GRj),$CPRk */
4391 SEM_FN_NAME ( frvbf
, ldcu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4393 #define FLD(f) abuf->fields.sfmt_ldcu.f
4394 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4395 int UNUSED written
= 0 ;
4396 IADDR UNUSED pc
= abuf
-> addr
;
4397 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4401 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4403 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, tmp_address
);
4404 sim_queue_si_write ( current_cpu
, & CPU ( h_cpr
[ FLD ( f_CPRk
)]), opval
);
4405 TRACE_RESULT ( current_cpu
, abuf
, "cpr" , 'x' , opval
);
4408 SI opval
= tmp_address
;
4409 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4410 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4412 frvbf_force_update ( current_cpu
);
4419 /* nldbfu: nldbfu$pack @($GRi,$GRj),$FRintk */
4422 SEM_FN_NAME ( frvbf
, nldbfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4424 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4425 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4426 int UNUSED written
= 0 ;
4427 IADDR UNUSED pc
= abuf
-> addr
;
4428 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4432 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_FRk
), 0 , 0 , 1 );
4436 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4438 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, tmp_address
);
4439 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
4440 written
|= ( 1 << 6 );
4441 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
4444 SI opval
= tmp_address
;
4445 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4446 written
|= ( 1 << 7 );
4447 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4449 frvbf_force_update ( current_cpu
);
4454 abuf
-> written
= written
;
4459 /* nldhfu: nldhfu$pack @($GRi,$GRj),$FRintk */
4462 SEM_FN_NAME ( frvbf
, nldhfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4464 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4465 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4466 int UNUSED written
= 0 ;
4467 IADDR UNUSED pc
= abuf
-> addr
;
4468 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4472 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_FRk
), 0 , 2 , 1 );
4476 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4478 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, tmp_address
);
4479 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
4480 written
|= ( 1 << 6 );
4481 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
4484 SI opval
= tmp_address
;
4485 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4486 written
|= ( 1 << 7 );
4487 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4489 frvbf_force_update ( current_cpu
);
4494 abuf
-> written
= written
;
4499 /* nldfu: nldfu$pack @($GRi,$GRj),$FRintk */
4502 SEM_FN_NAME ( frvbf
, nldfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4504 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4505 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4506 int UNUSED written
= 0 ;
4507 IADDR UNUSED pc
= abuf
-> addr
;
4508 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4512 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_FRk
), 0 , 4 , 1 );
4516 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4518 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, tmp_address
);
4519 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
4520 written
|= ( 1 << 6 );
4521 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
4524 SI opval
= tmp_address
;
4525 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4526 written
|= ( 1 << 7 );
4527 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4529 frvbf_force_update ( current_cpu
);
4534 abuf
-> written
= written
;
4539 /* lddu: lddu$pack @($GRi,$GRj),$GRdoublek */
4542 SEM_FN_NAME ( frvbf
, lddu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4544 #define FLD(f) abuf->fields.sfmt_clddu.f
4545 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4546 int UNUSED written
= 0 ;
4547 IADDR UNUSED pc
= abuf
-> addr
;
4548 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4552 if ( NESI ( FLD ( f_GRk
), 0 )) {
4554 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4556 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
4557 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
4558 written
|= ( 1 << 5 );
4559 TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
4563 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4566 SI opval
= tmp_address
;
4567 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4568 written
|= ( 1 << 6 );
4569 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4571 frvbf_force_update ( current_cpu
);
4576 abuf
-> written
= written
;
4581 /* nlddu: nlddu$pack @($GRi,$GRj),$GRdoublek */
4584 SEM_FN_NAME ( frvbf
, nlddu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4586 #define FLD(f) abuf->fields.sfmt_clddu.f
4587 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4588 int UNUSED written
= 0 ;
4589 IADDR UNUSED pc
= abuf
-> addr
;
4590 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4594 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 5 , 0 );
4598 if ( NESI ( FLD ( f_GRk
), 0 )) {
4600 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4602 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
4603 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
4604 written
|= ( 1 << 6 );
4605 TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
4609 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4612 SI opval
= tmp_address
;
4613 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4614 written
|= ( 1 << 7 );
4615 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4617 frvbf_force_update ( current_cpu
);
4624 abuf
-> written
= written
;
4629 /* lddfu: lddfu$pack @($GRi,$GRj),$FRdoublek */
4632 SEM_FN_NAME ( frvbf
, lddfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4634 #define FLD(f) abuf->fields.sfmt_clddfu.f
4635 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4636 int UNUSED written
= 0 ;
4637 IADDR UNUSED pc
= abuf
-> addr
;
4638 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4643 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4645 DF opval
= frvbf_read_mem_DF ( current_cpu
, pc
, tmp_address
);
4646 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
4647 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
4651 SI opval
= tmp_address
;
4652 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4653 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4655 frvbf_force_update ( current_cpu
);
4662 /* lddcu: lddcu$pack @($GRi,$GRj),$CPRdoublek */
4665 SEM_FN_NAME ( frvbf
, lddcu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4667 #define FLD(f) abuf->fields.sfmt_lddcu.f
4668 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4669 int UNUSED written
= 0 ;
4670 IADDR UNUSED pc
= abuf
-> addr
;
4671 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4676 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4678 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
4679 sim_queue_fn_di_write ( current_cpu
, frvbf_h_cpr_double_set
, FLD ( f_CPRk
), opval
);
4680 TRACE_RESULT ( current_cpu
, abuf
, "cpr_double" , 'D' , opval
);
4684 SI opval
= tmp_address
;
4685 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4686 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4688 frvbf_force_update ( current_cpu
);
4695 /* nlddfu: nlddfu$pack @($GRi,$GRj),$FRdoublek */
4698 SEM_FN_NAME ( frvbf
, nlddfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4700 #define FLD(f) abuf->fields.sfmt_clddfu.f
4701 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4702 int UNUSED written
= 0 ;
4703 IADDR UNUSED pc
= abuf
-> addr
;
4704 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4708 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_FRk
), 0 , 5 , 1 );
4713 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4715 DF opval
= frvbf_read_mem_DF ( current_cpu
, pc
, tmp_address
);
4716 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
4717 written
|= ( 1 << 6 );
4718 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
4722 SI opval
= tmp_address
;
4723 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4724 written
|= ( 1 << 7 );
4725 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4727 frvbf_force_update ( current_cpu
);
4732 abuf
-> written
= written
;
4737 /* ldqu: ldqu$pack @($GRi,$GRj),$GRk */
4740 SEM_FN_NAME ( frvbf
, ldqu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4742 #define FLD(f) abuf->fields.sfmt_cstdu.f
4743 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4744 int UNUSED written
= 0 ;
4745 IADDR UNUSED pc
= abuf
-> addr
;
4746 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4751 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4752 frvbf_load_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
4754 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4757 SI opval
= tmp_address
;
4758 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4759 written
|= ( 1 << 5 );
4760 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4762 frvbf_force_update ( current_cpu
);
4767 abuf
-> written
= written
;
4772 /* nldqu: nldqu$pack @($GRi,$GRj),$GRk */
4775 SEM_FN_NAME ( frvbf
, nldqu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4777 #define FLD(f) abuf->fields.sfmt_cstdu.f
4778 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4779 int UNUSED written
= 0 ;
4780 IADDR UNUSED pc
= abuf
-> addr
;
4781 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4785 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_GRk
), 0 , 6 , 0 );
4790 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4791 frvbf_load_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
4793 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
4796 SI opval
= tmp_address
;
4797 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4798 written
|= ( 1 << 6 );
4799 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4801 frvbf_force_update ( current_cpu
);
4808 abuf
-> written
= written
;
4813 /* ldqfu: ldqfu$pack @($GRi,$GRj),$FRintk */
4816 SEM_FN_NAME ( frvbf
, ldqfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4818 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4819 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4820 int UNUSED written
= 0 ;
4821 IADDR UNUSED pc
= abuf
-> addr
;
4822 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4827 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4828 frvbf_load_quad_FRint ( current_cpu
, pc
, tmp_address
, FLD ( f_FRk
));
4831 SI opval
= tmp_address
;
4832 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4833 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4835 frvbf_force_update ( current_cpu
);
4842 /* ldqcu: ldqcu$pack @($GRi,$GRj),$CPRk */
4845 SEM_FN_NAME ( frvbf
, ldqcu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4847 #define FLD(f) abuf->fields.sfmt_stdcu.f
4848 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4849 int UNUSED written
= 0 ;
4850 IADDR UNUSED pc
= abuf
-> addr
;
4851 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4856 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4857 frvbf_load_quad_CPR ( current_cpu
, pc
, tmp_address
, FLD ( f_CPRk
));
4860 SI opval
= tmp_address
;
4861 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4862 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4864 frvbf_force_update ( current_cpu
);
4871 /* nldqfu: nldqfu$pack @($GRi,$GRj),$FRintk */
4874 SEM_FN_NAME ( frvbf
, nldqfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4876 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4877 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4878 int UNUSED written
= 0 ;
4879 IADDR UNUSED pc
= abuf
-> addr
;
4880 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4884 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), FLD ( f_GRj
), FLD ( f_FRk
), 0 , 6 , 1 );
4889 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
4890 frvbf_load_quad_FRint ( current_cpu
, pc
, tmp_address
, FLD ( f_FRk
));
4893 SI opval
= tmp_address
;
4894 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
4895 written
|= ( 1 << 6 );
4896 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4898 frvbf_force_update ( current_cpu
);
4903 abuf
-> written
= written
;
4908 /* ldsbi: ldsbi$pack @($GRi,$d12),$GRk */
4911 SEM_FN_NAME ( frvbf
, ldsbi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4913 #define FLD(f) abuf->fields.sfmt_swapi.f
4914 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4915 int UNUSED written
= 0 ;
4916 IADDR UNUSED pc
= abuf
-> addr
;
4917 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4920 SI opval
= frvbf_read_mem_QI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
4921 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4922 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4929 /* ldshi: ldshi$pack @($GRi,$d12),$GRk */
4932 SEM_FN_NAME ( frvbf
, ldshi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4934 #define FLD(f) abuf->fields.sfmt_swapi.f
4935 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4936 int UNUSED written
= 0 ;
4937 IADDR UNUSED pc
= abuf
-> addr
;
4938 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4941 SI opval
= frvbf_read_mem_HI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
4942 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4943 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4950 /* ldi: ldi$pack @($GRi,$d12),$GRk */
4953 SEM_FN_NAME ( frvbf
, ldi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4955 #define FLD(f) abuf->fields.sfmt_swapi.f
4956 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4957 int UNUSED written
= 0 ;
4958 IADDR UNUSED pc
= abuf
-> addr
;
4959 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4962 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
4963 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4964 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4971 /* ldubi: ldubi$pack @($GRi,$d12),$GRk */
4974 SEM_FN_NAME ( frvbf
, ldubi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4976 #define FLD(f) abuf->fields.sfmt_swapi.f
4977 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4978 int UNUSED written
= 0 ;
4979 IADDR UNUSED pc
= abuf
-> addr
;
4980 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
4983 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
4984 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
4985 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
4992 /* lduhi: lduhi$pack @($GRi,$d12),$GRk */
4995 SEM_FN_NAME ( frvbf
, lduhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
4997 #define FLD(f) abuf->fields.sfmt_swapi.f
4998 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
4999 int UNUSED written
= 0 ;
5000 IADDR UNUSED pc
= abuf
-> addr
;
5001 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5004 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5005 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
5006 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5013 /* ldbfi: ldbfi$pack @($GRi,$d12),$FRintk */
5016 SEM_FN_NAME ( frvbf
, ldbfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5018 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5019 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5020 int UNUSED written
= 0 ;
5021 IADDR UNUSED pc
= abuf
-> addr
;
5022 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5025 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5026 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
5027 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
5034 /* ldhfi: ldhfi$pack @($GRi,$d12),$FRintk */
5037 SEM_FN_NAME ( frvbf
, ldhfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5039 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5040 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5041 int UNUSED written
= 0 ;
5042 IADDR UNUSED pc
= abuf
-> addr
;
5043 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5046 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5047 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
5048 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
5055 /* ldfi: ldfi$pack @($GRi,$d12),$FRintk */
5058 SEM_FN_NAME ( frvbf
, ldfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5060 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5061 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5062 int UNUSED written
= 0 ;
5063 IADDR UNUSED pc
= abuf
-> addr
;
5064 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5067 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5068 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
5069 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
5076 /* nldsbi: nldsbi$pack @($GRi,$d12),$GRk */
5079 SEM_FN_NAME ( frvbf
, nldsbi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5081 #define FLD(f) abuf->fields.sfmt_swapi.f
5082 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5083 int UNUSED written
= 0 ;
5084 IADDR UNUSED pc
= abuf
-> addr
;
5085 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5089 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_GRk
), FLD ( f_d12
), 1 , 0 );
5092 SI opval
= frvbf_read_mem_QI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5093 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
5094 written
|= ( 1 << 5 );
5095 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5100 abuf
-> written
= written
;
5105 /* nldubi: nldubi$pack @($GRi,$d12),$GRk */
5108 SEM_FN_NAME ( frvbf
, nldubi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5110 #define FLD(f) abuf->fields.sfmt_swapi.f
5111 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5112 int UNUSED written
= 0 ;
5113 IADDR UNUSED pc
= abuf
-> addr
;
5114 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5118 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_GRk
), FLD ( f_d12
), 0 , 0 );
5121 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5122 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
5123 written
|= ( 1 << 5 );
5124 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5129 abuf
-> written
= written
;
5134 /* nldshi: nldshi$pack @($GRi,$d12),$GRk */
5137 SEM_FN_NAME ( frvbf
, nldshi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5139 #define FLD(f) abuf->fields.sfmt_swapi.f
5140 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5141 int UNUSED written
= 0 ;
5142 IADDR UNUSED pc
= abuf
-> addr
;
5143 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5147 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_GRk
), FLD ( f_d12
), 3 , 0 );
5150 SI opval
= frvbf_read_mem_HI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5151 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
5152 written
|= ( 1 << 5 );
5153 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5158 abuf
-> written
= written
;
5163 /* nlduhi: nlduhi$pack @($GRi,$d12),$GRk */
5166 SEM_FN_NAME ( frvbf
, nlduhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5168 #define FLD(f) abuf->fields.sfmt_swapi.f
5169 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5170 int UNUSED written
= 0 ;
5171 IADDR UNUSED pc
= abuf
-> addr
;
5172 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5176 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_GRk
), FLD ( f_d12
), 2 , 0 );
5179 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5180 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
5181 written
|= ( 1 << 5 );
5182 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5187 abuf
-> written
= written
;
5192 /* nldi: nldi$pack @($GRi,$d12),$GRk */
5195 SEM_FN_NAME ( frvbf
, nldi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5197 #define FLD(f) abuf->fields.sfmt_swapi.f
5198 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5199 int UNUSED written
= 0 ;
5200 IADDR UNUSED pc
= abuf
-> addr
;
5201 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5205 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_GRk
), FLD ( f_d12
), 4 , 0 );
5208 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5209 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
5210 written
|= ( 1 << 5 );
5211 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5216 abuf
-> written
= written
;
5221 /* nldbfi: nldbfi$pack @($GRi,$d12),$FRintk */
5224 SEM_FN_NAME ( frvbf
, nldbfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5226 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5227 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5228 int UNUSED written
= 0 ;
5229 IADDR UNUSED pc
= abuf
-> addr
;
5230 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5234 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_FRk
), FLD ( f_d12
), 0 , 1 );
5237 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5238 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
5239 written
|= ( 1 << 5 );
5240 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
5245 abuf
-> written
= written
;
5250 /* nldhfi: nldhfi$pack @($GRi,$d12),$FRintk */
5253 SEM_FN_NAME ( frvbf
, nldhfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5255 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5256 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5257 int UNUSED written
= 0 ;
5258 IADDR UNUSED pc
= abuf
-> addr
;
5259 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5263 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_FRk
), FLD ( f_d12
), 2 , 1 );
5266 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5267 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
5268 written
|= ( 1 << 5 );
5269 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
5274 abuf
-> written
= written
;
5279 /* nldfi: nldfi$pack @($GRi,$d12),$FRintk */
5282 SEM_FN_NAME ( frvbf
, nldfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5284 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5285 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5286 int UNUSED written
= 0 ;
5287 IADDR UNUSED pc
= abuf
-> addr
;
5288 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5292 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_FRk
), FLD ( f_d12
), 4 , 1 );
5295 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)));
5296 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
5297 written
|= ( 1 << 5 );
5298 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
5303 abuf
-> written
= written
;
5308 /* lddi: lddi$pack @($GRi,$d12),$GRdoublek */
5311 SEM_FN_NAME ( frvbf
, lddi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5313 #define FLD(f) abuf->fields.sfmt_smuli.f
5314 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5315 int UNUSED written
= 0 ;
5316 IADDR UNUSED pc
= abuf
-> addr
;
5317 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5321 if ( NESI ( FLD ( f_GRk
), 0 )) {
5323 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
5325 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
5326 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
5327 written
|= ( 1 << 4 );
5328 TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
5334 abuf
-> written
= written
;
5339 /* lddfi: lddfi$pack @($GRi,$d12),$FRdoublek */
5342 SEM_FN_NAME ( frvbf
, lddfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5344 #define FLD(f) abuf->fields.sfmt_lddfi.f
5345 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5346 int UNUSED written
= 0 ;
5347 IADDR UNUSED pc
= abuf
-> addr
;
5348 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5353 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
5355 DF opval
= frvbf_read_mem_DF ( current_cpu
, pc
, tmp_address
);
5356 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
5357 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
5366 /* nlddi: nlddi$pack @($GRi,$d12),$GRdoublek */
5369 SEM_FN_NAME ( frvbf
, nlddi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5371 #define FLD(f) abuf->fields.sfmt_smuli.f
5372 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5373 int UNUSED written
= 0 ;
5374 IADDR UNUSED pc
= abuf
-> addr
;
5375 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5381 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_GRk
), FLD ( f_d12
), 5 , 0 );
5383 if ( NESI ( FLD ( f_GRk
), 0 )) {
5385 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
5387 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
5388 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
5389 written
|= ( 1 << 5 );
5390 TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
5398 abuf
-> written
= written
;
5403 /* nlddfi: nlddfi$pack @($GRi,$d12),$FRdoublek */
5406 SEM_FN_NAME ( frvbf
, nlddfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5408 #define FLD(f) abuf->fields.sfmt_lddfi.f
5409 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5410 int UNUSED written
= 0 ;
5411 IADDR UNUSED pc
= abuf
-> addr
;
5412 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5418 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_FRk
), FLD ( f_d12
), 5 , 1 );
5421 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
5423 DF opval
= frvbf_read_mem_DF ( current_cpu
, pc
, tmp_address
);
5424 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
5425 written
|= ( 1 << 5 );
5426 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
5433 abuf
-> written
= written
;
5438 /* ldqi: ldqi$pack @($GRi,$d12),$GRk */
5441 SEM_FN_NAME ( frvbf
, ldqi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5443 #define FLD(f) abuf->fields.sfmt_stdi.f
5444 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5445 int UNUSED written
= 0 ;
5446 IADDR UNUSED pc
= abuf
-> addr
;
5447 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5452 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
5453 frvbf_load_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
5461 /* ldqfi: ldqfi$pack @($GRi,$d12),$FRintk */
5464 SEM_FN_NAME ( frvbf
, ldqfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5466 #define FLD(f) abuf->fields.sfmt_stdfi.f
5467 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5468 int UNUSED written
= 0 ;
5469 IADDR UNUSED pc
= abuf
-> addr
;
5470 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5475 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
5476 frvbf_load_quad_FRint ( current_cpu
, pc
, tmp_address
, FLD ( f_FRk
));
5484 /* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
5487 SEM_FN_NAME ( frvbf
, nldqfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5489 #define FLD(f) abuf->fields.sfmt_stdfi.f
5490 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5491 int UNUSED written
= 0 ;
5492 IADDR UNUSED pc
= abuf
-> addr
;
5493 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5499 tmp_do_op
= frvbf_check_non_excepting_load ( current_cpu
, FLD ( f_GRi
), - 1 , FLD ( f_FRk
), FLD ( f_d12
), 6 , 1 );
5502 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
5503 frvbf_load_quad_FRint ( current_cpu
, pc
, tmp_address
, FLD ( f_FRk
));
5513 /* stb: stb$pack $GRk,@($GRi,$GRj) */
5516 SEM_FN_NAME ( frvbf
, stb
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5518 #define FLD(f) abuf->fields.sfmt_cswap.f
5519 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5520 int UNUSED written
= 0 ;
5521 IADDR UNUSED pc
= abuf
-> addr
;
5522 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5524 frvbf_write_mem_QI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), GET_H_GR ( FLD ( f_GRk
)));
5530 /* sth: sth$pack $GRk,@($GRi,$GRj) */
5533 SEM_FN_NAME ( frvbf
, sth
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5535 #define FLD(f) abuf->fields.sfmt_cswap.f
5536 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5537 int UNUSED written
= 0 ;
5538 IADDR UNUSED pc
= abuf
-> addr
;
5539 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5541 frvbf_write_mem_HI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), GET_H_GR ( FLD ( f_GRk
)));
5547 /* st: st$pack $GRk,@($GRi,$GRj) */
5550 SEM_FN_NAME ( frvbf
, st
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5552 #define FLD(f) abuf->fields.sfmt_cswap.f
5553 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5554 int UNUSED written
= 0 ;
5555 IADDR UNUSED pc
= abuf
-> addr
;
5556 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5558 frvbf_write_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), GET_H_GR ( FLD ( f_GRk
)));
5564 /* stbf: stbf$pack $FRintk,@($GRi,$GRj) */
5567 SEM_FN_NAME ( frvbf
, stbf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5569 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5570 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5571 int UNUSED written
= 0 ;
5572 IADDR UNUSED pc
= abuf
-> addr
;
5573 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5575 frvbf_write_mem_QI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), GET_H_FR_INT ( FLD ( f_FRk
)));
5581 /* sthf: sthf$pack $FRintk,@($GRi,$GRj) */
5584 SEM_FN_NAME ( frvbf
, sthf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5586 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5587 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5588 int UNUSED written
= 0 ;
5589 IADDR UNUSED pc
= abuf
-> addr
;
5590 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5592 frvbf_write_mem_HI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), GET_H_FR_INT ( FLD ( f_FRk
)));
5598 /* stf: stf$pack $FRintk,@($GRi,$GRj) */
5601 SEM_FN_NAME ( frvbf
, stf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5603 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5604 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5605 int UNUSED written
= 0 ;
5606 IADDR UNUSED pc
= abuf
-> addr
;
5607 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5609 frvbf_write_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), GET_H_FR_INT ( FLD ( f_FRk
)));
5615 /* stc: stc$pack $CPRk,@($GRi,$GRj) */
5618 SEM_FN_NAME ( frvbf
, stc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5620 #define FLD(f) abuf->fields.sfmt_stcu.f
5621 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5622 int UNUSED written
= 0 ;
5623 IADDR UNUSED pc
= abuf
-> addr
;
5624 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5626 frvbf_write_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), CPU ( h_cpr
[ FLD ( f_CPRk
)]));
5632 /* std: std$pack $GRdoublek,@($GRi,$GRj) */
5635 SEM_FN_NAME ( frvbf
, std
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5637 #define FLD(f) abuf->fields.sfmt_cstdu.f
5638 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5639 int UNUSED written
= 0 ;
5640 IADDR UNUSED pc
= abuf
-> addr
;
5641 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5646 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5647 frvbf_write_mem_DI ( current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE ( FLD ( f_GRk
)));
5655 /* stdf: stdf$pack $FRdoublek,@($GRi,$GRj) */
5658 SEM_FN_NAME ( frvbf
, stdf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5660 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5661 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5662 int UNUSED written
= 0 ;
5663 IADDR UNUSED pc
= abuf
-> addr
;
5664 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5669 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5670 frvbf_write_mem_DF ( current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE ( FLD ( f_FRk
)));
5678 /* stdc: stdc$pack $CPRdoublek,@($GRi,$GRj) */
5681 SEM_FN_NAME ( frvbf
, stdc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5683 #define FLD(f) abuf->fields.sfmt_stdcu.f
5684 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5685 int UNUSED written
= 0 ;
5686 IADDR UNUSED pc
= abuf
-> addr
;
5687 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5692 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5693 frvbf_write_mem_DI ( current_cpu
, pc
, tmp_address
, GET_H_CPR_DOUBLE ( FLD ( f_CPRk
)));
5701 /* stq: stq$pack $GRk,@($GRi,$GRj) */
5704 SEM_FN_NAME ( frvbf
, stq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5706 #define FLD(f) abuf->fields.sfmt_smulcc.f
5707 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5708 int UNUSED written
= 0 ;
5709 IADDR UNUSED pc
= abuf
-> addr
;
5710 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5715 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5716 frvbf_store_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
5724 /* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5727 SEM_FN_NAME ( frvbf
, stqf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5729 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5730 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5731 int UNUSED written
= 0 ;
5732 IADDR UNUSED pc
= abuf
-> addr
;
5733 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5738 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5739 frvbf_store_quad_FRint ( current_cpu
, pc
, tmp_address
, FLD ( f_FRk
));
5747 /* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5750 SEM_FN_NAME ( frvbf
, stqc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5752 #define FLD(f) abuf->fields.sfmt_stdcu.f
5753 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5754 int UNUSED written
= 0 ;
5755 IADDR UNUSED pc
= abuf
-> addr
;
5756 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5761 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5762 frvbf_store_quad_CPR ( current_cpu
, pc
, tmp_address
, FLD ( f_CPRk
));
5770 /* stbu: stbu$pack $GRk,@($GRi,$GRj) */
5773 SEM_FN_NAME ( frvbf
, stbu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5775 #define FLD(f) abuf->fields.sfmt_cstbu.f
5776 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5777 int UNUSED written
= 0 ;
5778 IADDR UNUSED pc
= abuf
-> addr
;
5779 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5783 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5784 frvbf_write_mem_QI ( current_cpu
, pc
, tmp_address
, GET_H_GR ( FLD ( f_GRk
)));
5786 SI opval
= tmp_address
;
5787 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5788 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5796 /* sthu: sthu$pack $GRk,@($GRi,$GRj) */
5799 SEM_FN_NAME ( frvbf
, sthu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5801 #define FLD(f) abuf->fields.sfmt_cstbu.f
5802 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5803 int UNUSED written
= 0 ;
5804 IADDR UNUSED pc
= abuf
-> addr
;
5805 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5809 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5810 frvbf_write_mem_HI ( current_cpu
, pc
, tmp_address
, GET_H_GR ( FLD ( f_GRk
)));
5812 SI opval
= tmp_address
;
5813 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5814 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5822 /* stu: stu$pack $GRk,@($GRi,$GRj) */
5825 SEM_FN_NAME ( frvbf
, stu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5827 #define FLD(f) abuf->fields.sfmt_cstbu.f
5828 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5829 int UNUSED written
= 0 ;
5830 IADDR UNUSED pc
= abuf
-> addr
;
5831 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5835 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5836 frvbf_write_mem_WI ( current_cpu
, pc
, tmp_address
, GET_H_GR ( FLD ( f_GRk
)));
5838 SI opval
= tmp_address
;
5839 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5840 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5848 /* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
5851 SEM_FN_NAME ( frvbf
, stbfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5853 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5854 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5855 int UNUSED written
= 0 ;
5856 IADDR UNUSED pc
= abuf
-> addr
;
5857 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5861 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5862 frvbf_write_mem_QI ( current_cpu
, pc
, tmp_address
, GET_H_FR_INT ( FLD ( f_FRk
)));
5864 SI opval
= tmp_address
;
5865 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5866 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5874 /* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
5877 SEM_FN_NAME ( frvbf
, sthfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5879 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5880 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5881 int UNUSED written
= 0 ;
5882 IADDR UNUSED pc
= abuf
-> addr
;
5883 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5887 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5888 frvbf_write_mem_HI ( current_cpu
, pc
, tmp_address
, GET_H_FR_INT ( FLD ( f_FRk
)));
5890 SI opval
= tmp_address
;
5891 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5892 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5900 /* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
5903 SEM_FN_NAME ( frvbf
, stfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5905 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5906 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5907 int UNUSED written
= 0 ;
5908 IADDR UNUSED pc
= abuf
-> addr
;
5909 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5913 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5914 frvbf_write_mem_SI ( current_cpu
, pc
, tmp_address
, GET_H_FR_INT ( FLD ( f_FRk
)));
5916 SI opval
= tmp_address
;
5917 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5918 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5926 /* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
5929 SEM_FN_NAME ( frvbf
, stcu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5931 #define FLD(f) abuf->fields.sfmt_stcu.f
5932 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5933 int UNUSED written
= 0 ;
5934 IADDR UNUSED pc
= abuf
-> addr
;
5935 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5939 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5940 frvbf_write_mem_SI ( current_cpu
, pc
, tmp_address
, CPU ( h_cpr
[ FLD ( f_CPRk
)]));
5942 SI opval
= tmp_address
;
5943 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5944 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5952 /* stdu: stdu$pack $GRdoublek,@($GRi,$GRj) */
5955 SEM_FN_NAME ( frvbf
, stdu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5957 #define FLD(f) abuf->fields.sfmt_cstdu.f
5958 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5959 int UNUSED written
= 0 ;
5960 IADDR UNUSED pc
= abuf
-> addr
;
5961 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5966 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5967 frvbf_write_mem_DI ( current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE ( FLD ( f_GRk
)));
5970 SI opval
= tmp_address
;
5971 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5972 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5980 /* stdfu: stdfu$pack $FRdoublek,@($GRi,$GRj) */
5983 SEM_FN_NAME ( frvbf
, stdfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5985 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5986 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5987 int UNUSED written
= 0 ;
5988 IADDR UNUSED pc
= abuf
-> addr
;
5989 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5994 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5995 frvbf_write_mem_DF ( current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE ( FLD ( f_FRk
)));
5998 SI opval
= tmp_address
;
5999 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6000 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6008 /* stdcu: stdcu$pack $CPRdoublek,@($GRi,$GRj) */
6011 SEM_FN_NAME ( frvbf
, stdcu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6013 #define FLD(f) abuf->fields.sfmt_stdcu.f
6014 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6015 int UNUSED written
= 0 ;
6016 IADDR UNUSED pc
= abuf
-> addr
;
6017 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6022 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6023 frvbf_write_mem_DI ( current_cpu
, pc
, tmp_address
, GET_H_CPR_DOUBLE ( FLD ( f_CPRk
)));
6026 SI opval
= tmp_address
;
6027 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6028 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6036 /* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6039 SEM_FN_NAME ( frvbf
, stqu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6041 #define FLD(f) abuf->fields.sfmt_cstdu.f
6042 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6043 int UNUSED written
= 0 ;
6044 IADDR UNUSED pc
= abuf
-> addr
;
6045 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6050 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6051 frvbf_store_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
6054 SI opval
= tmp_address
;
6055 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6056 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6064 /* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6067 SEM_FN_NAME ( frvbf
, stqfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6069 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6070 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6071 int UNUSED written
= 0 ;
6072 IADDR UNUSED pc
= abuf
-> addr
;
6073 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6078 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6079 frvbf_store_quad_FRint ( current_cpu
, pc
, tmp_address
, FLD ( f_FRk
));
6082 SI opval
= tmp_address
;
6083 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6084 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6092 /* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6095 SEM_FN_NAME ( frvbf
, stqcu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6097 #define FLD(f) abuf->fields.sfmt_stdcu.f
6098 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6099 int UNUSED written
= 0 ;
6100 IADDR UNUSED pc
= abuf
-> addr
;
6101 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6106 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6107 frvbf_store_quad_CPR ( current_cpu
, pc
, tmp_address
, FLD ( f_CPRk
));
6110 SI opval
= tmp_address
;
6111 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6112 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6120 /* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6123 SEM_FN_NAME ( frvbf
, cldsb
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6125 #define FLD(f) abuf->fields.sfmt_cswap.f
6126 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6127 int UNUSED written
= 0 ;
6128 IADDR UNUSED pc
= abuf
-> addr
;
6129 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6131 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6133 SI opval
= frvbf_read_mem_QI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6134 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6135 written
|= ( 1 << 5 );
6136 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6140 abuf
-> written
= written
;
6145 /* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6148 SEM_FN_NAME ( frvbf
, cldub
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6150 #define FLD(f) abuf->fields.sfmt_cswap.f
6151 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6152 int UNUSED written
= 0 ;
6153 IADDR UNUSED pc
= abuf
-> addr
;
6154 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6156 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6158 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6159 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6160 written
|= ( 1 << 5 );
6161 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6165 abuf
-> written
= written
;
6170 /* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6173 SEM_FN_NAME ( frvbf
, cldsh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6175 #define FLD(f) abuf->fields.sfmt_cswap.f
6176 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6177 int UNUSED written
= 0 ;
6178 IADDR UNUSED pc
= abuf
-> addr
;
6179 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6181 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6183 SI opval
= frvbf_read_mem_HI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6184 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6185 written
|= ( 1 << 5 );
6186 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6190 abuf
-> written
= written
;
6195 /* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6198 SEM_FN_NAME ( frvbf
, clduh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6200 #define FLD(f) abuf->fields.sfmt_cswap.f
6201 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6202 int UNUSED written
= 0 ;
6203 IADDR UNUSED pc
= abuf
-> addr
;
6204 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6206 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6208 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6209 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6210 written
|= ( 1 << 5 );
6211 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6215 abuf
-> written
= written
;
6220 /* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6223 SEM_FN_NAME ( frvbf
, cld
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6225 #define FLD(f) abuf->fields.sfmt_cswap.f
6226 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6227 int UNUSED written
= 0 ;
6228 IADDR UNUSED pc
= abuf
-> addr
;
6229 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6231 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6233 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6234 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6235 written
|= ( 1 << 5 );
6236 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6240 abuf
-> written
= written
;
6245 /* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6248 SEM_FN_NAME ( frvbf
, cldbf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6250 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6251 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6252 int UNUSED written
= 0 ;
6253 IADDR UNUSED pc
= abuf
-> addr
;
6254 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6256 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6258 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6259 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
6260 written
|= ( 1 << 5 );
6261 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
6265 abuf
-> written
= written
;
6270 /* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6273 SEM_FN_NAME ( frvbf
, cldhf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6275 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6276 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6277 int UNUSED written
= 0 ;
6278 IADDR UNUSED pc
= abuf
-> addr
;
6279 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6281 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6283 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6284 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
6285 written
|= ( 1 << 5 );
6286 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
6290 abuf
-> written
= written
;
6295 /* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6298 SEM_FN_NAME ( frvbf
, cldf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6300 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6301 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6302 int UNUSED written
= 0 ;
6303 IADDR UNUSED pc
= abuf
-> addr
;
6304 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6306 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6308 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6309 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
6310 written
|= ( 1 << 5 );
6311 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
6315 abuf
-> written
= written
;
6320 /* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6323 SEM_FN_NAME ( frvbf
, cldd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6325 #define FLD(f) abuf->fields.sfmt_clddu.f
6326 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6327 int UNUSED written
= 0 ;
6328 IADDR UNUSED pc
= abuf
-> addr
;
6329 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6331 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6334 if ( NESI ( FLD ( f_GRk
), 0 )) {
6336 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6338 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
6339 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
6340 written
|= ( 1 << 6 );
6341 TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
6348 abuf
-> written
= written
;
6353 /* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6356 SEM_FN_NAME ( frvbf
, clddf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6358 #define FLD(f) abuf->fields.sfmt_clddfu.f
6359 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6360 int UNUSED written
= 0 ;
6361 IADDR UNUSED pc
= abuf
-> addr
;
6362 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6364 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6368 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6370 DF opval
= frvbf_read_mem_DF ( current_cpu
, pc
, tmp_address
);
6371 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
6372 written
|= ( 1 << 5 );
6373 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
6379 abuf
-> written
= written
;
6384 /* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6387 SEM_FN_NAME ( frvbf
, cldq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6389 #define FLD(f) abuf->fields.sfmt_cswap.f
6390 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6391 int UNUSED written
= 0 ;
6392 IADDR UNUSED pc
= abuf
-> addr
;
6393 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6395 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6399 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6400 frvbf_load_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
6409 /* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6412 SEM_FN_NAME ( frvbf
, cldsbu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6414 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6415 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6416 int UNUSED written
= 0 ;
6417 IADDR UNUSED pc
= abuf
-> addr
;
6418 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6420 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6423 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6425 SI opval
= frvbf_read_mem_QI ( current_cpu
, pc
, tmp_address
);
6426 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6427 written
|= ( 1 << 8 );
6428 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6430 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
6432 SI opval
= tmp_address
;
6433 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6434 written
|= ( 1 << 7 );
6435 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6441 abuf
-> written
= written
;
6446 /* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6449 SEM_FN_NAME ( frvbf
, cldubu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6451 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6452 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6453 int UNUSED written
= 0 ;
6454 IADDR UNUSED pc
= abuf
-> addr
;
6455 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6457 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6460 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6462 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, tmp_address
);
6463 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6464 written
|= ( 1 << 8 );
6465 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6467 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
6469 SI opval
= tmp_address
;
6470 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6471 written
|= ( 1 << 7 );
6472 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6478 abuf
-> written
= written
;
6483 /* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6486 SEM_FN_NAME ( frvbf
, cldshu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6488 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6489 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6490 int UNUSED written
= 0 ;
6491 IADDR UNUSED pc
= abuf
-> addr
;
6492 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6494 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6497 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6499 SI opval
= frvbf_read_mem_HI ( current_cpu
, pc
, tmp_address
);
6500 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6501 written
|= ( 1 << 8 );
6502 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6504 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
6506 SI opval
= tmp_address
;
6507 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6508 written
|= ( 1 << 7 );
6509 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6515 abuf
-> written
= written
;
6520 /* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6523 SEM_FN_NAME ( frvbf
, clduhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6525 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6526 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6527 int UNUSED written
= 0 ;
6528 IADDR UNUSED pc
= abuf
-> addr
;
6529 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6531 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6534 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6536 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, tmp_address
);
6537 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6538 written
|= ( 1 << 8 );
6539 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6541 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
6543 SI opval
= tmp_address
;
6544 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6545 written
|= ( 1 << 7 );
6546 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6552 abuf
-> written
= written
;
6557 /* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6560 SEM_FN_NAME ( frvbf
, cldu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6562 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6563 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6564 int UNUSED written
= 0 ;
6565 IADDR UNUSED pc
= abuf
-> addr
;
6566 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6568 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6571 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6573 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, tmp_address
);
6574 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6575 written
|= ( 1 << 8 );
6576 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6578 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
6580 SI opval
= tmp_address
;
6581 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6582 written
|= ( 1 << 7 );
6583 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6589 abuf
-> written
= written
;
6594 /* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6597 SEM_FN_NAME ( frvbf
, cldbfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6599 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6600 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6601 int UNUSED written
= 0 ;
6602 IADDR UNUSED pc
= abuf
-> addr
;
6603 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6605 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6608 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6610 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, tmp_address
);
6611 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
6612 written
|= ( 1 << 5 );
6613 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
6616 SI opval
= tmp_address
;
6617 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6618 written
|= ( 1 << 6 );
6619 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6624 abuf
-> written
= written
;
6629 /* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6632 SEM_FN_NAME ( frvbf
, cldhfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6634 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6635 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6636 int UNUSED written
= 0 ;
6637 IADDR UNUSED pc
= abuf
-> addr
;
6638 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6640 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6643 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6645 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, tmp_address
);
6646 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
6647 written
|= ( 1 << 5 );
6648 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
6651 SI opval
= tmp_address
;
6652 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6653 written
|= ( 1 << 6 );
6654 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6659 abuf
-> written
= written
;
6664 /* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6667 SEM_FN_NAME ( frvbf
, cldfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6669 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6670 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6671 int UNUSED written
= 0 ;
6672 IADDR UNUSED pc
= abuf
-> addr
;
6673 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6675 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6678 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6680 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, tmp_address
);
6681 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
6682 written
|= ( 1 << 5 );
6683 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
6686 SI opval
= tmp_address
;
6687 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6688 written
|= ( 1 << 6 );
6689 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6694 abuf
-> written
= written
;
6699 /* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6702 SEM_FN_NAME ( frvbf
, clddu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6704 #define FLD(f) abuf->fields.sfmt_clddu.f
6705 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6706 int UNUSED written
= 0 ;
6707 IADDR UNUSED pc
= abuf
-> addr
;
6708 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6710 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6713 if ( NESI ( FLD ( f_GRk
), 0 )) {
6715 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6717 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
6718 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
6719 written
|= ( 1 << 7 );
6720 TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
6724 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
6726 SI opval
= tmp_address
;
6727 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6728 written
|= ( 1 << 8 );
6729 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6735 abuf
-> written
= written
;
6740 /* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6743 SEM_FN_NAME ( frvbf
, clddfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6745 #define FLD(f) abuf->fields.sfmt_clddfu.f
6746 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6747 int UNUSED written
= 0 ;
6748 IADDR UNUSED pc
= abuf
-> addr
;
6749 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6751 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6755 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6757 DF opval
= frvbf_read_mem_DF ( current_cpu
, pc
, tmp_address
);
6758 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
6759 written
|= ( 1 << 5 );
6760 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
6764 SI opval
= tmp_address
;
6765 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6766 written
|= ( 1 << 6 );
6767 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6772 abuf
-> written
= written
;
6777 /* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6780 SEM_FN_NAME ( frvbf
, cldqu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6782 #define FLD(f) abuf->fields.sfmt_cstdu.f
6783 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6784 int UNUSED written
= 0 ;
6785 IADDR UNUSED pc
= abuf
-> addr
;
6786 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6788 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6792 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6793 frvbf_load_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
6795 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
6797 SI opval
= tmp_address
;
6798 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6799 written
|= ( 1 << 7 );
6800 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6806 abuf
-> written
= written
;
6811 /* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6814 SEM_FN_NAME ( frvbf
, cstb
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6816 #define FLD(f) abuf->fields.sfmt_cswap.f
6817 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6818 int UNUSED written
= 0 ;
6819 IADDR UNUSED pc
= abuf
-> addr
;
6820 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6822 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6823 frvbf_write_mem_QI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), GET_H_GR ( FLD ( f_GRk
)));
6830 /* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6833 SEM_FN_NAME ( frvbf
, csth
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6835 #define FLD(f) abuf->fields.sfmt_cswap.f
6836 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6837 int UNUSED written
= 0 ;
6838 IADDR UNUSED pc
= abuf
-> addr
;
6839 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6841 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6842 frvbf_write_mem_HI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), GET_H_GR ( FLD ( f_GRk
)));
6849 /* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6852 SEM_FN_NAME ( frvbf
, cst
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6854 #define FLD(f) abuf->fields.sfmt_cswap.f
6855 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6856 int UNUSED written
= 0 ;
6857 IADDR UNUSED pc
= abuf
-> addr
;
6858 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6860 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6861 frvbf_write_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), GET_H_GR ( FLD ( f_GRk
)));
6868 /* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6871 SEM_FN_NAME ( frvbf
, cstbf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6873 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6874 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6875 int UNUSED written
= 0 ;
6876 IADDR UNUSED pc
= abuf
-> addr
;
6877 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6879 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6880 frvbf_write_mem_QI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), GET_H_FR_INT ( FLD ( f_FRk
)));
6887 /* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6890 SEM_FN_NAME ( frvbf
, csthf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6892 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6893 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6894 int UNUSED written
= 0 ;
6895 IADDR UNUSED pc
= abuf
-> addr
;
6896 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6898 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6899 frvbf_write_mem_HI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), GET_H_FR_INT ( FLD ( f_FRk
)));
6906 /* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6909 SEM_FN_NAME ( frvbf
, cstf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6911 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6912 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6913 int UNUSED written
= 0 ;
6914 IADDR UNUSED pc
= abuf
-> addr
;
6915 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6917 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6918 frvbf_write_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), GET_H_FR_INT ( FLD ( f_FRk
)));
6925 /* cstd: cstd$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
6928 SEM_FN_NAME ( frvbf
, cstd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6930 #define FLD(f) abuf->fields.sfmt_cstdu.f
6931 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6932 int UNUSED written
= 0 ;
6933 IADDR UNUSED pc
= abuf
-> addr
;
6934 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6936 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6940 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6941 frvbf_write_mem_DI ( current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE ( FLD ( f_GRk
)));
6950 /* cstdf: cstdf$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
6953 SEM_FN_NAME ( frvbf
, cstdf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6955 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6956 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6957 int UNUSED written
= 0 ;
6958 IADDR UNUSED pc
= abuf
-> addr
;
6959 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6961 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6965 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6966 frvbf_write_mem_DF ( current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE ( FLD ( f_FRk
)));
6975 /* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6978 SEM_FN_NAME ( frvbf
, cstq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6980 #define FLD(f) abuf->fields.sfmt_cswap.f
6981 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6982 int UNUSED written
= 0 ;
6983 IADDR UNUSED pc
= abuf
-> addr
;
6984 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6986 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6990 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6991 frvbf_store_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
7000 /* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7003 SEM_FN_NAME ( frvbf
, cstbu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7005 #define FLD(f) abuf->fields.sfmt_cstbu.f
7006 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7007 int UNUSED written
= 0 ;
7008 IADDR UNUSED pc
= abuf
-> addr
;
7009 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7011 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7014 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7015 frvbf_write_mem_QI ( current_cpu
, pc
, tmp_address
, GET_H_GR ( FLD ( f_GRk
)));
7017 SI opval
= tmp_address
;
7018 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7019 written
|= ( 1 << 6 );
7020 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7025 abuf
-> written
= written
;
7030 /* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7033 SEM_FN_NAME ( frvbf
, csthu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7035 #define FLD(f) abuf->fields.sfmt_cstbu.f
7036 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7037 int UNUSED written
= 0 ;
7038 IADDR UNUSED pc
= abuf
-> addr
;
7039 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7041 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7044 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7045 frvbf_write_mem_HI ( current_cpu
, pc
, tmp_address
, GET_H_GR ( FLD ( f_GRk
)));
7047 SI opval
= tmp_address
;
7048 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7049 written
|= ( 1 << 6 );
7050 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7055 abuf
-> written
= written
;
7060 /* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7063 SEM_FN_NAME ( frvbf
, cstu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7065 #define FLD(f) abuf->fields.sfmt_cstbu.f
7066 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7067 int UNUSED written
= 0 ;
7068 IADDR UNUSED pc
= abuf
-> addr
;
7069 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7071 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7074 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7075 frvbf_write_mem_SI ( current_cpu
, pc
, tmp_address
, GET_H_GR ( FLD ( f_GRk
)));
7077 SI opval
= tmp_address
;
7078 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7079 written
|= ( 1 << 6 );
7080 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7085 abuf
-> written
= written
;
7090 /* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7093 SEM_FN_NAME ( frvbf
, cstbfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7095 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7096 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7097 int UNUSED written
= 0 ;
7098 IADDR UNUSED pc
= abuf
-> addr
;
7099 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7101 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7104 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7105 frvbf_write_mem_QI ( current_cpu
, pc
, tmp_address
, GET_H_FR_INT ( FLD ( f_FRk
)));
7107 SI opval
= tmp_address
;
7108 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7109 written
|= ( 1 << 6 );
7110 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7115 abuf
-> written
= written
;
7120 /* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7123 SEM_FN_NAME ( frvbf
, csthfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7125 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7126 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7127 int UNUSED written
= 0 ;
7128 IADDR UNUSED pc
= abuf
-> addr
;
7129 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7131 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7134 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7135 frvbf_write_mem_HI ( current_cpu
, pc
, tmp_address
, GET_H_FR_INT ( FLD ( f_FRk
)));
7137 SI opval
= tmp_address
;
7138 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7139 written
|= ( 1 << 6 );
7140 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7145 abuf
-> written
= written
;
7150 /* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7153 SEM_FN_NAME ( frvbf
, cstfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7155 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7156 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7157 int UNUSED written
= 0 ;
7158 IADDR UNUSED pc
= abuf
-> addr
;
7159 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7161 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7164 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7165 frvbf_write_mem_SI ( current_cpu
, pc
, tmp_address
, GET_H_FR_INT ( FLD ( f_FRk
)));
7167 SI opval
= tmp_address
;
7168 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7169 written
|= ( 1 << 6 );
7170 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7175 abuf
-> written
= written
;
7180 /* cstdu: cstdu$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
7183 SEM_FN_NAME ( frvbf
, cstdu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7185 #define FLD(f) abuf->fields.sfmt_cstdu.f
7186 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7187 int UNUSED written
= 0 ;
7188 IADDR UNUSED pc
= abuf
-> addr
;
7189 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7191 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7195 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7196 frvbf_write_mem_DI ( current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE ( FLD ( f_GRk
)));
7199 SI opval
= tmp_address
;
7200 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7201 written
|= ( 1 << 6 );
7202 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7207 abuf
-> written
= written
;
7212 /* cstdfu: cstdfu$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
7215 SEM_FN_NAME ( frvbf
, cstdfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7217 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7218 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7219 int UNUSED written
= 0 ;
7220 IADDR UNUSED pc
= abuf
-> addr
;
7221 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7223 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7227 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7228 frvbf_write_mem_DF ( current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE ( FLD ( f_FRk
)));
7231 SI opval
= tmp_address
;
7232 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7233 written
|= ( 1 << 6 );
7234 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7239 abuf
-> written
= written
;
7244 /* stbi: stbi$pack $GRk,@($GRi,$d12) */
7247 SEM_FN_NAME ( frvbf
, stbi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7249 #define FLD(f) abuf->fields.sfmt_swapi.f
7250 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7251 int UNUSED written
= 0 ;
7252 IADDR UNUSED pc
= abuf
-> addr
;
7253 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7255 frvbf_write_mem_QI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), GET_H_GR ( FLD ( f_GRk
)));
7261 /* sthi: sthi$pack $GRk,@($GRi,$d12) */
7264 SEM_FN_NAME ( frvbf
, sthi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7266 #define FLD(f) abuf->fields.sfmt_swapi.f
7267 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7268 int UNUSED written
= 0 ;
7269 IADDR UNUSED pc
= abuf
-> addr
;
7270 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7272 frvbf_write_mem_HI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), GET_H_GR ( FLD ( f_GRk
)));
7278 /* sti: sti$pack $GRk,@($GRi,$d12) */
7281 SEM_FN_NAME ( frvbf
, sti
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7283 #define FLD(f) abuf->fields.sfmt_swapi.f
7284 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7285 int UNUSED written
= 0 ;
7286 IADDR UNUSED pc
= abuf
-> addr
;
7287 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7289 frvbf_write_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), GET_H_GR ( FLD ( f_GRk
)));
7295 /* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7298 SEM_FN_NAME ( frvbf
, stbfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7300 #define FLD(f) abuf->fields.sfmt_stbfi.f
7301 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7302 int UNUSED written
= 0 ;
7303 IADDR UNUSED pc
= abuf
-> addr
;
7304 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7306 frvbf_write_mem_QI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), GET_H_FR_INT ( FLD ( f_FRk
)));
7312 /* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7315 SEM_FN_NAME ( frvbf
, sthfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7317 #define FLD(f) abuf->fields.sfmt_stbfi.f
7318 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7319 int UNUSED written
= 0 ;
7320 IADDR UNUSED pc
= abuf
-> addr
;
7321 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7323 frvbf_write_mem_HI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), GET_H_FR_INT ( FLD ( f_FRk
)));
7329 /* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7332 SEM_FN_NAME ( frvbf
, stfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7334 #define FLD(f) abuf->fields.sfmt_stbfi.f
7335 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7336 int UNUSED written
= 0 ;
7337 IADDR UNUSED pc
= abuf
-> addr
;
7338 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7340 frvbf_write_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), GET_H_FR_INT ( FLD ( f_FRk
)));
7346 /* stdi: stdi$pack $GRdoublek,@($GRi,$d12) */
7349 SEM_FN_NAME ( frvbf
, stdi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7351 #define FLD(f) abuf->fields.sfmt_stdi.f
7352 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7353 int UNUSED written
= 0 ;
7354 IADDR UNUSED pc
= abuf
-> addr
;
7355 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7360 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
7361 frvbf_write_mem_DI ( current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE ( FLD ( f_GRk
)));
7369 /* stdfi: stdfi$pack $FRdoublek,@($GRi,$d12) */
7372 SEM_FN_NAME ( frvbf
, stdfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7374 #define FLD(f) abuf->fields.sfmt_stdfi.f
7375 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7376 int UNUSED written
= 0 ;
7377 IADDR UNUSED pc
= abuf
-> addr
;
7378 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7383 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
7384 frvbf_write_mem_DF ( current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE ( FLD ( f_FRk
)));
7392 /* stqi: stqi$pack $GRk,@($GRi,$d12) */
7395 SEM_FN_NAME ( frvbf
, stqi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7397 #define FLD(f) abuf->fields.sfmt_stdi.f
7398 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7399 int UNUSED written
= 0 ;
7400 IADDR UNUSED pc
= abuf
-> addr
;
7401 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7406 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
7407 frvbf_store_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
7415 /* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7418 SEM_FN_NAME ( frvbf
, stqfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7420 #define FLD(f) abuf->fields.sfmt_stdfi.f
7421 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7422 int UNUSED written
= 0 ;
7423 IADDR UNUSED pc
= abuf
-> addr
;
7424 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7429 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
7430 frvbf_store_quad_FRint ( current_cpu
, pc
, tmp_address
, FLD ( f_FRk
));
7438 /* swap: swap$pack @($GRi,$GRj),$GRk */
7441 SEM_FN_NAME ( frvbf
, swap
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7443 #define FLD(f) abuf->fields.sfmt_cswap.f
7444 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7445 int UNUSED written
= 0 ;
7446 IADDR UNUSED pc
= abuf
-> addr
;
7447 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7452 tmp_tmp
= GET_H_GR ( FLD ( f_GRk
));
7453 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7454 frvbf_check_swap_address ( current_cpu
, tmp_address
);
7456 SI opval
= frvbf_read_mem_WI ( current_cpu
, pc
, tmp_address
);
7457 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
7458 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7460 frvbf_write_mem_WI ( current_cpu
, pc
, tmp_address
, tmp_tmp
);
7467 /* swapi: swapi$pack @($GRi,$d12),$GRk */
7470 SEM_FN_NAME ( frvbf
, swapi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7472 #define FLD(f) abuf->fields.sfmt_swapi.f
7473 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7474 int UNUSED written
= 0 ;
7475 IADDR UNUSED pc
= abuf
-> addr
;
7476 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7481 tmp_tmp
= GET_H_GR ( FLD ( f_GRk
));
7482 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
7483 frvbf_check_swap_address ( current_cpu
, tmp_address
);
7485 SI opval
= frvbf_read_mem_WI ( current_cpu
, pc
, tmp_address
);
7486 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
7487 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7489 frvbf_write_mem_WI ( current_cpu
, pc
, tmp_address
, tmp_tmp
);
7496 /* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7499 SEM_FN_NAME ( frvbf
, cswap
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7501 #define FLD(f) abuf->fields.sfmt_cswap.f
7502 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7503 int UNUSED written
= 0 ;
7504 IADDR UNUSED pc
= abuf
-> addr
;
7505 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7507 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7511 tmp_tmp
= GET_H_GR ( FLD ( f_GRk
));
7512 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7513 frvbf_check_swap_address ( current_cpu
, tmp_address
);
7515 SI opval
= frvbf_read_mem_WI ( current_cpu
, pc
, tmp_address
);
7516 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
7517 written
|= ( 1 << 6 );
7518 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7520 frvbf_write_mem_WI ( current_cpu
, pc
, tmp_address
, tmp_tmp
);
7524 abuf
-> written
= written
;
7529 /* movgf: movgf$pack $GRj,$FRintk */
7532 SEM_FN_NAME ( frvbf
, movgf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7534 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7535 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7536 int UNUSED written
= 0 ;
7537 IADDR UNUSED pc
= abuf
-> addr
;
7538 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7541 SI opval
= GET_H_GR ( FLD ( f_GRj
));
7542 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7543 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7550 /* movfg: movfg$pack $FRintk,$GRj */
7553 SEM_FN_NAME ( frvbf
, movfg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7555 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7556 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7557 int UNUSED written
= 0 ;
7558 IADDR UNUSED pc
= abuf
-> addr
;
7559 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7562 SI opval
= GET_H_FR_INT ( FLD ( f_FRk
));
7563 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRj
), opval
);
7564 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7571 /* movgfd: movgfd$pack $GRj,$FRintk */
7574 SEM_FN_NAME ( frvbf
, movgfd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7576 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7577 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7578 int UNUSED written
= 0 ;
7579 IADDR UNUSED pc
= abuf
-> addr
;
7580 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7582 if ( EQSI ( FLD ( f_GRj
), 0 )) {
7586 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7587 written
|= ( 1 << 4 );
7588 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7592 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
7593 written
|= ( 1 << 5 );
7594 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7600 SI opval
= GET_H_GR ( FLD ( f_GRj
));
7601 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7602 written
|= ( 1 << 4 );
7603 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7606 USI opval
= GET_H_GR ((( FLD ( f_GRj
)) + ( 1 )));
7607 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
7608 written
|= ( 1 << 5 );
7609 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7614 abuf
-> written
= written
;
7619 /* movfgd: movfgd$pack $FRintk,$GRj */
7622 SEM_FN_NAME ( frvbf
, movfgd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7624 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7625 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7626 int UNUSED written
= 0 ;
7627 IADDR UNUSED pc
= abuf
-> addr
;
7628 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7630 if ( NESI ( FLD ( f_GRj
), 0 )) {
7633 SI opval
= GET_H_FR_INT ( FLD ( f_FRk
));
7634 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRj
), opval
);
7635 written
|= ( 1 << 4 );
7636 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7639 USI opval
= GET_H_FR_INT ((( FLD ( f_FRk
)) + ( 1 )));
7640 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, (( FLD ( f_GRj
)) + ( 1 )), opval
);
7641 written
|= ( 1 << 5 );
7642 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7647 abuf
-> written
= written
;
7652 /* movgfq: movgfq$pack $GRj,$FRintk */
7655 SEM_FN_NAME ( frvbf
, movgfq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7657 #define FLD(f) abuf->fields.sfmt_movgfq.f
7658 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7659 int UNUSED written
= 0 ;
7660 IADDR UNUSED pc
= abuf
-> addr
;
7661 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7663 if ( EQSI ( FLD ( f_GRj
), 0 )) {
7667 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7668 written
|= ( 1 << 6 );
7669 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7673 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
7674 written
|= ( 1 << 7 );
7675 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7679 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
7680 written
|= ( 1 << 8 );
7681 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7685 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 3 )), opval
);
7686 written
|= ( 1 << 9 );
7687 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7693 SI opval
= GET_H_GR ( FLD ( f_GRj
));
7694 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7695 written
|= ( 1 << 6 );
7696 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7699 USI opval
= GET_H_GR ((( FLD ( f_GRj
)) + ( 1 )));
7700 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
7701 written
|= ( 1 << 7 );
7702 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7705 USI opval
= GET_H_GR ((( FLD ( f_GRj
)) + ( 2 )));
7706 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
7707 written
|= ( 1 << 8 );
7708 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7711 USI opval
= GET_H_GR ((( FLD ( f_GRj
)) + ( 3 )));
7712 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 3 )), opval
);
7713 written
|= ( 1 << 9 );
7714 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7719 abuf
-> written
= written
;
7724 /* movfgq: movfgq$pack $FRintk,$GRj */
7727 SEM_FN_NAME ( frvbf
, movfgq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7729 #define FLD(f) abuf->fields.sfmt_movfgq.f
7730 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7731 int UNUSED written
= 0 ;
7732 IADDR UNUSED pc
= abuf
-> addr
;
7733 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7735 if ( NESI ( FLD ( f_GRj
), 0 )) {
7738 SI opval
= GET_H_FR_INT ( FLD ( f_FRk
));
7739 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRj
), opval
);
7740 written
|= ( 1 << 6 );
7741 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7744 USI opval
= GET_H_FR_INT ((( FLD ( f_FRk
)) + ( 1 )));
7745 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, (( FLD ( f_GRj
)) + ( 1 )), opval
);
7746 written
|= ( 1 << 7 );
7747 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7750 USI opval
= GET_H_FR_INT ((( FLD ( f_FRk
)) + ( 2 )));
7751 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, (( FLD ( f_GRj
)) + ( 2 )), opval
);
7752 written
|= ( 1 << 8 );
7753 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7756 USI opval
= GET_H_FR_INT ((( FLD ( f_FRk
)) + ( 3 )));
7757 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, (( FLD ( f_GRj
)) + ( 3 )), opval
);
7758 written
|= ( 1 << 9 );
7759 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7764 abuf
-> written
= written
;
7769 /* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
7772 SEM_FN_NAME ( frvbf
, cmovgf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7774 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7775 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7776 int UNUSED written
= 0 ;
7777 IADDR UNUSED pc
= abuf
-> addr
;
7778 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7780 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7782 SI opval
= GET_H_GR ( FLD ( f_GRj
));
7783 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7784 written
|= ( 1 << 3 );
7785 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7789 abuf
-> written
= written
;
7794 /* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
7797 SEM_FN_NAME ( frvbf
, cmovfg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7799 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7800 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7801 int UNUSED written
= 0 ;
7802 IADDR UNUSED pc
= abuf
-> addr
;
7803 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7805 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7807 SI opval
= GET_H_FR_INT ( FLD ( f_FRk
));
7808 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRj
), opval
);
7809 written
|= ( 1 << 3 );
7810 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7814 abuf
-> written
= written
;
7819 /* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
7822 SEM_FN_NAME ( frvbf
, cmovgfd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7824 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7825 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7826 int UNUSED written
= 0 ;
7827 IADDR UNUSED pc
= abuf
-> addr
;
7828 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7830 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7831 if ( EQSI ( FLD ( f_GRj
), 0 )) {
7835 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7836 written
|= ( 1 << 6 );
7837 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7841 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
7842 written
|= ( 1 << 7 );
7843 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7849 SI opval
= GET_H_GR ( FLD ( f_GRj
));
7850 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7851 written
|= ( 1 << 6 );
7852 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7855 USI opval
= GET_H_GR ((( FLD ( f_GRj
)) + ( 1 )));
7856 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
7857 written
|= ( 1 << 7 );
7858 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7864 abuf
-> written
= written
;
7869 /* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
7872 SEM_FN_NAME ( frvbf
, cmovfgd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7874 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7875 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7876 int UNUSED written
= 0 ;
7877 IADDR UNUSED pc
= abuf
-> addr
;
7878 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7880 if ( ANDIF ( NESI ( FLD ( f_GRj
), 0 ), EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 )))) {
7883 SI opval
= GET_H_FR_INT ( FLD ( f_FRk
));
7884 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRj
), opval
);
7885 written
|= ( 1 << 6 );
7886 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7889 USI opval
= GET_H_FR_INT ((( FLD ( f_FRk
)) + ( 1 )));
7890 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, (( FLD ( f_GRj
)) + ( 1 )), opval
);
7891 written
|= ( 1 << 7 );
7892 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7897 abuf
-> written
= written
;
7902 /* movgs: movgs$pack $GRj,$spr */
7905 SEM_FN_NAME ( frvbf
, movgs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7907 #define FLD(f) abuf->fields.sfmt_movgs.f
7908 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7909 int UNUSED written
= 0 ;
7910 IADDR UNUSED pc
= abuf
-> addr
;
7911 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7914 USI opval
= GET_H_GR ( FLD ( f_GRj
));
7915 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, FLD ( f_spr
), opval
);
7916 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
7923 /* movsg: movsg$pack $spr,$GRj */
7926 SEM_FN_NAME ( frvbf
, movsg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7928 #define FLD(f) abuf->fields.sfmt_movsg.f
7929 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7930 int UNUSED written
= 0 ;
7931 IADDR UNUSED pc
= abuf
-> addr
;
7932 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7935 SI opval
= GET_H_SPR ( FLD ( f_spr
));
7936 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRj
), opval
);
7937 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7944 /* bra: bra$pack $hint_taken$label16 */
7947 SEM_FN_NAME ( frvbf
, bra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7949 #define FLD(f) abuf->fields.sfmt_fbne.f
7950 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7951 int UNUSED written
= 0 ;
7952 IADDR UNUSED pc
= abuf
-> addr
;
7953 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7956 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
7958 USI opval
= FLD ( i_label16
);
7959 sim_queue_pc_write ( current_cpu
, opval
);
7960 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
7968 /* bno: bno$pack$hint_not_taken */
7971 SEM_FN_NAME ( frvbf
, bno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7973 #define FLD(f) abuf->fields.sfmt_fbne.f
7974 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7975 int UNUSED written
= 0 ;
7976 IADDR UNUSED pc
= abuf
-> addr
;
7977 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7979 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
7985 /* beq: beq$pack $ICCi_2,$hint,$label16 */
7988 SEM_FN_NAME ( frvbf
, beq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7990 #define FLD(f) abuf->fields.sfmt_beq.f
7991 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7992 int UNUSED written
= 0 ;
7993 IADDR UNUSED pc
= abuf
-> addr
;
7994 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7997 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
7998 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 ))) {
8000 USI opval
= FLD ( i_label16
);
8001 sim_queue_pc_write ( current_cpu
, opval
);
8002 written
|= ( 1 << 3 );
8003 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8008 abuf
-> written
= written
;
8013 /* bne: bne$pack $ICCi_2,$hint,$label16 */
8016 SEM_FN_NAME ( frvbf
, bne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8018 #define FLD(f) abuf->fields.sfmt_beq.f
8019 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8020 int UNUSED written
= 0 ;
8021 IADDR UNUSED pc
= abuf
-> addr
;
8022 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8025 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8026 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
8028 USI opval
= FLD ( i_label16
);
8029 sim_queue_pc_write ( current_cpu
, opval
);
8030 written
|= ( 1 << 3 );
8031 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8036 abuf
-> written
= written
;
8041 /* ble: ble$pack $ICCi_2,$hint,$label16 */
8044 SEM_FN_NAME ( frvbf
, ble
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8046 #define FLD(f) abuf->fields.sfmt_beq.f
8047 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8048 int UNUSED written
= 0 ;
8049 IADDR UNUSED pc
= abuf
-> addr
;
8050 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8053 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8054 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )), XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))))) {
8056 USI opval
= FLD ( i_label16
);
8057 sim_queue_pc_write ( current_cpu
, opval
);
8058 written
|= ( 1 << 3 );
8059 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8064 abuf
-> written
= written
;
8069 /* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8072 SEM_FN_NAME ( frvbf
, bgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8074 #define FLD(f) abuf->fields.sfmt_beq.f
8075 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8076 int UNUSED written
= 0 ;
8077 IADDR UNUSED pc
= abuf
-> addr
;
8078 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8081 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8082 if ( NOTBI ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )), XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))))) {
8084 USI opval
= FLD ( i_label16
);
8085 sim_queue_pc_write ( current_cpu
, opval
);
8086 written
|= ( 1 << 3 );
8087 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8092 abuf
-> written
= written
;
8097 /* blt: blt$pack $ICCi_2,$hint,$label16 */
8100 SEM_FN_NAME ( frvbf
, blt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8102 #define FLD(f) abuf->fields.sfmt_beq.f
8103 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8104 int UNUSED written
= 0 ;
8105 IADDR UNUSED pc
= abuf
-> addr
;
8106 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8109 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8110 if ( XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))) {
8112 USI opval
= FLD ( i_label16
);
8113 sim_queue_pc_write ( current_cpu
, opval
);
8114 written
|= ( 1 << 3 );
8115 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8120 abuf
-> written
= written
;
8125 /* bge: bge$pack $ICCi_2,$hint,$label16 */
8128 SEM_FN_NAME ( frvbf
, bge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8130 #define FLD(f) abuf->fields.sfmt_beq.f
8131 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8132 int UNUSED written
= 0 ;
8133 IADDR UNUSED pc
= abuf
-> addr
;
8134 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8137 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8138 if ( NOTBI ( XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))))) {
8140 USI opval
= FLD ( i_label16
);
8141 sim_queue_pc_write ( current_cpu
, opval
);
8142 written
|= ( 1 << 3 );
8143 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8148 abuf
-> written
= written
;
8153 /* bls: bls$pack $ICCi_2,$hint,$label16 */
8156 SEM_FN_NAME ( frvbf
, bls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8158 #define FLD(f) abuf->fields.sfmt_beq.f
8159 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8160 int UNUSED written
= 0 ;
8161 IADDR UNUSED pc
= abuf
-> addr
;
8162 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8165 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8166 if ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
8168 USI opval
= FLD ( i_label16
);
8169 sim_queue_pc_write ( current_cpu
, opval
);
8170 written
|= ( 1 << 3 );
8171 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8176 abuf
-> written
= written
;
8181 /* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8184 SEM_FN_NAME ( frvbf
, bhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8186 #define FLD(f) abuf->fields.sfmt_beq.f
8187 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8188 int UNUSED written
= 0 ;
8189 IADDR UNUSED pc
= abuf
-> addr
;
8190 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8193 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8194 if ( NOTBI ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 ))))) {
8196 USI opval
= FLD ( i_label16
);
8197 sim_queue_pc_write ( current_cpu
, opval
);
8198 written
|= ( 1 << 3 );
8199 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8204 abuf
-> written
= written
;
8209 /* bc: bc$pack $ICCi_2,$hint,$label16 */
8212 SEM_FN_NAME ( frvbf
, bc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8214 #define FLD(f) abuf->fields.sfmt_beq.f
8215 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8216 int UNUSED written
= 0 ;
8217 IADDR UNUSED pc
= abuf
-> addr
;
8218 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8221 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8222 if ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 ))) {
8224 USI opval
= FLD ( i_label16
);
8225 sim_queue_pc_write ( current_cpu
, opval
);
8226 written
|= ( 1 << 3 );
8227 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8232 abuf
-> written
= written
;
8237 /* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8240 SEM_FN_NAME ( frvbf
, bnc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8242 #define FLD(f) abuf->fields.sfmt_beq.f
8243 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8244 int UNUSED written
= 0 ;
8245 IADDR UNUSED pc
= abuf
-> addr
;
8246 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8249 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8250 if ( NOTBI ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )))) {
8252 USI opval
= FLD ( i_label16
);
8253 sim_queue_pc_write ( current_cpu
, opval
);
8254 written
|= ( 1 << 3 );
8255 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8260 abuf
-> written
= written
;
8265 /* bn: bn$pack $ICCi_2,$hint,$label16 */
8268 SEM_FN_NAME ( frvbf
, bn
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8270 #define FLD(f) abuf->fields.sfmt_beq.f
8271 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8272 int UNUSED written
= 0 ;
8273 IADDR UNUSED pc
= abuf
-> addr
;
8274 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8277 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8278 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 ))) {
8280 USI opval
= FLD ( i_label16
);
8281 sim_queue_pc_write ( current_cpu
, opval
);
8282 written
|= ( 1 << 3 );
8283 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8288 abuf
-> written
= written
;
8293 /* bp: bp$pack $ICCi_2,$hint,$label16 */
8296 SEM_FN_NAME ( frvbf
, bp
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8298 #define FLD(f) abuf->fields.sfmt_beq.f
8299 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8300 int UNUSED written
= 0 ;
8301 IADDR UNUSED pc
= abuf
-> addr
;
8302 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8305 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8306 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )))) {
8308 USI opval
= FLD ( i_label16
);
8309 sim_queue_pc_write ( current_cpu
, opval
);
8310 written
|= ( 1 << 3 );
8311 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8316 abuf
-> written
= written
;
8321 /* bv: bv$pack $ICCi_2,$hint,$label16 */
8324 SEM_FN_NAME ( frvbf
, bv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8326 #define FLD(f) abuf->fields.sfmt_beq.f
8327 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8328 int UNUSED written
= 0 ;
8329 IADDR UNUSED pc
= abuf
-> addr
;
8330 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8333 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8334 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))) {
8336 USI opval
= FLD ( i_label16
);
8337 sim_queue_pc_write ( current_cpu
, opval
);
8338 written
|= ( 1 << 3 );
8339 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8344 abuf
-> written
= written
;
8349 /* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8352 SEM_FN_NAME ( frvbf
, bnv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8354 #define FLD(f) abuf->fields.sfmt_beq.f
8355 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8356 int UNUSED written
= 0 ;
8357 IADDR UNUSED pc
= abuf
-> addr
;
8358 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8361 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8362 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))) {
8364 USI opval
= FLD ( i_label16
);
8365 sim_queue_pc_write ( current_cpu
, opval
);
8366 written
|= ( 1 << 3 );
8367 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8372 abuf
-> written
= written
;
8377 /* fbra: fbra$pack $hint_taken$label16 */
8380 SEM_FN_NAME ( frvbf
, fbra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8382 #define FLD(f) abuf->fields.sfmt_fbne.f
8383 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8384 int UNUSED written
= 0 ;
8385 IADDR UNUSED pc
= abuf
-> addr
;
8386 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8389 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8391 USI opval
= FLD ( i_label16
);
8392 sim_queue_pc_write ( current_cpu
, opval
);
8393 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8401 /* fbno: fbno$pack$hint_not_taken */
8404 SEM_FN_NAME ( frvbf
, fbno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8406 #define FLD(f) abuf->fields.sfmt_fbne.f
8407 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8408 int UNUSED written
= 0 ;
8409 IADDR UNUSED pc
= abuf
-> addr
;
8410 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8412 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8418 /* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8421 SEM_FN_NAME ( frvbf
, fbne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8423 #define FLD(f) abuf->fields.sfmt_fbne.f
8424 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8425 int UNUSED written
= 0 ;
8426 IADDR UNUSED pc
= abuf
-> addr
;
8427 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8430 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8431 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))))) {
8433 USI opval
= FLD ( i_label16
);
8434 sim_queue_pc_write ( current_cpu
, opval
);
8435 written
|= ( 1 << 3 );
8436 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8441 abuf
-> written
= written
;
8446 /* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8449 SEM_FN_NAME ( frvbf
, fbeq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8451 #define FLD(f) abuf->fields.sfmt_fbne.f
8452 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8453 int UNUSED written
= 0 ;
8454 IADDR UNUSED pc
= abuf
-> addr
;
8455 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8458 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8459 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 ))) {
8461 USI opval
= FLD ( i_label16
);
8462 sim_queue_pc_write ( current_cpu
, opval
);
8463 written
|= ( 1 << 3 );
8464 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8469 abuf
-> written
= written
;
8474 /* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8477 SEM_FN_NAME ( frvbf
, fblg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8479 #define FLD(f) abuf->fields.sfmt_fbne.f
8480 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8481 int UNUSED written
= 0 ;
8482 IADDR UNUSED pc
= abuf
-> addr
;
8483 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8486 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8487 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )))) {
8489 USI opval
= FLD ( i_label16
);
8490 sim_queue_pc_write ( current_cpu
, opval
);
8491 written
|= ( 1 << 3 );
8492 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8497 abuf
-> written
= written
;
8502 /* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8505 SEM_FN_NAME ( frvbf
, fbue
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8507 #define FLD(f) abuf->fields.sfmt_fbne.f
8508 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8509 int UNUSED written
= 0 ;
8510 IADDR UNUSED pc
= abuf
-> addr
;
8511 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8514 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8515 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
8517 USI opval
= FLD ( i_label16
);
8518 sim_queue_pc_write ( current_cpu
, opval
);
8519 written
|= ( 1 << 3 );
8520 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8525 abuf
-> written
= written
;
8530 /* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8533 SEM_FN_NAME ( frvbf
, fbul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8535 #define FLD(f) abuf->fields.sfmt_fbne.f
8536 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8537 int UNUSED written
= 0 ;
8538 IADDR UNUSED pc
= abuf
-> addr
;
8539 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8542 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8543 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
8545 USI opval
= FLD ( i_label16
);
8546 sim_queue_pc_write ( current_cpu
, opval
);
8547 written
|= ( 1 << 3 );
8548 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8553 abuf
-> written
= written
;
8558 /* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8561 SEM_FN_NAME ( frvbf
, fbge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8563 #define FLD(f) abuf->fields.sfmt_fbne.f
8564 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8565 int UNUSED written
= 0 ;
8566 IADDR UNUSED pc
= abuf
-> addr
;
8567 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8570 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8571 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )))) {
8573 USI opval
= FLD ( i_label16
);
8574 sim_queue_pc_write ( current_cpu
, opval
);
8575 written
|= ( 1 << 3 );
8576 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8581 abuf
-> written
= written
;
8586 /* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8589 SEM_FN_NAME ( frvbf
, fblt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8591 #define FLD(f) abuf->fields.sfmt_fbne.f
8592 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8593 int UNUSED written
= 0 ;
8594 IADDR UNUSED pc
= abuf
-> addr
;
8595 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8598 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8599 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 ))) {
8601 USI opval
= FLD ( i_label16
);
8602 sim_queue_pc_write ( current_cpu
, opval
);
8603 written
|= ( 1 << 3 );
8604 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8609 abuf
-> written
= written
;
8614 /* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8617 SEM_FN_NAME ( frvbf
, fbuge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8619 #define FLD(f) abuf->fields.sfmt_fbne.f
8620 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8621 int UNUSED written
= 0 ;
8622 IADDR UNUSED pc
= abuf
-> addr
;
8623 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8626 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8627 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))))) {
8629 USI opval
= FLD ( i_label16
);
8630 sim_queue_pc_write ( current_cpu
, opval
);
8631 written
|= ( 1 << 3 );
8632 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8637 abuf
-> written
= written
;
8642 /* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8645 SEM_FN_NAME ( frvbf
, fbug
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8647 #define FLD(f) abuf->fields.sfmt_fbne.f
8648 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8649 int UNUSED written
= 0 ;
8650 IADDR UNUSED pc
= abuf
-> addr
;
8651 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8654 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8655 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
8657 USI opval
= FLD ( i_label16
);
8658 sim_queue_pc_write ( current_cpu
, opval
);
8659 written
|= ( 1 << 3 );
8660 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8665 abuf
-> written
= written
;
8670 /* fble: fble$pack $FCCi_2,$hint,$label16 */
8673 SEM_FN_NAME ( frvbf
, fble
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8675 #define FLD(f) abuf->fields.sfmt_fbne.f
8676 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8677 int UNUSED written
= 0 ;
8678 IADDR UNUSED pc
= abuf
-> addr
;
8679 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8682 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8683 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )))) {
8685 USI opval
= FLD ( i_label16
);
8686 sim_queue_pc_write ( current_cpu
, opval
);
8687 written
|= ( 1 << 3 );
8688 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8693 abuf
-> written
= written
;
8698 /* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8701 SEM_FN_NAME ( frvbf
, fbgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8703 #define FLD(f) abuf->fields.sfmt_fbne.f
8704 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8705 int UNUSED written
= 0 ;
8706 IADDR UNUSED pc
= abuf
-> addr
;
8707 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8710 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8711 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 ))) {
8713 USI opval
= FLD ( i_label16
);
8714 sim_queue_pc_write ( current_cpu
, opval
);
8715 written
|= ( 1 << 3 );
8716 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8721 abuf
-> written
= written
;
8726 /* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8729 SEM_FN_NAME ( frvbf
, fbule
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8731 #define FLD(f) abuf->fields.sfmt_fbne.f
8732 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8733 int UNUSED written
= 0 ;
8734 IADDR UNUSED pc
= abuf
-> addr
;
8735 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8738 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8739 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))))) {
8741 USI opval
= FLD ( i_label16
);
8742 sim_queue_pc_write ( current_cpu
, opval
);
8743 written
|= ( 1 << 3 );
8744 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8749 abuf
-> written
= written
;
8754 /* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8757 SEM_FN_NAME ( frvbf
, fbu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8759 #define FLD(f) abuf->fields.sfmt_fbne.f
8760 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8761 int UNUSED written
= 0 ;
8762 IADDR UNUSED pc
= abuf
-> addr
;
8763 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8766 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8767 if ( TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))) {
8769 USI opval
= FLD ( i_label16
);
8770 sim_queue_pc_write ( current_cpu
, opval
);
8771 written
|= ( 1 << 3 );
8772 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8777 abuf
-> written
= written
;
8782 /* fbo: fbo$pack $FCCi_2,$hint,$label16 */
8785 SEM_FN_NAME ( frvbf
, fbo
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8787 #define FLD(f) abuf->fields.sfmt_fbne.f
8788 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8789 int UNUSED written
= 0 ;
8790 IADDR UNUSED pc
= abuf
-> addr
;
8791 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8794 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8795 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 ))))) {
8797 USI opval
= FLD ( i_label16
);
8798 sim_queue_pc_write ( current_cpu
, opval
);
8799 written
|= ( 1 << 3 );
8800 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8805 abuf
-> written
= written
;
8810 /* bctrlr: bctrlr$pack $ccond,$hint */
8813 SEM_FN_NAME ( frvbf
, bctrlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8815 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8816 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8817 int UNUSED written
= 0 ;
8818 IADDR UNUSED pc
= abuf
-> addr
;
8819 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8822 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
8825 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
8827 USI opval
= tmp_tmp
;
8828 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
8829 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
8831 if ( EQSI ( FLD ( f_ccond
), 0 )) {
8832 if ( NESI ( tmp_tmp
, 0 )) {
8834 USI opval
= GET_H_SPR ((( UINT
) 272 ));
8835 sim_queue_pc_write ( current_cpu
, opval
);
8836 written
|= ( 1 << 5 );
8837 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8841 if ( EQSI ( tmp_tmp
, 0 )) {
8843 USI opval
= GET_H_SPR ((( UINT
) 272 ));
8844 sim_queue_pc_write ( current_cpu
, opval
);
8845 written
|= ( 1 << 5 );
8846 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8853 abuf
-> written
= written
;
8858 /* bralr: bralr$pack$hint_taken */
8861 SEM_FN_NAME ( frvbf
, bralr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8863 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8864 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8865 int UNUSED written
= 0 ;
8866 IADDR UNUSED pc
= abuf
-> addr
;
8867 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8870 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
8872 USI opval
= GET_H_SPR ((( UINT
) 272 ));
8873 sim_queue_pc_write ( current_cpu
, opval
);
8874 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8882 /* bnolr: bnolr$pack$hint_not_taken */
8885 SEM_FN_NAME ( frvbf
, bnolr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8887 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8888 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8889 int UNUSED written
= 0 ;
8890 IADDR UNUSED pc
= abuf
-> addr
;
8891 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8893 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
8899 /* beqlr: beqlr$pack $ICCi_2,$hint */
8902 SEM_FN_NAME ( frvbf
, beqlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8904 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8905 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8906 int UNUSED written
= 0 ;
8907 IADDR UNUSED pc
= abuf
-> addr
;
8908 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8911 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
8912 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 ))) {
8914 USI opval
= GET_H_SPR ((( UINT
) 272 ));
8915 sim_queue_pc_write ( current_cpu
, opval
);
8916 written
|= ( 1 << 3 );
8917 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8922 abuf
-> written
= written
;
8927 /* bnelr: bnelr$pack $ICCi_2,$hint */
8930 SEM_FN_NAME ( frvbf
, bnelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8932 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8933 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8934 int UNUSED written
= 0 ;
8935 IADDR UNUSED pc
= abuf
-> addr
;
8936 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8939 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
8940 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
8942 USI opval
= GET_H_SPR ((( UINT
) 272 ));
8943 sim_queue_pc_write ( current_cpu
, opval
);
8944 written
|= ( 1 << 3 );
8945 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8950 abuf
-> written
= written
;
8955 /* blelr: blelr$pack $ICCi_2,$hint */
8958 SEM_FN_NAME ( frvbf
, blelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8960 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8961 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8962 int UNUSED written
= 0 ;
8963 IADDR UNUSED pc
= abuf
-> addr
;
8964 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8967 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
8968 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )), XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))))) {
8970 USI opval
= GET_H_SPR ((( UINT
) 272 ));
8971 sim_queue_pc_write ( current_cpu
, opval
);
8972 written
|= ( 1 << 3 );
8973 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8978 abuf
-> written
= written
;
8983 /* bgtlr: bgtlr$pack $ICCi_2,$hint */
8986 SEM_FN_NAME ( frvbf
, bgtlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8988 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8989 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8990 int UNUSED written
= 0 ;
8991 IADDR UNUSED pc
= abuf
-> addr
;
8992 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8995 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
8996 if ( NOTBI ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )), XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))))) {
8998 USI opval
= GET_H_SPR ((( UINT
) 272 ));
8999 sim_queue_pc_write ( current_cpu
, opval
);
9000 written
|= ( 1 << 3 );
9001 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9006 abuf
-> written
= written
;
9011 /* bltlr: bltlr$pack $ICCi_2,$hint */
9014 SEM_FN_NAME ( frvbf
, bltlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9016 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9017 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9018 int UNUSED written
= 0 ;
9019 IADDR UNUSED pc
= abuf
-> addr
;
9020 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9023 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9024 if ( XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))) {
9026 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9027 sim_queue_pc_write ( current_cpu
, opval
);
9028 written
|= ( 1 << 3 );
9029 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9034 abuf
-> written
= written
;
9039 /* bgelr: bgelr$pack $ICCi_2,$hint */
9042 SEM_FN_NAME ( frvbf
, bgelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9044 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9045 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9046 int UNUSED written
= 0 ;
9047 IADDR UNUSED pc
= abuf
-> addr
;
9048 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9051 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9052 if ( NOTBI ( XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))))) {
9054 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9055 sim_queue_pc_write ( current_cpu
, opval
);
9056 written
|= ( 1 << 3 );
9057 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9062 abuf
-> written
= written
;
9067 /* blslr: blslr$pack $ICCi_2,$hint */
9070 SEM_FN_NAME ( frvbf
, blslr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9072 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9073 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9074 int UNUSED written
= 0 ;
9075 IADDR UNUSED pc
= abuf
-> addr
;
9076 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9079 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9080 if ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
9082 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9083 sim_queue_pc_write ( current_cpu
, opval
);
9084 written
|= ( 1 << 3 );
9085 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9090 abuf
-> written
= written
;
9095 /* bhilr: bhilr$pack $ICCi_2,$hint */
9098 SEM_FN_NAME ( frvbf
, bhilr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9100 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9101 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9102 int UNUSED written
= 0 ;
9103 IADDR UNUSED pc
= abuf
-> addr
;
9104 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9107 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9108 if ( NOTBI ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 ))))) {
9110 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9111 sim_queue_pc_write ( current_cpu
, opval
);
9112 written
|= ( 1 << 3 );
9113 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9118 abuf
-> written
= written
;
9123 /* bclr: bclr$pack $ICCi_2,$hint */
9126 SEM_FN_NAME ( frvbf
, bclr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9128 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9129 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9130 int UNUSED written
= 0 ;
9131 IADDR UNUSED pc
= abuf
-> addr
;
9132 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9135 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9136 if ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 ))) {
9138 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9139 sim_queue_pc_write ( current_cpu
, opval
);
9140 written
|= ( 1 << 3 );
9141 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9146 abuf
-> written
= written
;
9151 /* bnclr: bnclr$pack $ICCi_2,$hint */
9154 SEM_FN_NAME ( frvbf
, bnclr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9156 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9157 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9158 int UNUSED written
= 0 ;
9159 IADDR UNUSED pc
= abuf
-> addr
;
9160 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9163 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9164 if ( NOTBI ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )))) {
9166 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9167 sim_queue_pc_write ( current_cpu
, opval
);
9168 written
|= ( 1 << 3 );
9169 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9174 abuf
-> written
= written
;
9179 /* bnlr: bnlr$pack $ICCi_2,$hint */
9182 SEM_FN_NAME ( frvbf
, bnlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9184 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9185 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9186 int UNUSED written
= 0 ;
9187 IADDR UNUSED pc
= abuf
-> addr
;
9188 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9191 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9192 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 ))) {
9194 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9195 sim_queue_pc_write ( current_cpu
, opval
);
9196 written
|= ( 1 << 3 );
9197 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9202 abuf
-> written
= written
;
9207 /* bplr: bplr$pack $ICCi_2,$hint */
9210 SEM_FN_NAME ( frvbf
, bplr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9212 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9213 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9214 int UNUSED written
= 0 ;
9215 IADDR UNUSED pc
= abuf
-> addr
;
9216 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9219 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9220 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )))) {
9222 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9223 sim_queue_pc_write ( current_cpu
, opval
);
9224 written
|= ( 1 << 3 );
9225 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9230 abuf
-> written
= written
;
9235 /* bvlr: bvlr$pack $ICCi_2,$hint */
9238 SEM_FN_NAME ( frvbf
, bvlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9240 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9241 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9242 int UNUSED written
= 0 ;
9243 IADDR UNUSED pc
= abuf
-> addr
;
9244 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9247 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9248 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))) {
9250 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9251 sim_queue_pc_write ( current_cpu
, opval
);
9252 written
|= ( 1 << 3 );
9253 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9258 abuf
-> written
= written
;
9263 /* bnvlr: bnvlr$pack $ICCi_2,$hint */
9266 SEM_FN_NAME ( frvbf
, bnvlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9268 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9269 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9270 int UNUSED written
= 0 ;
9271 IADDR UNUSED pc
= abuf
-> addr
;
9272 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9275 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9276 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))) {
9278 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9279 sim_queue_pc_write ( current_cpu
, opval
);
9280 written
|= ( 1 << 3 );
9281 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9286 abuf
-> written
= written
;
9291 /* fbralr: fbralr$pack$hint_taken */
9294 SEM_FN_NAME ( frvbf
, fbralr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9296 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9297 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9298 int UNUSED written
= 0 ;
9299 IADDR UNUSED pc
= abuf
-> addr
;
9300 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9303 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9305 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9306 sim_queue_pc_write ( current_cpu
, opval
);
9307 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9315 /* fbnolr: fbnolr$pack$hint_not_taken */
9318 SEM_FN_NAME ( frvbf
, fbnolr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9320 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9321 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9322 int UNUSED written
= 0 ;
9323 IADDR UNUSED pc
= abuf
-> addr
;
9324 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9326 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9332 /* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9335 SEM_FN_NAME ( frvbf
, fbeqlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9337 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9338 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9339 int UNUSED written
= 0 ;
9340 IADDR UNUSED pc
= abuf
-> addr
;
9341 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9344 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9345 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 ))) {
9347 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9348 sim_queue_pc_write ( current_cpu
, opval
);
9349 written
|= ( 1 << 3 );
9350 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9355 abuf
-> written
= written
;
9360 /* fbnelr: fbnelr$pack $FCCi_2,$hint */
9363 SEM_FN_NAME ( frvbf
, fbnelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9365 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9366 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9367 int UNUSED written
= 0 ;
9368 IADDR UNUSED pc
= abuf
-> addr
;
9369 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9372 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9373 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))))) {
9375 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9376 sim_queue_pc_write ( current_cpu
, opval
);
9377 written
|= ( 1 << 3 );
9378 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9383 abuf
-> written
= written
;
9388 /* fblglr: fblglr$pack $FCCi_2,$hint */
9391 SEM_FN_NAME ( frvbf
, fblglr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9393 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9394 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9395 int UNUSED written
= 0 ;
9396 IADDR UNUSED pc
= abuf
-> addr
;
9397 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9400 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9401 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )))) {
9403 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9404 sim_queue_pc_write ( current_cpu
, opval
);
9405 written
|= ( 1 << 3 );
9406 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9411 abuf
-> written
= written
;
9416 /* fbuelr: fbuelr$pack $FCCi_2,$hint */
9419 SEM_FN_NAME ( frvbf
, fbuelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9421 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9422 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9423 int UNUSED written
= 0 ;
9424 IADDR UNUSED pc
= abuf
-> addr
;
9425 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9428 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9429 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
9431 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9432 sim_queue_pc_write ( current_cpu
, opval
);
9433 written
|= ( 1 << 3 );
9434 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9439 abuf
-> written
= written
;
9444 /* fbullr: fbullr$pack $FCCi_2,$hint */
9447 SEM_FN_NAME ( frvbf
, fbullr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9449 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9450 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9451 int UNUSED written
= 0 ;
9452 IADDR UNUSED pc
= abuf
-> addr
;
9453 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9456 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9457 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
9459 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9460 sim_queue_pc_write ( current_cpu
, opval
);
9461 written
|= ( 1 << 3 );
9462 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9467 abuf
-> written
= written
;
9472 /* fbgelr: fbgelr$pack $FCCi_2,$hint */
9475 SEM_FN_NAME ( frvbf
, fbgelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9477 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9478 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9479 int UNUSED written
= 0 ;
9480 IADDR UNUSED pc
= abuf
-> addr
;
9481 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9484 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9485 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )))) {
9487 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9488 sim_queue_pc_write ( current_cpu
, opval
);
9489 written
|= ( 1 << 3 );
9490 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9495 abuf
-> written
= written
;
9500 /* fbltlr: fbltlr$pack $FCCi_2,$hint */
9503 SEM_FN_NAME ( frvbf
, fbltlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9505 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9506 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9507 int UNUSED written
= 0 ;
9508 IADDR UNUSED pc
= abuf
-> addr
;
9509 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9512 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9513 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 ))) {
9515 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9516 sim_queue_pc_write ( current_cpu
, opval
);
9517 written
|= ( 1 << 3 );
9518 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9523 abuf
-> written
= written
;
9528 /* fbugelr: fbugelr$pack $FCCi_2,$hint */
9531 SEM_FN_NAME ( frvbf
, fbugelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9533 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9534 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9535 int UNUSED written
= 0 ;
9536 IADDR UNUSED pc
= abuf
-> addr
;
9537 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9540 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9541 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))))) {
9543 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9544 sim_queue_pc_write ( current_cpu
, opval
);
9545 written
|= ( 1 << 3 );
9546 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9551 abuf
-> written
= written
;
9556 /* fbuglr: fbuglr$pack $FCCi_2,$hint */
9559 SEM_FN_NAME ( frvbf
, fbuglr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9561 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9562 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9563 int UNUSED written
= 0 ;
9564 IADDR UNUSED pc
= abuf
-> addr
;
9565 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9568 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9569 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
9571 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9572 sim_queue_pc_write ( current_cpu
, opval
);
9573 written
|= ( 1 << 3 );
9574 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9579 abuf
-> written
= written
;
9584 /* fblelr: fblelr$pack $FCCi_2,$hint */
9587 SEM_FN_NAME ( frvbf
, fblelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9589 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9590 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9591 int UNUSED written
= 0 ;
9592 IADDR UNUSED pc
= abuf
-> addr
;
9593 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9596 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9597 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )))) {
9599 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9600 sim_queue_pc_write ( current_cpu
, opval
);
9601 written
|= ( 1 << 3 );
9602 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9607 abuf
-> written
= written
;
9612 /* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9615 SEM_FN_NAME ( frvbf
, fbgtlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9617 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9618 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9619 int UNUSED written
= 0 ;
9620 IADDR UNUSED pc
= abuf
-> addr
;
9621 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9624 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9625 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 ))) {
9627 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9628 sim_queue_pc_write ( current_cpu
, opval
);
9629 written
|= ( 1 << 3 );
9630 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9635 abuf
-> written
= written
;
9640 /* fbulelr: fbulelr$pack $FCCi_2,$hint */
9643 SEM_FN_NAME ( frvbf
, fbulelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9645 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9646 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9647 int UNUSED written
= 0 ;
9648 IADDR UNUSED pc
= abuf
-> addr
;
9649 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9652 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9653 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))))) {
9655 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9656 sim_queue_pc_write ( current_cpu
, opval
);
9657 written
|= ( 1 << 3 );
9658 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9663 abuf
-> written
= written
;
9668 /* fbulr: fbulr$pack $FCCi_2,$hint */
9671 SEM_FN_NAME ( frvbf
, fbulr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9673 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9674 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9675 int UNUSED written
= 0 ;
9676 IADDR UNUSED pc
= abuf
-> addr
;
9677 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9680 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9681 if ( TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))) {
9683 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9684 sim_queue_pc_write ( current_cpu
, opval
);
9685 written
|= ( 1 << 3 );
9686 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9691 abuf
-> written
= written
;
9696 /* fbolr: fbolr$pack $FCCi_2,$hint */
9699 SEM_FN_NAME ( frvbf
, fbolr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9701 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9702 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9703 int UNUSED written
= 0 ;
9704 IADDR UNUSED pc
= abuf
-> addr
;
9705 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9708 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9709 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 ))))) {
9711 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9712 sim_queue_pc_write ( current_cpu
, opval
);
9713 written
|= ( 1 << 3 );
9714 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9719 abuf
-> written
= written
;
9724 /* bcralr: bcralr$pack $ccond$hint_taken */
9727 SEM_FN_NAME ( frvbf
, bcralr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9729 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9730 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9731 int UNUSED written
= 0 ;
9732 IADDR UNUSED pc
= abuf
-> addr
;
9733 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9736 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9739 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
9741 USI opval
= tmp_tmp
;
9742 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
9743 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
9745 if ( EQSI ( FLD ( f_ccond
), 0 )) {
9746 if ( NESI ( tmp_tmp
, 0 )) {
9748 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9749 sim_queue_pc_write ( current_cpu
, opval
);
9750 written
|= ( 1 << 5 );
9751 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9755 if ( EQSI ( tmp_tmp
, 0 )) {
9757 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9758 sim_queue_pc_write ( current_cpu
, opval
);
9759 written
|= ( 1 << 5 );
9760 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9767 abuf
-> written
= written
;
9772 /* bcnolr: bcnolr$pack$hint_not_taken */
9775 SEM_FN_NAME ( frvbf
, bcnolr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9777 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9778 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9779 int UNUSED written
= 0 ;
9780 IADDR UNUSED pc
= abuf
-> addr
;
9781 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9784 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9787 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
9789 USI opval
= tmp_tmp
;
9790 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
9791 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
9801 /* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
9804 SEM_FN_NAME ( frvbf
, bceqlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9806 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9807 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9808 int UNUSED written
= 0 ;
9809 IADDR UNUSED pc
= abuf
-> addr
;
9810 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9813 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9816 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
9818 USI opval
= tmp_tmp
;
9819 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
9820 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
9822 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 ))) {
9823 if ( EQSI ( FLD ( f_ccond
), 0 )) {
9824 if ( NESI ( tmp_tmp
, 0 )) {
9826 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9827 sim_queue_pc_write ( current_cpu
, opval
);
9828 written
|= ( 1 << 6 );
9829 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9833 if ( EQSI ( tmp_tmp
, 0 )) {
9835 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9836 sim_queue_pc_write ( current_cpu
, opval
);
9837 written
|= ( 1 << 6 );
9838 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9846 abuf
-> written
= written
;
9851 /* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
9854 SEM_FN_NAME ( frvbf
, bcnelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9856 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9857 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9858 int UNUSED written
= 0 ;
9859 IADDR UNUSED pc
= abuf
-> addr
;
9860 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9863 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9866 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
9868 USI opval
= tmp_tmp
;
9869 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
9870 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
9872 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
9873 if ( EQSI ( FLD ( f_ccond
), 0 )) {
9874 if ( NESI ( tmp_tmp
, 0 )) {
9876 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9877 sim_queue_pc_write ( current_cpu
, opval
);
9878 written
|= ( 1 << 6 );
9879 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9883 if ( EQSI ( tmp_tmp
, 0 )) {
9885 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9886 sim_queue_pc_write ( current_cpu
, opval
);
9887 written
|= ( 1 << 6 );
9888 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9896 abuf
-> written
= written
;
9901 /* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
9904 SEM_FN_NAME ( frvbf
, bclelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9906 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9907 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9908 int UNUSED written
= 0 ;
9909 IADDR UNUSED pc
= abuf
-> addr
;
9910 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9913 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9916 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
9918 USI opval
= tmp_tmp
;
9919 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
9920 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
9922 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )), XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))))) {
9923 if ( EQSI ( FLD ( f_ccond
), 0 )) {
9924 if ( NESI ( tmp_tmp
, 0 )) {
9926 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9927 sim_queue_pc_write ( current_cpu
, opval
);
9928 written
|= ( 1 << 6 );
9929 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9933 if ( EQSI ( tmp_tmp
, 0 )) {
9935 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9936 sim_queue_pc_write ( current_cpu
, opval
);
9937 written
|= ( 1 << 6 );
9938 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9946 abuf
-> written
= written
;
9951 /* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
9954 SEM_FN_NAME ( frvbf
, bcgtlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9956 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9957 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9958 int UNUSED written
= 0 ;
9959 IADDR UNUSED pc
= abuf
-> addr
;
9960 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9963 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9966 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
9968 USI opval
= tmp_tmp
;
9969 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
9970 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
9972 if ( NOTBI ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )), XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))))) {
9973 if ( EQSI ( FLD ( f_ccond
), 0 )) {
9974 if ( NESI ( tmp_tmp
, 0 )) {
9976 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9977 sim_queue_pc_write ( current_cpu
, opval
);
9978 written
|= ( 1 << 6 );
9979 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9983 if ( EQSI ( tmp_tmp
, 0 )) {
9985 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9986 sim_queue_pc_write ( current_cpu
, opval
);
9987 written
|= ( 1 << 6 );
9988 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9996 abuf
-> written
= written
;
10001 /* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
10004 SEM_FN_NAME ( frvbf
, bcltlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10006 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10007 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10008 int UNUSED written
= 0 ;
10009 IADDR UNUSED pc
= abuf
-> addr
;
10010 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10013 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10016 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10018 USI opval
= tmp_tmp
;
10019 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10020 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10022 if ( XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))) {
10023 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10024 if ( NESI ( tmp_tmp
, 0 )) {
10026 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10027 sim_queue_pc_write ( current_cpu
, opval
);
10028 written
|= ( 1 << 6 );
10029 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10033 if ( EQSI ( tmp_tmp
, 0 )) {
10035 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10036 sim_queue_pc_write ( current_cpu
, opval
);
10037 written
|= ( 1 << 6 );
10038 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10046 abuf
-> written
= written
;
10051 /* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10054 SEM_FN_NAME ( frvbf
, bcgelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10056 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10057 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10058 int UNUSED written
= 0 ;
10059 IADDR UNUSED pc
= abuf
-> addr
;
10060 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10063 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10066 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10068 USI opval
= tmp_tmp
;
10069 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10070 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10072 if ( NOTBI ( XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))))) {
10073 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10074 if ( NESI ( tmp_tmp
, 0 )) {
10076 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10077 sim_queue_pc_write ( current_cpu
, opval
);
10078 written
|= ( 1 << 6 );
10079 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10083 if ( EQSI ( tmp_tmp
, 0 )) {
10085 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10086 sim_queue_pc_write ( current_cpu
, opval
);
10087 written
|= ( 1 << 6 );
10088 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10096 abuf
-> written
= written
;
10101 /* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10104 SEM_FN_NAME ( frvbf
, bclslr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10106 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10107 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10108 int UNUSED written
= 0 ;
10109 IADDR UNUSED pc
= abuf
-> addr
;
10110 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10113 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10116 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10118 USI opval
= tmp_tmp
;
10119 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10120 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10122 if ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
10123 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10124 if ( NESI ( tmp_tmp
, 0 )) {
10126 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10127 sim_queue_pc_write ( current_cpu
, opval
);
10128 written
|= ( 1 << 6 );
10129 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10133 if ( EQSI ( tmp_tmp
, 0 )) {
10135 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10136 sim_queue_pc_write ( current_cpu
, opval
);
10137 written
|= ( 1 << 6 );
10138 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10146 abuf
-> written
= written
;
10151 /* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10154 SEM_FN_NAME ( frvbf
, bchilr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10156 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10157 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10158 int UNUSED written
= 0 ;
10159 IADDR UNUSED pc
= abuf
-> addr
;
10160 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10163 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10166 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10168 USI opval
= tmp_tmp
;
10169 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10170 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10172 if ( NOTBI ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 ))))) {
10173 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10174 if ( NESI ( tmp_tmp
, 0 )) {
10176 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10177 sim_queue_pc_write ( current_cpu
, opval
);
10178 written
|= ( 1 << 6 );
10179 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10183 if ( EQSI ( tmp_tmp
, 0 )) {
10185 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10186 sim_queue_pc_write ( current_cpu
, opval
);
10187 written
|= ( 1 << 6 );
10188 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10196 abuf
-> written
= written
;
10201 /* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10204 SEM_FN_NAME ( frvbf
, bcclr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10206 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10207 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10208 int UNUSED written
= 0 ;
10209 IADDR UNUSED pc
= abuf
-> addr
;
10210 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10213 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10216 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10218 USI opval
= tmp_tmp
;
10219 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10220 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10222 if ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 ))) {
10223 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10224 if ( NESI ( tmp_tmp
, 0 )) {
10226 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10227 sim_queue_pc_write ( current_cpu
, opval
);
10228 written
|= ( 1 << 6 );
10229 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10233 if ( EQSI ( tmp_tmp
, 0 )) {
10235 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10236 sim_queue_pc_write ( current_cpu
, opval
);
10237 written
|= ( 1 << 6 );
10238 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10246 abuf
-> written
= written
;
10251 /* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10254 SEM_FN_NAME ( frvbf
, bcnclr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10256 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10257 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10258 int UNUSED written
= 0 ;
10259 IADDR UNUSED pc
= abuf
-> addr
;
10260 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10263 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10266 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10268 USI opval
= tmp_tmp
;
10269 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10270 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10272 if ( NOTBI ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )))) {
10273 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10274 if ( NESI ( tmp_tmp
, 0 )) {
10276 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10277 sim_queue_pc_write ( current_cpu
, opval
);
10278 written
|= ( 1 << 6 );
10279 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10283 if ( EQSI ( tmp_tmp
, 0 )) {
10285 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10286 sim_queue_pc_write ( current_cpu
, opval
);
10287 written
|= ( 1 << 6 );
10288 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10296 abuf
-> written
= written
;
10301 /* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10304 SEM_FN_NAME ( frvbf
, bcnlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10306 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10307 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10308 int UNUSED written
= 0 ;
10309 IADDR UNUSED pc
= abuf
-> addr
;
10310 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10313 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10316 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10318 USI opval
= tmp_tmp
;
10319 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10320 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10322 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 ))) {
10323 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10324 if ( NESI ( tmp_tmp
, 0 )) {
10326 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10327 sim_queue_pc_write ( current_cpu
, opval
);
10328 written
|= ( 1 << 6 );
10329 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10333 if ( EQSI ( tmp_tmp
, 0 )) {
10335 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10336 sim_queue_pc_write ( current_cpu
, opval
);
10337 written
|= ( 1 << 6 );
10338 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10346 abuf
-> written
= written
;
10351 /* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10354 SEM_FN_NAME ( frvbf
, bcplr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10356 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10357 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10358 int UNUSED written
= 0 ;
10359 IADDR UNUSED pc
= abuf
-> addr
;
10360 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10363 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10366 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10368 USI opval
= tmp_tmp
;
10369 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10370 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10372 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )))) {
10373 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10374 if ( NESI ( tmp_tmp
, 0 )) {
10376 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10377 sim_queue_pc_write ( current_cpu
, opval
);
10378 written
|= ( 1 << 6 );
10379 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10383 if ( EQSI ( tmp_tmp
, 0 )) {
10385 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10386 sim_queue_pc_write ( current_cpu
, opval
);
10387 written
|= ( 1 << 6 );
10388 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10396 abuf
-> written
= written
;
10401 /* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10404 SEM_FN_NAME ( frvbf
, bcvlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10406 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10407 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10408 int UNUSED written
= 0 ;
10409 IADDR UNUSED pc
= abuf
-> addr
;
10410 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10413 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10416 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10418 USI opval
= tmp_tmp
;
10419 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10420 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10422 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))) {
10423 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10424 if ( NESI ( tmp_tmp
, 0 )) {
10426 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10427 sim_queue_pc_write ( current_cpu
, opval
);
10428 written
|= ( 1 << 6 );
10429 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10433 if ( EQSI ( tmp_tmp
, 0 )) {
10435 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10436 sim_queue_pc_write ( current_cpu
, opval
);
10437 written
|= ( 1 << 6 );
10438 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10446 abuf
-> written
= written
;
10451 /* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10454 SEM_FN_NAME ( frvbf
, bcnvlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10456 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10457 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10458 int UNUSED written
= 0 ;
10459 IADDR UNUSED pc
= abuf
-> addr
;
10460 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10463 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10466 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10468 USI opval
= tmp_tmp
;
10469 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10470 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10472 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))) {
10473 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10474 if ( NESI ( tmp_tmp
, 0 )) {
10476 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10477 sim_queue_pc_write ( current_cpu
, opval
);
10478 written
|= ( 1 << 6 );
10479 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10483 if ( EQSI ( tmp_tmp
, 0 )) {
10485 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10486 sim_queue_pc_write ( current_cpu
, opval
);
10487 written
|= ( 1 << 6 );
10488 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10496 abuf
-> written
= written
;
10501 /* fcbralr: fcbralr$pack $ccond$hint_taken */
10504 SEM_FN_NAME ( frvbf
, fcbralr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10506 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10507 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10508 int UNUSED written
= 0 ;
10509 IADDR UNUSED pc
= abuf
-> addr
;
10510 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10513 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10516 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10518 USI opval
= tmp_tmp
;
10519 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10520 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10522 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10523 if ( NESI ( tmp_tmp
, 0 )) {
10525 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10526 sim_queue_pc_write ( current_cpu
, opval
);
10527 written
|= ( 1 << 5 );
10528 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10532 if ( EQSI ( tmp_tmp
, 0 )) {
10534 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10535 sim_queue_pc_write ( current_cpu
, opval
);
10536 written
|= ( 1 << 5 );
10537 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10544 abuf
-> written
= written
;
10549 /* fcbnolr: fcbnolr$pack$hint_not_taken */
10552 SEM_FN_NAME ( frvbf
, fcbnolr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10554 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10555 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10556 int UNUSED written
= 0 ;
10557 IADDR UNUSED pc
= abuf
-> addr
;
10558 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10561 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10564 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10566 USI opval
= tmp_tmp
;
10567 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10568 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10570 (( void ) 0 ); /*nop*/
10578 /* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10581 SEM_FN_NAME ( frvbf
, fcbeqlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10583 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10584 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10585 int UNUSED written
= 0 ;
10586 IADDR UNUSED pc
= abuf
-> addr
;
10587 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10590 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10593 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10595 USI opval
= tmp_tmp
;
10596 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10597 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10599 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 ))) {
10600 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10601 if ( NESI ( tmp_tmp
, 0 )) {
10603 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10604 sim_queue_pc_write ( current_cpu
, opval
);
10605 written
|= ( 1 << 6 );
10606 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10610 if ( EQSI ( tmp_tmp
, 0 )) {
10612 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10613 sim_queue_pc_write ( current_cpu
, opval
);
10614 written
|= ( 1 << 6 );
10615 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10623 abuf
-> written
= written
;
10628 /* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10631 SEM_FN_NAME ( frvbf
, fcbnelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10633 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10634 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10635 int UNUSED written
= 0 ;
10636 IADDR UNUSED pc
= abuf
-> addr
;
10637 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10640 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10643 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10645 USI opval
= tmp_tmp
;
10646 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10647 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10649 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))))) {
10650 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10651 if ( NESI ( tmp_tmp
, 0 )) {
10653 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10654 sim_queue_pc_write ( current_cpu
, opval
);
10655 written
|= ( 1 << 6 );
10656 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10660 if ( EQSI ( tmp_tmp
, 0 )) {
10662 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10663 sim_queue_pc_write ( current_cpu
, opval
);
10664 written
|= ( 1 << 6 );
10665 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10673 abuf
-> written
= written
;
10678 /* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10681 SEM_FN_NAME ( frvbf
, fcblglr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10683 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10684 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10685 int UNUSED written
= 0 ;
10686 IADDR UNUSED pc
= abuf
-> addr
;
10687 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10690 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10693 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10695 USI opval
= tmp_tmp
;
10696 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10697 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10699 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )))) {
10700 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10701 if ( NESI ( tmp_tmp
, 0 )) {
10703 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10704 sim_queue_pc_write ( current_cpu
, opval
);
10705 written
|= ( 1 << 6 );
10706 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10710 if ( EQSI ( tmp_tmp
, 0 )) {
10712 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10713 sim_queue_pc_write ( current_cpu
, opval
);
10714 written
|= ( 1 << 6 );
10715 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10723 abuf
-> written
= written
;
10728 /* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10731 SEM_FN_NAME ( frvbf
, fcbuelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10733 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10734 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10735 int UNUSED written
= 0 ;
10736 IADDR UNUSED pc
= abuf
-> addr
;
10737 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10740 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10743 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10745 USI opval
= tmp_tmp
;
10746 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10747 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10749 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
10750 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10751 if ( NESI ( tmp_tmp
, 0 )) {
10753 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10754 sim_queue_pc_write ( current_cpu
, opval
);
10755 written
|= ( 1 << 6 );
10756 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10760 if ( EQSI ( tmp_tmp
, 0 )) {
10762 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10763 sim_queue_pc_write ( current_cpu
, opval
);
10764 written
|= ( 1 << 6 );
10765 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10773 abuf
-> written
= written
;
10778 /* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
10781 SEM_FN_NAME ( frvbf
, fcbullr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10783 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10784 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10785 int UNUSED written
= 0 ;
10786 IADDR UNUSED pc
= abuf
-> addr
;
10787 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10790 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10793 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10795 USI opval
= tmp_tmp
;
10796 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10797 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10799 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
10800 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10801 if ( NESI ( tmp_tmp
, 0 )) {
10803 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10804 sim_queue_pc_write ( current_cpu
, opval
);
10805 written
|= ( 1 << 6 );
10806 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10810 if ( EQSI ( tmp_tmp
, 0 )) {
10812 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10813 sim_queue_pc_write ( current_cpu
, opval
);
10814 written
|= ( 1 << 6 );
10815 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10823 abuf
-> written
= written
;
10828 /* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
10831 SEM_FN_NAME ( frvbf
, fcbgelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10833 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10834 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10835 int UNUSED written
= 0 ;
10836 IADDR UNUSED pc
= abuf
-> addr
;
10837 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10840 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10843 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10845 USI opval
= tmp_tmp
;
10846 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10847 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10849 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )))) {
10850 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10851 if ( NESI ( tmp_tmp
, 0 )) {
10853 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10854 sim_queue_pc_write ( current_cpu
, opval
);
10855 written
|= ( 1 << 6 );
10856 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10860 if ( EQSI ( tmp_tmp
, 0 )) {
10862 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10863 sim_queue_pc_write ( current_cpu
, opval
);
10864 written
|= ( 1 << 6 );
10865 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10873 abuf
-> written
= written
;
10878 /* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
10881 SEM_FN_NAME ( frvbf
, fcbltlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10883 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10884 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10885 int UNUSED written
= 0 ;
10886 IADDR UNUSED pc
= abuf
-> addr
;
10887 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10890 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10893 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10895 USI opval
= tmp_tmp
;
10896 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10897 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10899 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 ))) {
10900 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10901 if ( NESI ( tmp_tmp
, 0 )) {
10903 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10904 sim_queue_pc_write ( current_cpu
, opval
);
10905 written
|= ( 1 << 6 );
10906 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10910 if ( EQSI ( tmp_tmp
, 0 )) {
10912 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10913 sim_queue_pc_write ( current_cpu
, opval
);
10914 written
|= ( 1 << 6 );
10915 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10923 abuf
-> written
= written
;
10928 /* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
10931 SEM_FN_NAME ( frvbf
, fcbugelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10933 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10934 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10935 int UNUSED written
= 0 ;
10936 IADDR UNUSED pc
= abuf
-> addr
;
10937 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10940 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10943 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10945 USI opval
= tmp_tmp
;
10946 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10947 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10949 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))))) {
10950 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10951 if ( NESI ( tmp_tmp
, 0 )) {
10953 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10954 sim_queue_pc_write ( current_cpu
, opval
);
10955 written
|= ( 1 << 6 );
10956 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10960 if ( EQSI ( tmp_tmp
, 0 )) {
10962 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10963 sim_queue_pc_write ( current_cpu
, opval
);
10964 written
|= ( 1 << 6 );
10965 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10973 abuf
-> written
= written
;
10978 /* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
10981 SEM_FN_NAME ( frvbf
, fcbuglr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10983 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10984 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10985 int UNUSED written
= 0 ;
10986 IADDR UNUSED pc
= abuf
-> addr
;
10987 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10990 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10993 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10995 USI opval
= tmp_tmp
;
10996 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10997 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10999 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
11000 if ( EQSI ( FLD ( f_ccond
), 0 )) {
11001 if ( NESI ( tmp_tmp
, 0 )) {
11003 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11004 sim_queue_pc_write ( current_cpu
, opval
);
11005 written
|= ( 1 << 6 );
11006 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11010 if ( EQSI ( tmp_tmp
, 0 )) {
11012 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11013 sim_queue_pc_write ( current_cpu
, opval
);
11014 written
|= ( 1 << 6 );
11015 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11023 abuf
-> written
= written
;
11028 /* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11031 SEM_FN_NAME ( frvbf
, fcblelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11033 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11034 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11035 int UNUSED written
= 0 ;
11036 IADDR UNUSED pc
= abuf
-> addr
;
11037 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11040 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
11043 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
11045 USI opval
= tmp_tmp
;
11046 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
11047 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
11049 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )))) {
11050 if ( EQSI ( FLD ( f_ccond
), 0 )) {
11051 if ( NESI ( tmp_tmp
, 0 )) {
11053 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11054 sim_queue_pc_write ( current_cpu
, opval
);
11055 written
|= ( 1 << 6 );
11056 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11060 if ( EQSI ( tmp_tmp
, 0 )) {
11062 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11063 sim_queue_pc_write ( current_cpu
, opval
);
11064 written
|= ( 1 << 6 );
11065 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11073 abuf
-> written
= written
;
11078 /* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11081 SEM_FN_NAME ( frvbf
, fcbgtlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11083 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11084 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11085 int UNUSED written
= 0 ;
11086 IADDR UNUSED pc
= abuf
-> addr
;
11087 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11090 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
11093 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
11095 USI opval
= tmp_tmp
;
11096 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
11097 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
11099 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 ))) {
11100 if ( EQSI ( FLD ( f_ccond
), 0 )) {
11101 if ( NESI ( tmp_tmp
, 0 )) {
11103 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11104 sim_queue_pc_write ( current_cpu
, opval
);
11105 written
|= ( 1 << 6 );
11106 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11110 if ( EQSI ( tmp_tmp
, 0 )) {
11112 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11113 sim_queue_pc_write ( current_cpu
, opval
);
11114 written
|= ( 1 << 6 );
11115 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11123 abuf
-> written
= written
;
11128 /* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11131 SEM_FN_NAME ( frvbf
, fcbulelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11133 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11134 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11135 int UNUSED written
= 0 ;
11136 IADDR UNUSED pc
= abuf
-> addr
;
11137 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11140 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
11143 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
11145 USI opval
= tmp_tmp
;
11146 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
11147 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
11149 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))))) {
11150 if ( EQSI ( FLD ( f_ccond
), 0 )) {
11151 if ( NESI ( tmp_tmp
, 0 )) {
11153 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11154 sim_queue_pc_write ( current_cpu
, opval
);
11155 written
|= ( 1 << 6 );
11156 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11160 if ( EQSI ( tmp_tmp
, 0 )) {
11162 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11163 sim_queue_pc_write ( current_cpu
, opval
);
11164 written
|= ( 1 << 6 );
11165 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11173 abuf
-> written
= written
;
11178 /* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11181 SEM_FN_NAME ( frvbf
, fcbulr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11183 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11184 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11185 int UNUSED written
= 0 ;
11186 IADDR UNUSED pc
= abuf
-> addr
;
11187 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11190 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
11193 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
11195 USI opval
= tmp_tmp
;
11196 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
11197 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
11199 if ( TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))) {
11200 if ( EQSI ( FLD ( f_ccond
), 0 )) {
11201 if ( NESI ( tmp_tmp
, 0 )) {
11203 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11204 sim_queue_pc_write ( current_cpu
, opval
);
11205 written
|= ( 1 << 6 );
11206 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11210 if ( EQSI ( tmp_tmp
, 0 )) {
11212 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11213 sim_queue_pc_write ( current_cpu
, opval
);
11214 written
|= ( 1 << 6 );
11215 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11223 abuf
-> written
= written
;
11228 /* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11231 SEM_FN_NAME ( frvbf
, fcbolr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11233 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11234 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11235 int UNUSED written
= 0 ;
11236 IADDR UNUSED pc
= abuf
-> addr
;
11237 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11240 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
11243 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
11245 USI opval
= tmp_tmp
;
11246 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
11247 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
11249 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 ))))) {
11250 if ( EQSI ( FLD ( f_ccond
), 0 )) {
11251 if ( NESI ( tmp_tmp
, 0 )) {
11253 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11254 sim_queue_pc_write ( current_cpu
, opval
);
11255 written
|= ( 1 << 6 );
11256 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11260 if ( EQSI ( tmp_tmp
, 0 )) {
11262 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11263 sim_queue_pc_write ( current_cpu
, opval
);
11264 written
|= ( 1 << 6 );
11265 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11273 abuf
-> written
= written
;
11278 /* jmpl: jmpl$pack @($GRi,$GRj) */
11281 SEM_FN_NAME ( frvbf
, jmpl
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11283 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11284 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11285 int UNUSED written
= 0 ;
11286 IADDR UNUSED pc
= abuf
-> addr
;
11287 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11290 if ( EQSI ( FLD ( f_LI
), 1 )) {
11291 frvbf_set_write_next_vliw_addr_to_LR ( current_cpu
, 1 );
11294 USI opval
= ANDSI ( ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), 0xfffffffc );
11295 sim_queue_pc_write ( current_cpu
, opval
);
11296 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11298 frvbf_model_branch ( current_cpu
, pc
, 2 );
11305 /* calll: calll$pack $callann($GRi,$GRj) */
11308 SEM_FN_NAME ( frvbf
, calll
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11310 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11311 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11312 int UNUSED written
= 0 ;
11313 IADDR UNUSED pc
= abuf
-> addr
;
11314 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11317 if ( EQSI ( FLD ( f_LI
), 1 )) {
11318 frvbf_set_write_next_vliw_addr_to_LR ( current_cpu
, 1 );
11321 USI opval
= ANDSI ( ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), 0xfffffffc );
11322 sim_queue_pc_write ( current_cpu
, opval
);
11323 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11325 frvbf_model_branch ( current_cpu
, pc
, 2 );
11332 /* jmpil: jmpil$pack @($GRi,$s12) */
11335 SEM_FN_NAME ( frvbf
, jmpil
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11337 #define FLD(f) abuf->fields.sfmt_jmpil.f
11338 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11339 int UNUSED written
= 0 ;
11340 IADDR UNUSED pc
= abuf
-> addr
;
11341 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11344 if ( EQSI ( FLD ( f_LI
), 1 )) {
11345 frvbf_set_write_next_vliw_addr_to_LR ( current_cpu
, 1 );
11348 USI opval
= ANDSI ( ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), 0xfffffffc );
11349 sim_queue_pc_write ( current_cpu
, opval
);
11350 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11352 frvbf_model_branch ( current_cpu
, pc
, 2 );
11359 /* callil: callil$pack @($GRi,$s12) */
11362 SEM_FN_NAME ( frvbf
, callil
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11364 #define FLD(f) abuf->fields.sfmt_jmpil.f
11365 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11366 int UNUSED written
= 0 ;
11367 IADDR UNUSED pc
= abuf
-> addr
;
11368 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11371 if ( EQSI ( FLD ( f_LI
), 1 )) {
11372 frvbf_set_write_next_vliw_addr_to_LR ( current_cpu
, 1 );
11375 USI opval
= ANDSI ( ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), 0xfffffffc );
11376 sim_queue_pc_write ( current_cpu
, opval
);
11377 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11379 frvbf_model_branch ( current_cpu
, pc
, 2 );
11386 /* call: call$pack $label24 */
11389 SEM_FN_NAME ( frvbf
, call
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11391 #define FLD(f) abuf->fields.sfmt_call.f
11392 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11393 int UNUSED written
= 0 ;
11394 IADDR UNUSED pc
= abuf
-> addr
;
11395 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11398 frvbf_set_write_next_vliw_addr_to_LR ( current_cpu
, 1 );
11400 USI opval
= FLD ( i_label24
);
11401 sim_queue_pc_write ( current_cpu
, opval
);
11402 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11404 frvbf_model_branch ( current_cpu
, pc
, 2 );
11411 /* rett: rett$pack $debug */
11414 SEM_FN_NAME ( frvbf
, rett
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11416 #define FLD(f) abuf->fields.sfmt_rett.f
11417 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11418 int UNUSED written
= 0 ;
11419 IADDR UNUSED pc
= abuf
-> addr
;
11420 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11424 USI opval
= frv_rett ( current_cpu
, pc
, FLD ( f_debug
));
11425 sim_queue_pc_write ( current_cpu
, opval
);
11426 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11428 frvbf_model_branch ( current_cpu
, pc
, 2 );
11435 /* rei: rei$pack $eir */
11438 SEM_FN_NAME ( frvbf
, rei
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11440 #define FLD(f) abuf->fields.fmt_empty.f
11441 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11442 int UNUSED written
= 0 ;
11443 IADDR UNUSED pc
= abuf
-> addr
;
11444 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11446 (( void ) 0 ); /*nop*/
11452 /* tra: tra$pack $GRi,$GRj */
11455 SEM_FN_NAME ( frvbf
, tra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11457 #define FLD(f) abuf->fields.sfmt_ftne.f
11458 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11459 int UNUSED written
= 0 ;
11460 IADDR UNUSED pc
= abuf
-> addr
;
11461 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11468 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11476 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11479 abuf
-> written
= written
;
11484 /* tno: tno$pack */
11487 SEM_FN_NAME ( frvbf
, tno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11489 #define FLD(f) abuf->fields.fmt_empty.f
11490 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11491 int UNUSED written
= 0 ;
11492 IADDR UNUSED pc
= abuf
-> addr
;
11493 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11495 (( void ) 0 ); /*nop*/
11501 /* teq: teq$pack $ICCi_2,$GRi,$GRj */
11504 SEM_FN_NAME ( frvbf
, teq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11506 #define FLD(f) abuf->fields.sfmt_teq.f
11507 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11508 int UNUSED written
= 0 ;
11509 IADDR UNUSED pc
= abuf
-> addr
;
11510 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11512 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 ))) {
11518 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11526 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11530 abuf
-> written
= written
;
11535 /* tne: tne$pack $ICCi_2,$GRi,$GRj */
11538 SEM_FN_NAME ( frvbf
, tne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11540 #define FLD(f) abuf->fields.sfmt_teq.f
11541 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11542 int UNUSED written
= 0 ;
11543 IADDR UNUSED pc
= abuf
-> addr
;
11544 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11546 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
11552 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11560 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11564 abuf
-> written
= written
;
11569 /* tle: tle$pack $ICCi_2,$GRi,$GRj */
11572 SEM_FN_NAME ( frvbf
, tle
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11574 #define FLD(f) abuf->fields.sfmt_teq.f
11575 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11576 int UNUSED written
= 0 ;
11577 IADDR UNUSED pc
= abuf
-> addr
;
11578 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11580 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )), XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))))) {
11586 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11594 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11598 abuf
-> written
= written
;
11603 /* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11606 SEM_FN_NAME ( frvbf
, tgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11608 #define FLD(f) abuf->fields.sfmt_teq.f
11609 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11610 int UNUSED written
= 0 ;
11611 IADDR UNUSED pc
= abuf
-> addr
;
11612 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11614 if ( NOTBI ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )), XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))))) {
11620 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11628 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11632 abuf
-> written
= written
;
11637 /* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11640 SEM_FN_NAME ( frvbf
, tlt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11642 #define FLD(f) abuf->fields.sfmt_teq.f
11643 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11644 int UNUSED written
= 0 ;
11645 IADDR UNUSED pc
= abuf
-> addr
;
11646 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11648 if ( XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))) {
11654 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11662 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11666 abuf
-> written
= written
;
11671 /* tge: tge$pack $ICCi_2,$GRi,$GRj */
11674 SEM_FN_NAME ( frvbf
, tge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11676 #define FLD(f) abuf->fields.sfmt_teq.f
11677 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11678 int UNUSED written
= 0 ;
11679 IADDR UNUSED pc
= abuf
-> addr
;
11680 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11682 if ( NOTBI ( XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))))) {
11688 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11696 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11700 abuf
-> written
= written
;
11705 /* tls: tls$pack $ICCi_2,$GRi,$GRj */
11708 SEM_FN_NAME ( frvbf
, tls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11710 #define FLD(f) abuf->fields.sfmt_teq.f
11711 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11712 int UNUSED written
= 0 ;
11713 IADDR UNUSED pc
= abuf
-> addr
;
11714 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11716 if ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
11722 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11730 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11734 abuf
-> written
= written
;
11739 /* thi: thi$pack $ICCi_2,$GRi,$GRj */
11742 SEM_FN_NAME ( frvbf
, thi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11744 #define FLD(f) abuf->fields.sfmt_teq.f
11745 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11746 int UNUSED written
= 0 ;
11747 IADDR UNUSED pc
= abuf
-> addr
;
11748 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11750 if ( NOTBI ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 ))))) {
11756 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11764 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11768 abuf
-> written
= written
;
11773 /* tc: tc$pack $ICCi_2,$GRi,$GRj */
11776 SEM_FN_NAME ( frvbf
, tc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11778 #define FLD(f) abuf->fields.sfmt_teq.f
11779 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11780 int UNUSED written
= 0 ;
11781 IADDR UNUSED pc
= abuf
-> addr
;
11782 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11784 if ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 ))) {
11790 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11798 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11802 abuf
-> written
= written
;
11807 /* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
11810 SEM_FN_NAME ( frvbf
, tnc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11812 #define FLD(f) abuf->fields.sfmt_teq.f
11813 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11814 int UNUSED written
= 0 ;
11815 IADDR UNUSED pc
= abuf
-> addr
;
11816 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11818 if ( NOTBI ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )))) {
11824 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11832 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11836 abuf
-> written
= written
;
11841 /* tn: tn$pack $ICCi_2,$GRi,$GRj */
11844 SEM_FN_NAME ( frvbf
, tn
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11846 #define FLD(f) abuf->fields.sfmt_teq.f
11847 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11848 int UNUSED written
= 0 ;
11849 IADDR UNUSED pc
= abuf
-> addr
;
11850 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11852 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 ))) {
11858 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11866 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11870 abuf
-> written
= written
;
11875 /* tp: tp$pack $ICCi_2,$GRi,$GRj */
11878 SEM_FN_NAME ( frvbf
, tp
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11880 #define FLD(f) abuf->fields.sfmt_teq.f
11881 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11882 int UNUSED written
= 0 ;
11883 IADDR UNUSED pc
= abuf
-> addr
;
11884 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11886 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )))) {
11892 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11900 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11904 abuf
-> written
= written
;
11909 /* tv: tv$pack $ICCi_2,$GRi,$GRj */
11912 SEM_FN_NAME ( frvbf
, tv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11914 #define FLD(f) abuf->fields.sfmt_teq.f
11915 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11916 int UNUSED written
= 0 ;
11917 IADDR UNUSED pc
= abuf
-> addr
;
11918 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11920 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))) {
11926 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11934 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11938 abuf
-> written
= written
;
11943 /* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
11946 SEM_FN_NAME ( frvbf
, tnv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11948 #define FLD(f) abuf->fields.sfmt_teq.f
11949 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11950 int UNUSED written
= 0 ;
11951 IADDR UNUSED pc
= abuf
-> addr
;
11952 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11954 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))) {
11960 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11968 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11972 abuf
-> written
= written
;
11977 /* ftra: ftra$pack $GRi,$GRj */
11980 SEM_FN_NAME ( frvbf
, ftra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11982 #define FLD(f) abuf->fields.sfmt_ftne.f
11983 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11984 int UNUSED written
= 0 ;
11985 IADDR UNUSED pc
= abuf
-> addr
;
11986 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11993 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12001 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12004 abuf
-> written
= written
;
12009 /* ftno: ftno$pack */
12012 SEM_FN_NAME ( frvbf
, ftno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12014 #define FLD(f) abuf->fields.fmt_empty.f
12015 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12016 int UNUSED written
= 0 ;
12017 IADDR UNUSED pc
= abuf
-> addr
;
12018 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12020 (( void ) 0 ); /*nop*/
12026 /* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12029 SEM_FN_NAME ( frvbf
, ftne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12031 #define FLD(f) abuf->fields.sfmt_ftne.f
12032 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12033 int UNUSED written
= 0 ;
12034 IADDR UNUSED pc
= abuf
-> addr
;
12035 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12037 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))))) {
12043 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12051 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12055 abuf
-> written
= written
;
12060 /* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12063 SEM_FN_NAME ( frvbf
, fteq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12065 #define FLD(f) abuf->fields.sfmt_ftne.f
12066 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12067 int UNUSED written
= 0 ;
12068 IADDR UNUSED pc
= abuf
-> addr
;
12069 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12071 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 ))) {
12077 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12085 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12089 abuf
-> written
= written
;
12094 /* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12097 SEM_FN_NAME ( frvbf
, ftlg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12099 #define FLD(f) abuf->fields.sfmt_ftne.f
12100 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12101 int UNUSED written
= 0 ;
12102 IADDR UNUSED pc
= abuf
-> addr
;
12103 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12105 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )))) {
12111 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12119 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12123 abuf
-> written
= written
;
12128 /* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12131 SEM_FN_NAME ( frvbf
, ftue
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12133 #define FLD(f) abuf->fields.sfmt_ftne.f
12134 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12135 int UNUSED written
= 0 ;
12136 IADDR UNUSED pc
= abuf
-> addr
;
12137 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12139 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
12145 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12153 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12157 abuf
-> written
= written
;
12162 /* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12165 SEM_FN_NAME ( frvbf
, ftul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12167 #define FLD(f) abuf->fields.sfmt_ftne.f
12168 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12169 int UNUSED written
= 0 ;
12170 IADDR UNUSED pc
= abuf
-> addr
;
12171 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12173 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
12179 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12187 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12191 abuf
-> written
= written
;
12196 /* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12199 SEM_FN_NAME ( frvbf
, ftge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12201 #define FLD(f) abuf->fields.sfmt_ftne.f
12202 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12203 int UNUSED written
= 0 ;
12204 IADDR UNUSED pc
= abuf
-> addr
;
12205 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12207 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )))) {
12213 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12221 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12225 abuf
-> written
= written
;
12230 /* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12233 SEM_FN_NAME ( frvbf
, ftlt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12235 #define FLD(f) abuf->fields.sfmt_ftne.f
12236 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12237 int UNUSED written
= 0 ;
12238 IADDR UNUSED pc
= abuf
-> addr
;
12239 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12241 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 ))) {
12247 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12255 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12259 abuf
-> written
= written
;
12264 /* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12267 SEM_FN_NAME ( frvbf
, ftuge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12269 #define FLD(f) abuf->fields.sfmt_ftne.f
12270 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12271 int UNUSED written
= 0 ;
12272 IADDR UNUSED pc
= abuf
-> addr
;
12273 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12275 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))))) {
12281 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12289 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12293 abuf
-> written
= written
;
12298 /* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12301 SEM_FN_NAME ( frvbf
, ftug
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12303 #define FLD(f) abuf->fields.sfmt_ftne.f
12304 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12305 int UNUSED written
= 0 ;
12306 IADDR UNUSED pc
= abuf
-> addr
;
12307 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12309 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
12315 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12323 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12327 abuf
-> written
= written
;
12332 /* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12335 SEM_FN_NAME ( frvbf
, ftle
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12337 #define FLD(f) abuf->fields.sfmt_ftne.f
12338 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12339 int UNUSED written
= 0 ;
12340 IADDR UNUSED pc
= abuf
-> addr
;
12341 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12343 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )))) {
12349 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12357 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12361 abuf
-> written
= written
;
12366 /* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12369 SEM_FN_NAME ( frvbf
, ftgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12371 #define FLD(f) abuf->fields.sfmt_ftne.f
12372 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12373 int UNUSED written
= 0 ;
12374 IADDR UNUSED pc
= abuf
-> addr
;
12375 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12377 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 ))) {
12383 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12391 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12395 abuf
-> written
= written
;
12400 /* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12403 SEM_FN_NAME ( frvbf
, ftule
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12405 #define FLD(f) abuf->fields.sfmt_ftne.f
12406 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12407 int UNUSED written
= 0 ;
12408 IADDR UNUSED pc
= abuf
-> addr
;
12409 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12411 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))))) {
12417 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12425 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12429 abuf
-> written
= written
;
12434 /* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12437 SEM_FN_NAME ( frvbf
, ftu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12439 #define FLD(f) abuf->fields.sfmt_ftne.f
12440 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12441 int UNUSED written
= 0 ;
12442 IADDR UNUSED pc
= abuf
-> addr
;
12443 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12445 if ( TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))) {
12451 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12459 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12463 abuf
-> written
= written
;
12468 /* fto: fto$pack $FCCi_2,$GRi,$GRj */
12471 SEM_FN_NAME ( frvbf
, fto
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12473 #define FLD(f) abuf->fields.sfmt_ftne.f
12474 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12475 int UNUSED written
= 0 ;
12476 IADDR UNUSED pc
= abuf
-> addr
;
12477 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12479 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 ))))) {
12485 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12493 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12497 abuf
-> written
= written
;
12502 /* tira: tira$pack $GRi,$s12 */
12505 SEM_FN_NAME ( frvbf
, tira
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12507 #define FLD(f) abuf->fields.sfmt_ftine.f
12508 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12509 int UNUSED written
= 0 ;
12510 IADDR UNUSED pc
= abuf
-> addr
;
12511 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12518 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12526 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12529 abuf
-> written
= written
;
12534 /* tino: tino$pack */
12537 SEM_FN_NAME ( frvbf
, tino
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12539 #define FLD(f) abuf->fields.fmt_empty.f
12540 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12541 int UNUSED written
= 0 ;
12542 IADDR UNUSED pc
= abuf
-> addr
;
12543 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12545 (( void ) 0 ); /*nop*/
12551 /* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12554 SEM_FN_NAME ( frvbf
, tieq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12556 #define FLD(f) abuf->fields.sfmt_tieq.f
12557 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12558 int UNUSED written
= 0 ;
12559 IADDR UNUSED pc
= abuf
-> addr
;
12560 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12562 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 ))) {
12568 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12576 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12580 abuf
-> written
= written
;
12585 /* tine: tine$pack $ICCi_2,$GRi,$s12 */
12588 SEM_FN_NAME ( frvbf
, tine
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12590 #define FLD(f) abuf->fields.sfmt_tieq.f
12591 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12592 int UNUSED written
= 0 ;
12593 IADDR UNUSED pc
= abuf
-> addr
;
12594 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12596 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
12602 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12610 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12614 abuf
-> written
= written
;
12619 /* tile: tile$pack $ICCi_2,$GRi,$s12 */
12622 SEM_FN_NAME ( frvbf
, tile
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12624 #define FLD(f) abuf->fields.sfmt_tieq.f
12625 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12626 int UNUSED written
= 0 ;
12627 IADDR UNUSED pc
= abuf
-> addr
;
12628 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12630 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )), XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))))) {
12636 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12644 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12648 abuf
-> written
= written
;
12653 /* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12656 SEM_FN_NAME ( frvbf
, tigt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12658 #define FLD(f) abuf->fields.sfmt_tieq.f
12659 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12660 int UNUSED written
= 0 ;
12661 IADDR UNUSED pc
= abuf
-> addr
;
12662 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12664 if ( NOTBI ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )), XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))))) {
12670 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12678 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12682 abuf
-> written
= written
;
12687 /* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12690 SEM_FN_NAME ( frvbf
, tilt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12692 #define FLD(f) abuf->fields.sfmt_tieq.f
12693 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12694 int UNUSED written
= 0 ;
12695 IADDR UNUSED pc
= abuf
-> addr
;
12696 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12698 if ( XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))) {
12704 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12712 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12716 abuf
-> written
= written
;
12721 /* tige: tige$pack $ICCi_2,$GRi,$s12 */
12724 SEM_FN_NAME ( frvbf
, tige
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12726 #define FLD(f) abuf->fields.sfmt_tieq.f
12727 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12728 int UNUSED written
= 0 ;
12729 IADDR UNUSED pc
= abuf
-> addr
;
12730 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12732 if ( NOTBI ( XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))))) {
12738 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12746 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12750 abuf
-> written
= written
;
12755 /* tils: tils$pack $ICCi_2,$GRi,$s12 */
12758 SEM_FN_NAME ( frvbf
, tils
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12760 #define FLD(f) abuf->fields.sfmt_tieq.f
12761 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12762 int UNUSED written
= 0 ;
12763 IADDR UNUSED pc
= abuf
-> addr
;
12764 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12766 if ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
12772 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12780 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12784 abuf
-> written
= written
;
12789 /* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
12792 SEM_FN_NAME ( frvbf
, tihi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12794 #define FLD(f) abuf->fields.sfmt_tieq.f
12795 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12796 int UNUSED written
= 0 ;
12797 IADDR UNUSED pc
= abuf
-> addr
;
12798 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12800 if ( NOTBI ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 ))))) {
12806 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12814 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12818 abuf
-> written
= written
;
12823 /* tic: tic$pack $ICCi_2,$GRi,$s12 */
12826 SEM_FN_NAME ( frvbf
, tic
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12828 #define FLD(f) abuf->fields.sfmt_tieq.f
12829 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12830 int UNUSED written
= 0 ;
12831 IADDR UNUSED pc
= abuf
-> addr
;
12832 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12834 if ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 ))) {
12840 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12848 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12852 abuf
-> written
= written
;
12857 /* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
12860 SEM_FN_NAME ( frvbf
, tinc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12862 #define FLD(f) abuf->fields.sfmt_tieq.f
12863 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12864 int UNUSED written
= 0 ;
12865 IADDR UNUSED pc
= abuf
-> addr
;
12866 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12868 if ( NOTBI ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )))) {
12874 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12882 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12886 abuf
-> written
= written
;
12891 /* tin: tin$pack $ICCi_2,$GRi,$s12 */
12894 SEM_FN_NAME ( frvbf
, tin
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12896 #define FLD(f) abuf->fields.sfmt_tieq.f
12897 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12898 int UNUSED written
= 0 ;
12899 IADDR UNUSED pc
= abuf
-> addr
;
12900 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12902 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 ))) {
12908 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12916 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12920 abuf
-> written
= written
;
12925 /* tip: tip$pack $ICCi_2,$GRi,$s12 */
12928 SEM_FN_NAME ( frvbf
, tip
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12930 #define FLD(f) abuf->fields.sfmt_tieq.f
12931 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12932 int UNUSED written
= 0 ;
12933 IADDR UNUSED pc
= abuf
-> addr
;
12934 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12936 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )))) {
12942 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12950 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12954 abuf
-> written
= written
;
12959 /* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
12962 SEM_FN_NAME ( frvbf
, tiv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12964 #define FLD(f) abuf->fields.sfmt_tieq.f
12965 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12966 int UNUSED written
= 0 ;
12967 IADDR UNUSED pc
= abuf
-> addr
;
12968 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12970 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))) {
12976 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12984 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12988 abuf
-> written
= written
;
12993 /* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
12996 SEM_FN_NAME ( frvbf
, tinv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12998 #define FLD(f) abuf->fields.sfmt_tieq.f
12999 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13000 int UNUSED written
= 0 ;
13001 IADDR UNUSED pc
= abuf
-> addr
;
13002 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13004 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))) {
13010 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13018 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13022 abuf
-> written
= written
;
13027 /* ftira: ftira$pack $GRi,$s12 */
13030 SEM_FN_NAME ( frvbf
, ftira
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13032 #define FLD(f) abuf->fields.sfmt_ftine.f
13033 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13034 int UNUSED written
= 0 ;
13035 IADDR UNUSED pc
= abuf
-> addr
;
13036 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13043 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13051 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13054 abuf
-> written
= written
;
13059 /* ftino: ftino$pack */
13062 SEM_FN_NAME ( frvbf
, ftino
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13064 #define FLD(f) abuf->fields.fmt_empty.f
13065 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13066 int UNUSED written
= 0 ;
13067 IADDR UNUSED pc
= abuf
-> addr
;
13068 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13070 (( void ) 0 ); /*nop*/
13076 /* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13079 SEM_FN_NAME ( frvbf
, ftine
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13081 #define FLD(f) abuf->fields.sfmt_ftine.f
13082 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13083 int UNUSED written
= 0 ;
13084 IADDR UNUSED pc
= abuf
-> addr
;
13085 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13087 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))))) {
13093 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13101 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13105 abuf
-> written
= written
;
13110 /* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13113 SEM_FN_NAME ( frvbf
, ftieq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13115 #define FLD(f) abuf->fields.sfmt_ftine.f
13116 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13117 int UNUSED written
= 0 ;
13118 IADDR UNUSED pc
= abuf
-> addr
;
13119 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13121 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 ))) {
13127 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13135 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13139 abuf
-> written
= written
;
13144 /* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13147 SEM_FN_NAME ( frvbf
, ftilg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13149 #define FLD(f) abuf->fields.sfmt_ftine.f
13150 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13151 int UNUSED written
= 0 ;
13152 IADDR UNUSED pc
= abuf
-> addr
;
13153 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13155 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )))) {
13161 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13169 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13173 abuf
-> written
= written
;
13178 /* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13181 SEM_FN_NAME ( frvbf
, ftiue
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13183 #define FLD(f) abuf->fields.sfmt_ftine.f
13184 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13185 int UNUSED written
= 0 ;
13186 IADDR UNUSED pc
= abuf
-> addr
;
13187 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13189 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
13195 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13203 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13207 abuf
-> written
= written
;
13212 /* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13215 SEM_FN_NAME ( frvbf
, ftiul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13217 #define FLD(f) abuf->fields.sfmt_ftine.f
13218 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13219 int UNUSED written
= 0 ;
13220 IADDR UNUSED pc
= abuf
-> addr
;
13221 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13223 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
13229 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13237 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13241 abuf
-> written
= written
;
13246 /* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13249 SEM_FN_NAME ( frvbf
, ftige
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13251 #define FLD(f) abuf->fields.sfmt_ftine.f
13252 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13253 int UNUSED written
= 0 ;
13254 IADDR UNUSED pc
= abuf
-> addr
;
13255 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13257 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )))) {
13263 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13271 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13275 abuf
-> written
= written
;
13280 /* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13283 SEM_FN_NAME ( frvbf
, ftilt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13285 #define FLD(f) abuf->fields.sfmt_ftine.f
13286 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13287 int UNUSED written
= 0 ;
13288 IADDR UNUSED pc
= abuf
-> addr
;
13289 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13291 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 ))) {
13297 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13305 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13309 abuf
-> written
= written
;
13314 /* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13317 SEM_FN_NAME ( frvbf
, ftiuge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13319 #define FLD(f) abuf->fields.sfmt_ftine.f
13320 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13321 int UNUSED written
= 0 ;
13322 IADDR UNUSED pc
= abuf
-> addr
;
13323 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13325 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))))) {
13331 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13339 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13343 abuf
-> written
= written
;
13348 /* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13351 SEM_FN_NAME ( frvbf
, ftiug
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13353 #define FLD(f) abuf->fields.sfmt_ftine.f
13354 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13355 int UNUSED written
= 0 ;
13356 IADDR UNUSED pc
= abuf
-> addr
;
13357 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13359 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
13365 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13373 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13377 abuf
-> written
= written
;
13382 /* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13385 SEM_FN_NAME ( frvbf
, ftile
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13387 #define FLD(f) abuf->fields.sfmt_ftine.f
13388 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13389 int UNUSED written
= 0 ;
13390 IADDR UNUSED pc
= abuf
-> addr
;
13391 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13393 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )))) {
13399 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13407 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13411 abuf
-> written
= written
;
13416 /* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13419 SEM_FN_NAME ( frvbf
, ftigt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13421 #define FLD(f) abuf->fields.sfmt_ftine.f
13422 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13423 int UNUSED written
= 0 ;
13424 IADDR UNUSED pc
= abuf
-> addr
;
13425 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13427 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 ))) {
13433 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13441 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13445 abuf
-> written
= written
;
13450 /* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13453 SEM_FN_NAME ( frvbf
, ftiule
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13455 #define FLD(f) abuf->fields.sfmt_ftine.f
13456 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13457 int UNUSED written
= 0 ;
13458 IADDR UNUSED pc
= abuf
-> addr
;
13459 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13461 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))))) {
13467 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13475 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13479 abuf
-> written
= written
;
13484 /* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13487 SEM_FN_NAME ( frvbf
, ftiu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13489 #define FLD(f) abuf->fields.sfmt_ftine.f
13490 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13491 int UNUSED written
= 0 ;
13492 IADDR UNUSED pc
= abuf
-> addr
;
13493 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13495 if ( TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))) {
13501 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13509 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13513 abuf
-> written
= written
;
13518 /* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13521 SEM_FN_NAME ( frvbf
, ftio
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13523 #define FLD(f) abuf->fields.sfmt_ftine.f
13524 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13525 int UNUSED written
= 0 ;
13526 IADDR UNUSED pc
= abuf
-> addr
;
13527 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13529 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 ))))) {
13535 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13543 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13547 abuf
-> written
= written
;
13552 /* break: break$pack */
13555 SEM_FN_NAME ( frvbf
, break ) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13557 #define FLD(f) abuf->fields.sfmt_break.f
13558 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13559 int UNUSED written
= 0 ;
13560 IADDR UNUSED pc
= abuf
-> addr
;
13561 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13570 frv_break ( current_cpu
);
13577 /* mtrap: mtrap$pack */
13580 SEM_FN_NAME ( frvbf
, mtrap
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13582 #define FLD(f) abuf->fields.fmt_empty.f
13583 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13584 int UNUSED written
= 0 ;
13585 IADDR UNUSED pc
= abuf
-> addr
;
13586 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13588 frv_mtrap ( current_cpu
);
13594 /* andcr: andcr$pack $CRi,$CRj,$CRk */
13597 SEM_FN_NAME ( frvbf
, andcr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13599 #define FLD(f) abuf->fields.sfmt_andcr.f
13600 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13601 int UNUSED written
= 0 ;
13602 IADDR UNUSED pc
= abuf
-> addr
;
13603 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13606 UQI opval
= frvbf_cr_logic ( current_cpu
, 0 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13607 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13608 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13615 /* orcr: orcr$pack $CRi,$CRj,$CRk */
13618 SEM_FN_NAME ( frvbf
, orcr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13620 #define FLD(f) abuf->fields.sfmt_andcr.f
13621 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13622 int UNUSED written
= 0 ;
13623 IADDR UNUSED pc
= abuf
-> addr
;
13624 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13627 UQI opval
= frvbf_cr_logic ( current_cpu
, 1 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13628 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13629 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13636 /* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13639 SEM_FN_NAME ( frvbf
, xorcr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13641 #define FLD(f) abuf->fields.sfmt_andcr.f
13642 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13643 int UNUSED written
= 0 ;
13644 IADDR UNUSED pc
= abuf
-> addr
;
13645 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13648 UQI opval
= frvbf_cr_logic ( current_cpu
, 2 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13649 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13650 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13657 /* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13660 SEM_FN_NAME ( frvbf
, nandcr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13662 #define FLD(f) abuf->fields.sfmt_andcr.f
13663 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13664 int UNUSED written
= 0 ;
13665 IADDR UNUSED pc
= abuf
-> addr
;
13666 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13669 UQI opval
= frvbf_cr_logic ( current_cpu
, 3 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13670 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13671 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13678 /* norcr: norcr$pack $CRi,$CRj,$CRk */
13681 SEM_FN_NAME ( frvbf
, norcr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13683 #define FLD(f) abuf->fields.sfmt_andcr.f
13684 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13685 int UNUSED written
= 0 ;
13686 IADDR UNUSED pc
= abuf
-> addr
;
13687 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13690 UQI opval
= frvbf_cr_logic ( current_cpu
, 4 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13691 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13692 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13699 /* andncr: andncr$pack $CRi,$CRj,$CRk */
13702 SEM_FN_NAME ( frvbf
, andncr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13704 #define FLD(f) abuf->fields.sfmt_andcr.f
13705 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13706 int UNUSED written
= 0 ;
13707 IADDR UNUSED pc
= abuf
-> addr
;
13708 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13711 UQI opval
= frvbf_cr_logic ( current_cpu
, 5 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13712 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13713 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13720 /* orncr: orncr$pack $CRi,$CRj,$CRk */
13723 SEM_FN_NAME ( frvbf
, orncr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13725 #define FLD(f) abuf->fields.sfmt_andcr.f
13726 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13727 int UNUSED written
= 0 ;
13728 IADDR UNUSED pc
= abuf
-> addr
;
13729 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13732 UQI opval
= frvbf_cr_logic ( current_cpu
, 6 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13733 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13734 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13741 /* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13744 SEM_FN_NAME ( frvbf
, nandncr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13746 #define FLD(f) abuf->fields.sfmt_andcr.f
13747 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13748 int UNUSED written
= 0 ;
13749 IADDR UNUSED pc
= abuf
-> addr
;
13750 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13753 UQI opval
= frvbf_cr_logic ( current_cpu
, 7 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13754 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13755 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13762 /* norncr: norncr$pack $CRi,$CRj,$CRk */
13765 SEM_FN_NAME ( frvbf
, norncr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13767 #define FLD(f) abuf->fields.sfmt_andcr.f
13768 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13769 int UNUSED written
= 0 ;
13770 IADDR UNUSED pc
= abuf
-> addr
;
13771 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13774 UQI opval
= frvbf_cr_logic ( current_cpu
, 8 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13775 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13776 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13783 /* notcr: notcr$pack $CRj,$CRk */
13786 SEM_FN_NAME ( frvbf
, notcr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13788 #define FLD(f) abuf->fields.sfmt_andcr.f
13789 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13790 int UNUSED written
= 0 ;
13791 IADDR UNUSED pc
= abuf
-> addr
;
13792 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13795 UQI opval
= XORQI ( CPU ( h_cccr
[ FLD ( f_CRj
)]), 1 );
13796 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13797 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13804 /* ckra: ckra$pack $CRj_int */
13807 SEM_FN_NAME ( frvbf
, ckra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13809 #define FLD(f) abuf->fields.sfmt_cckeq.f
13810 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13811 int UNUSED written
= 0 ;
13812 IADDR UNUSED pc
= abuf
-> addr
;
13813 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13817 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13818 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13825 /* ckno: ckno$pack $CRj_int */
13828 SEM_FN_NAME ( frvbf
, ckno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13830 #define FLD(f) abuf->fields.sfmt_cckeq.f
13831 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13832 int UNUSED written
= 0 ;
13833 IADDR UNUSED pc
= abuf
-> addr
;
13834 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13838 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13839 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13846 /* ckeq: ckeq$pack $ICCi_3,$CRj_int */
13849 SEM_FN_NAME ( frvbf
, ckeq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13851 #define FLD(f) abuf->fields.sfmt_cckeq.f
13852 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13853 int UNUSED written
= 0 ;
13854 IADDR UNUSED pc
= abuf
-> addr
;
13855 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13857 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 ))) {
13860 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13861 written
|= ( 1 << 1 );
13862 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13867 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13868 written
|= ( 1 << 1 );
13869 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13873 abuf
-> written
= written
;
13878 /* ckne: ckne$pack $ICCi_3,$CRj_int */
13881 SEM_FN_NAME ( frvbf
, ckne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13883 #define FLD(f) abuf->fields.sfmt_cckeq.f
13884 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13885 int UNUSED written
= 0 ;
13886 IADDR UNUSED pc
= abuf
-> addr
;
13887 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13889 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 )))) {
13892 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13893 written
|= ( 1 << 1 );
13894 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13899 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13900 written
|= ( 1 << 1 );
13901 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13905 abuf
-> written
= written
;
13910 /* ckle: ckle$pack $ICCi_3,$CRj_int */
13913 SEM_FN_NAME ( frvbf
, ckle
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13915 #define FLD(f) abuf->fields.sfmt_cckeq.f
13916 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13917 int UNUSED written
= 0 ;
13918 IADDR UNUSED pc
= abuf
-> addr
;
13919 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13921 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 )), XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 2 ), 1 ))))) {
13924 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13925 written
|= ( 1 << 1 );
13926 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13931 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13932 written
|= ( 1 << 1 );
13933 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13937 abuf
-> written
= written
;
13942 /* ckgt: ckgt$pack $ICCi_3,$CRj_int */
13945 SEM_FN_NAME ( frvbf
, ckgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13947 #define FLD(f) abuf->fields.sfmt_cckeq.f
13948 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13949 int UNUSED written
= 0 ;
13950 IADDR UNUSED pc
= abuf
-> addr
;
13951 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13953 if ( NOTBI ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 )), XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 2 ), 1 )))))) {
13956 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13957 written
|= ( 1 << 1 );
13958 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13963 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13964 written
|= ( 1 << 1 );
13965 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13969 abuf
-> written
= written
;
13974 /* cklt: cklt$pack $ICCi_3,$CRj_int */
13977 SEM_FN_NAME ( frvbf
, cklt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13979 #define FLD(f) abuf->fields.sfmt_cckeq.f
13980 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13981 int UNUSED written
= 0 ;
13982 IADDR UNUSED pc
= abuf
-> addr
;
13983 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13985 if ( XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 2 ), 1 )))) {
13988 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13989 written
|= ( 1 << 1 );
13990 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13995 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13996 written
|= ( 1 << 1 );
13997 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14001 abuf
-> written
= written
;
14006 /* ckge: ckge$pack $ICCi_3,$CRj_int */
14009 SEM_FN_NAME ( frvbf
, ckge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14011 #define FLD(f) abuf->fields.sfmt_cckeq.f
14012 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14013 int UNUSED written
= 0 ;
14014 IADDR UNUSED pc
= abuf
-> addr
;
14015 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14017 if ( NOTBI ( XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 2 ), 1 ))))) {
14020 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14021 written
|= ( 1 << 1 );
14022 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14027 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14028 written
|= ( 1 << 1 );
14029 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14033 abuf
-> written
= written
;
14038 /* ckls: ckls$pack $ICCi_3,$CRj_int */
14041 SEM_FN_NAME ( frvbf
, ckls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14043 #define FLD(f) abuf->fields.sfmt_cckeq.f
14044 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14045 int UNUSED written
= 0 ;
14046 IADDR UNUSED pc
= abuf
-> addr
;
14047 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14049 if ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 )))) {
14052 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14053 written
|= ( 1 << 1 );
14054 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14059 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14060 written
|= ( 1 << 1 );
14061 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14065 abuf
-> written
= written
;
14070 /* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14073 SEM_FN_NAME ( frvbf
, ckhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14075 #define FLD(f) abuf->fields.sfmt_cckeq.f
14076 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14077 int UNUSED written
= 0 ;
14078 IADDR UNUSED pc
= abuf
-> addr
;
14079 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14081 if ( NOTBI ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 ))))) {
14084 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14085 written
|= ( 1 << 1 );
14086 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14091 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14092 written
|= ( 1 << 1 );
14093 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14097 abuf
-> written
= written
;
14102 /* ckc: ckc$pack $ICCi_3,$CRj_int */
14105 SEM_FN_NAME ( frvbf
, ckc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14107 #define FLD(f) abuf->fields.sfmt_cckeq.f
14108 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14109 int UNUSED written
= 0 ;
14110 IADDR UNUSED pc
= abuf
-> addr
;
14111 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14113 if ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 1 ))) {
14116 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14117 written
|= ( 1 << 1 );
14118 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14123 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14124 written
|= ( 1 << 1 );
14125 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14129 abuf
-> written
= written
;
14134 /* cknc: cknc$pack $ICCi_3,$CRj_int */
14137 SEM_FN_NAME ( frvbf
, cknc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14139 #define FLD(f) abuf->fields.sfmt_cckeq.f
14140 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14141 int UNUSED written
= 0 ;
14142 IADDR UNUSED pc
= abuf
-> addr
;
14143 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14145 if ( NOTBI ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 1 )))) {
14148 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14149 written
|= ( 1 << 1 );
14150 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14155 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14156 written
|= ( 1 << 1 );
14157 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14161 abuf
-> written
= written
;
14166 /* ckn: ckn$pack $ICCi_3,$CRj_int */
14169 SEM_FN_NAME ( frvbf
, ckn
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14171 #define FLD(f) abuf->fields.sfmt_cckeq.f
14172 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14173 int UNUSED written
= 0 ;
14174 IADDR UNUSED pc
= abuf
-> addr
;
14175 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14177 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 8 ), 3 ))) {
14180 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14181 written
|= ( 1 << 1 );
14182 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14187 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14188 written
|= ( 1 << 1 );
14189 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14193 abuf
-> written
= written
;
14198 /* ckp: ckp$pack $ICCi_3,$CRj_int */
14201 SEM_FN_NAME ( frvbf
, ckp
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14203 #define FLD(f) abuf->fields.sfmt_cckeq.f
14204 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14205 int UNUSED written
= 0 ;
14206 IADDR UNUSED pc
= abuf
-> addr
;
14207 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14209 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 8 ), 3 )))) {
14212 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14213 written
|= ( 1 << 1 );
14214 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14219 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14220 written
|= ( 1 << 1 );
14221 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14225 abuf
-> written
= written
;
14230 /* ckv: ckv$pack $ICCi_3,$CRj_int */
14233 SEM_FN_NAME ( frvbf
, ckv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14235 #define FLD(f) abuf->fields.sfmt_cckeq.f
14236 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14237 int UNUSED written
= 0 ;
14238 IADDR UNUSED pc
= abuf
-> addr
;
14239 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14241 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 2 ), 1 ))) {
14244 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14245 written
|= ( 1 << 1 );
14246 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14251 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14252 written
|= ( 1 << 1 );
14253 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14257 abuf
-> written
= written
;
14262 /* cknv: cknv$pack $ICCi_3,$CRj_int */
14265 SEM_FN_NAME ( frvbf
, cknv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14267 #define FLD(f) abuf->fields.sfmt_cckeq.f
14268 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14269 int UNUSED written
= 0 ;
14270 IADDR UNUSED pc
= abuf
-> addr
;
14271 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14273 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 2 ), 1 )))) {
14276 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14277 written
|= ( 1 << 1 );
14278 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14283 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14284 written
|= ( 1 << 1 );
14285 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14289 abuf
-> written
= written
;
14294 /* fckra: fckra$pack $CRj_float */
14297 SEM_FN_NAME ( frvbf
, fckra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14299 #define FLD(f) abuf->fields.sfmt_cfckne.f
14300 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14301 int UNUSED written
= 0 ;
14302 IADDR UNUSED pc
= abuf
-> addr
;
14303 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14307 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14308 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14315 /* fckno: fckno$pack $CRj_float */
14318 SEM_FN_NAME ( frvbf
, fckno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14320 #define FLD(f) abuf->fields.sfmt_cfckne.f
14321 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14322 int UNUSED written
= 0 ;
14323 IADDR UNUSED pc
= abuf
-> addr
;
14324 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14328 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14329 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14336 /* fckne: fckne$pack $FCCi_3,$CRj_float */
14339 SEM_FN_NAME ( frvbf
, fckne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14341 #define FLD(f) abuf->fields.sfmt_cfckne.f
14342 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14343 int UNUSED written
= 0 ;
14344 IADDR UNUSED pc
= abuf
-> addr
;
14345 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14347 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 ))))) {
14350 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14351 written
|= ( 1 << 1 );
14352 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14357 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14358 written
|= ( 1 << 1 );
14359 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14363 abuf
-> written
= written
;
14368 /* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14371 SEM_FN_NAME ( frvbf
, fckeq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14373 #define FLD(f) abuf->fields.sfmt_cfckne.f
14374 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14375 int UNUSED written
= 0 ;
14376 IADDR UNUSED pc
= abuf
-> addr
;
14377 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14379 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 ))) {
14382 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14383 written
|= ( 1 << 1 );
14384 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14389 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14390 written
|= ( 1 << 1 );
14391 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14395 abuf
-> written
= written
;
14400 /* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14403 SEM_FN_NAME ( frvbf
, fcklg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14405 #define FLD(f) abuf->fields.sfmt_cfckne.f
14406 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14407 int UNUSED written
= 0 ;
14408 IADDR UNUSED pc
= abuf
-> addr
;
14409 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14411 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 )))) {
14414 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14415 written
|= ( 1 << 1 );
14416 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14421 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14422 written
|= ( 1 << 1 );
14423 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14427 abuf
-> written
= written
;
14432 /* fckue: fckue$pack $FCCi_3,$CRj_float */
14435 SEM_FN_NAME ( frvbf
, fckue
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14437 #define FLD(f) abuf->fields.sfmt_cfckne.f
14438 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14439 int UNUSED written
= 0 ;
14440 IADDR UNUSED pc
= abuf
-> addr
;
14441 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14443 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 )))) {
14446 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14447 written
|= ( 1 << 1 );
14448 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14453 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14454 written
|= ( 1 << 1 );
14455 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14459 abuf
-> written
= written
;
14464 /* fckul: fckul$pack $FCCi_3,$CRj_float */
14467 SEM_FN_NAME ( frvbf
, fckul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14469 #define FLD(f) abuf->fields.sfmt_cfckne.f
14470 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14471 int UNUSED written
= 0 ;
14472 IADDR UNUSED pc
= abuf
-> addr
;
14473 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14475 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 )))) {
14478 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14479 written
|= ( 1 << 1 );
14480 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14485 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14486 written
|= ( 1 << 1 );
14487 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14491 abuf
-> written
= written
;
14496 /* fckge: fckge$pack $FCCi_3,$CRj_float */
14499 SEM_FN_NAME ( frvbf
, fckge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14501 #define FLD(f) abuf->fields.sfmt_cfckne.f
14502 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14503 int UNUSED written
= 0 ;
14504 IADDR UNUSED pc
= abuf
-> addr
;
14505 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14507 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 )))) {
14510 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14511 written
|= ( 1 << 1 );
14512 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14517 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14518 written
|= ( 1 << 1 );
14519 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14523 abuf
-> written
= written
;
14528 /* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14531 SEM_FN_NAME ( frvbf
, fcklt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14533 #define FLD(f) abuf->fields.sfmt_cfckne.f
14534 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14535 int UNUSED written
= 0 ;
14536 IADDR UNUSED pc
= abuf
-> addr
;
14537 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14539 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 ))) {
14542 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14543 written
|= ( 1 << 1 );
14544 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14549 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14550 written
|= ( 1 << 1 );
14551 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14555 abuf
-> written
= written
;
14560 /* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14563 SEM_FN_NAME ( frvbf
, fckuge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14565 #define FLD(f) abuf->fields.sfmt_cfckne.f
14566 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14567 int UNUSED written
= 0 ;
14568 IADDR UNUSED pc
= abuf
-> addr
;
14569 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14571 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 ))))) {
14574 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14575 written
|= ( 1 << 1 );
14576 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14581 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14582 written
|= ( 1 << 1 );
14583 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14587 abuf
-> written
= written
;
14592 /* fckug: fckug$pack $FCCi_3,$CRj_float */
14595 SEM_FN_NAME ( frvbf
, fckug
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14597 #define FLD(f) abuf->fields.sfmt_cfckne.f
14598 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14599 int UNUSED written
= 0 ;
14600 IADDR UNUSED pc
= abuf
-> addr
;
14601 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14603 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 )))) {
14606 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14607 written
|= ( 1 << 1 );
14608 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14613 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14614 written
|= ( 1 << 1 );
14615 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14619 abuf
-> written
= written
;
14624 /* fckle: fckle$pack $FCCi_3,$CRj_float */
14627 SEM_FN_NAME ( frvbf
, fckle
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14629 #define FLD(f) abuf->fields.sfmt_cfckne.f
14630 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14631 int UNUSED written
= 0 ;
14632 IADDR UNUSED pc
= abuf
-> addr
;
14633 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14635 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 )))) {
14638 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14639 written
|= ( 1 << 1 );
14640 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14645 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14646 written
|= ( 1 << 1 );
14647 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14651 abuf
-> written
= written
;
14656 /* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14659 SEM_FN_NAME ( frvbf
, fckgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14661 #define FLD(f) abuf->fields.sfmt_cfckne.f
14662 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14663 int UNUSED written
= 0 ;
14664 IADDR UNUSED pc
= abuf
-> addr
;
14665 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14667 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 ))) {
14670 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14671 written
|= ( 1 << 1 );
14672 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14677 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14678 written
|= ( 1 << 1 );
14679 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14683 abuf
-> written
= written
;
14688 /* fckule: fckule$pack $FCCi_3,$CRj_float */
14691 SEM_FN_NAME ( frvbf
, fckule
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14693 #define FLD(f) abuf->fields.sfmt_cfckne.f
14694 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14695 int UNUSED written
= 0 ;
14696 IADDR UNUSED pc
= abuf
-> addr
;
14697 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14699 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 ))))) {
14702 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14703 written
|= ( 1 << 1 );
14704 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14709 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14710 written
|= ( 1 << 1 );
14711 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14715 abuf
-> written
= written
;
14720 /* fcku: fcku$pack $FCCi_3,$CRj_float */
14723 SEM_FN_NAME ( frvbf
, fcku
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14725 #define FLD(f) abuf->fields.sfmt_cfckne.f
14726 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14727 int UNUSED written
= 0 ;
14728 IADDR UNUSED pc
= abuf
-> addr
;
14729 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14731 if ( TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 ))) {
14734 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14735 written
|= ( 1 << 1 );
14736 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14741 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14742 written
|= ( 1 << 1 );
14743 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14747 abuf
-> written
= written
;
14752 /* fcko: fcko$pack $FCCi_3,$CRj_float */
14755 SEM_FN_NAME ( frvbf
, fcko
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14757 #define FLD(f) abuf->fields.sfmt_cfckne.f
14758 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14759 int UNUSED written
= 0 ;
14760 IADDR UNUSED pc
= abuf
-> addr
;
14761 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14763 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 ))))) {
14766 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14767 written
|= ( 1 << 1 );
14768 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14773 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14774 written
|= ( 1 << 1 );
14775 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14779 abuf
-> written
= written
;
14784 /* cckra: cckra$pack $CRj_int,$CCi,$cond */
14787 SEM_FN_NAME ( frvbf
, cckra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14789 #define FLD(f) abuf->fields.sfmt_cckeq.f
14790 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14791 int UNUSED written
= 0 ;
14792 IADDR UNUSED pc
= abuf
-> addr
;
14793 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14795 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
14798 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14799 written
|= ( 1 << 2 );
14800 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14805 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14806 written
|= ( 1 << 2 );
14807 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14811 abuf
-> written
= written
;
14816 /* cckno: cckno$pack $CRj_int,$CCi,$cond */
14819 SEM_FN_NAME ( frvbf
, cckno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14821 #define FLD(f) abuf->fields.sfmt_cckeq.f
14822 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14823 int UNUSED written
= 0 ;
14824 IADDR UNUSED pc
= abuf
-> addr
;
14825 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14827 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
14830 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14831 written
|= ( 1 << 2 );
14832 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14837 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14838 written
|= ( 1 << 2 );
14839 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14843 abuf
-> written
= written
;
14848 /* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
14851 SEM_FN_NAME ( frvbf
, cckeq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14853 #define FLD(f) abuf->fields.sfmt_cckeq.f
14854 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14855 int UNUSED written
= 0 ;
14856 IADDR UNUSED pc
= abuf
-> addr
;
14857 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14859 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
14860 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 ))) {
14863 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14864 written
|= ( 1 << 3 );
14865 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14870 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14871 written
|= ( 1 << 3 );
14872 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14878 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14879 written
|= ( 1 << 3 );
14880 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14884 abuf
-> written
= written
;
14889 /* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
14892 SEM_FN_NAME ( frvbf
, cckne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14894 #define FLD(f) abuf->fields.sfmt_cckeq.f
14895 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14896 int UNUSED written
= 0 ;
14897 IADDR UNUSED pc
= abuf
-> addr
;
14898 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14900 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
14901 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 )))) {
14904 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14905 written
|= ( 1 << 3 );
14906 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14911 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14912 written
|= ( 1 << 3 );
14913 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14919 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14920 written
|= ( 1 << 3 );
14921 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14925 abuf
-> written
= written
;
14930 /* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
14933 SEM_FN_NAME ( frvbf
, cckle
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14935 #define FLD(f) abuf->fields.sfmt_cckeq.f
14936 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14937 int UNUSED written
= 0 ;
14938 IADDR UNUSED pc
= abuf
-> addr
;
14939 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14941 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
14942 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 )), XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 2 ), 1 ))))) {
14945 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14946 written
|= ( 1 << 3 );
14947 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14952 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14953 written
|= ( 1 << 3 );
14954 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14960 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14961 written
|= ( 1 << 3 );
14962 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14966 abuf
-> written
= written
;
14971 /* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
14974 SEM_FN_NAME ( frvbf
, cckgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14976 #define FLD(f) abuf->fields.sfmt_cckeq.f
14977 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14978 int UNUSED written
= 0 ;
14979 IADDR UNUSED pc
= abuf
-> addr
;
14980 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14982 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
14983 if ( NOTBI ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 )), XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 2 ), 1 )))))) {
14986 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14987 written
|= ( 1 << 3 );
14988 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14993 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14994 written
|= ( 1 << 3 );
14995 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15001 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15002 written
|= ( 1 << 3 );
15003 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15007 abuf
-> written
= written
;
15012 /* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15015 SEM_FN_NAME ( frvbf
, ccklt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15017 #define FLD(f) abuf->fields.sfmt_cckeq.f
15018 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15019 int UNUSED written
= 0 ;
15020 IADDR UNUSED pc
= abuf
-> addr
;
15021 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15023 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15024 if ( XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 2 ), 1 )))) {
15027 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15028 written
|= ( 1 << 3 );
15029 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15034 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15035 written
|= ( 1 << 3 );
15036 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15042 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15043 written
|= ( 1 << 3 );
15044 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15048 abuf
-> written
= written
;
15053 /* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15056 SEM_FN_NAME ( frvbf
, cckge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15058 #define FLD(f) abuf->fields.sfmt_cckeq.f
15059 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15060 int UNUSED written
= 0 ;
15061 IADDR UNUSED pc
= abuf
-> addr
;
15062 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15064 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15065 if ( NOTBI ( XORBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 2 ), 1 ))))) {
15068 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15069 written
|= ( 1 << 3 );
15070 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15075 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15076 written
|= ( 1 << 3 );
15077 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15083 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15084 written
|= ( 1 << 3 );
15085 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15089 abuf
-> written
= written
;
15094 /* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15097 SEM_FN_NAME ( frvbf
, cckls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15099 #define FLD(f) abuf->fields.sfmt_cckeq.f
15100 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15101 int UNUSED written
= 0 ;
15102 IADDR UNUSED pc
= abuf
-> addr
;
15103 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15105 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15106 if ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 )))) {
15109 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15110 written
|= ( 1 << 3 );
15111 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15116 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15117 written
|= ( 1 << 3 );
15118 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15124 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15125 written
|= ( 1 << 3 );
15126 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15130 abuf
-> written
= written
;
15135 /* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15138 SEM_FN_NAME ( frvbf
, cckhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15140 #define FLD(f) abuf->fields.sfmt_cckeq.f
15141 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15142 int UNUSED written
= 0 ;
15143 IADDR UNUSED pc
= abuf
-> addr
;
15144 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15146 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15147 if ( NOTBI ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 ))))) {
15150 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15151 written
|= ( 1 << 3 );
15152 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15157 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15158 written
|= ( 1 << 3 );
15159 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15165 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15166 written
|= ( 1 << 3 );
15167 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15171 abuf
-> written
= written
;
15176 /* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15179 SEM_FN_NAME ( frvbf
, cckc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15181 #define FLD(f) abuf->fields.sfmt_cckeq.f
15182 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15183 int UNUSED written
= 0 ;
15184 IADDR UNUSED pc
= abuf
-> addr
;
15185 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15187 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15188 if ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 1 ))) {
15191 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15192 written
|= ( 1 << 3 );
15193 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15198 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15199 written
|= ( 1 << 3 );
15200 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15206 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15207 written
|= ( 1 << 3 );
15208 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15212 abuf
-> written
= written
;
15217 /* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15220 SEM_FN_NAME ( frvbf
, ccknc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15222 #define FLD(f) abuf->fields.sfmt_cckeq.f
15223 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15224 int UNUSED written
= 0 ;
15225 IADDR UNUSED pc
= abuf
-> addr
;
15226 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15228 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15229 if ( NOTBI ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 1 )))) {
15232 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15233 written
|= ( 1 << 3 );
15234 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15239 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15240 written
|= ( 1 << 3 );
15241 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15247 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15248 written
|= ( 1 << 3 );
15249 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15253 abuf
-> written
= written
;
15258 /* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15261 SEM_FN_NAME ( frvbf
, cckn
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15263 #define FLD(f) abuf->fields.sfmt_cckeq.f
15264 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15265 int UNUSED written
= 0 ;
15266 IADDR UNUSED pc
= abuf
-> addr
;
15267 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15269 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15270 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 8 ), 3 ))) {
15273 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15274 written
|= ( 1 << 3 );
15275 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15280 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15281 written
|= ( 1 << 3 );
15282 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15288 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15289 written
|= ( 1 << 3 );
15290 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15294 abuf
-> written
= written
;
15299 /* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15302 SEM_FN_NAME ( frvbf
, cckp
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15304 #define FLD(f) abuf->fields.sfmt_cckeq.f
15305 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15306 int UNUSED written
= 0 ;
15307 IADDR UNUSED pc
= abuf
-> addr
;
15308 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15310 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15311 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 8 ), 3 )))) {
15314 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15315 written
|= ( 1 << 3 );
15316 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15321 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15322 written
|= ( 1 << 3 );
15323 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15329 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15330 written
|= ( 1 << 3 );
15331 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15335 abuf
-> written
= written
;
15340 /* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15343 SEM_FN_NAME ( frvbf
, cckv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15345 #define FLD(f) abuf->fields.sfmt_cckeq.f
15346 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15347 int UNUSED written
= 0 ;
15348 IADDR UNUSED pc
= abuf
-> addr
;
15349 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15351 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15352 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 2 ), 1 ))) {
15355 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15356 written
|= ( 1 << 3 );
15357 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15362 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15363 written
|= ( 1 << 3 );
15364 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15370 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15371 written
|= ( 1 << 3 );
15372 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15376 abuf
-> written
= written
;
15381 /* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15384 SEM_FN_NAME ( frvbf
, ccknv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15386 #define FLD(f) abuf->fields.sfmt_cckeq.f
15387 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15388 int UNUSED written
= 0 ;
15389 IADDR UNUSED pc
= abuf
-> addr
;
15390 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15392 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15393 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 2 ), 1 )))) {
15396 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15397 written
|= ( 1 << 3 );
15398 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15403 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15404 written
|= ( 1 << 3 );
15405 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15411 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15412 written
|= ( 1 << 3 );
15413 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15417 abuf
-> written
= written
;
15422 /* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15425 SEM_FN_NAME ( frvbf
, cfckra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15427 #define FLD(f) abuf->fields.sfmt_cfckne.f
15428 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15429 int UNUSED written
= 0 ;
15430 IADDR UNUSED pc
= abuf
-> addr
;
15431 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15433 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15436 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15437 written
|= ( 1 << 2 );
15438 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15443 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15444 written
|= ( 1 << 2 );
15445 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15449 abuf
-> written
= written
;
15454 /* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15457 SEM_FN_NAME ( frvbf
, cfckno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15459 #define FLD(f) abuf->fields.sfmt_cfckne.f
15460 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15461 int UNUSED written
= 0 ;
15462 IADDR UNUSED pc
= abuf
-> addr
;
15463 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15465 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15468 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15469 written
|= ( 1 << 2 );
15470 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15475 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15476 written
|= ( 1 << 2 );
15477 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15481 abuf
-> written
= written
;
15486 /* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15489 SEM_FN_NAME ( frvbf
, cfckne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15491 #define FLD(f) abuf->fields.sfmt_cfckne.f
15492 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15493 int UNUSED written
= 0 ;
15494 IADDR UNUSED pc
= abuf
-> addr
;
15495 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15497 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15498 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 ))))) {
15501 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15502 written
|= ( 1 << 3 );
15503 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15508 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15509 written
|= ( 1 << 3 );
15510 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15516 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15517 written
|= ( 1 << 3 );
15518 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15522 abuf
-> written
= written
;
15527 /* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15530 SEM_FN_NAME ( frvbf
, cfckeq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15532 #define FLD(f) abuf->fields.sfmt_cfckne.f
15533 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15534 int UNUSED written
= 0 ;
15535 IADDR UNUSED pc
= abuf
-> addr
;
15536 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15538 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15539 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 ))) {
15542 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15543 written
|= ( 1 << 3 );
15544 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15549 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15550 written
|= ( 1 << 3 );
15551 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15557 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15558 written
|= ( 1 << 3 );
15559 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15563 abuf
-> written
= written
;
15568 /* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15571 SEM_FN_NAME ( frvbf
, cfcklg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15573 #define FLD(f) abuf->fields.sfmt_cfckne.f
15574 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15575 int UNUSED written
= 0 ;
15576 IADDR UNUSED pc
= abuf
-> addr
;
15577 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15579 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15580 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 )))) {
15583 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15584 written
|= ( 1 << 3 );
15585 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15590 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15591 written
|= ( 1 << 3 );
15592 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15598 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15599 written
|= ( 1 << 3 );
15600 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15604 abuf
-> written
= written
;
15609 /* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15612 SEM_FN_NAME ( frvbf
, cfckue
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15614 #define FLD(f) abuf->fields.sfmt_cfckne.f
15615 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15616 int UNUSED written
= 0 ;
15617 IADDR UNUSED pc
= abuf
-> addr
;
15618 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15620 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15621 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 )))) {
15624 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15625 written
|= ( 1 << 3 );
15626 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15631 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15632 written
|= ( 1 << 3 );
15633 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15639 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15640 written
|= ( 1 << 3 );
15641 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15645 abuf
-> written
= written
;
15650 /* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15653 SEM_FN_NAME ( frvbf
, cfckul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15655 #define FLD(f) abuf->fields.sfmt_cfckne.f
15656 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15657 int UNUSED written
= 0 ;
15658 IADDR UNUSED pc
= abuf
-> addr
;
15659 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15661 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15662 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 )))) {
15665 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15666 written
|= ( 1 << 3 );
15667 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15672 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15673 written
|= ( 1 << 3 );
15674 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15680 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15681 written
|= ( 1 << 3 );
15682 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15686 abuf
-> written
= written
;
15691 /* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15694 SEM_FN_NAME ( frvbf
, cfckge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15696 #define FLD(f) abuf->fields.sfmt_cfckne.f
15697 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15698 int UNUSED written
= 0 ;
15699 IADDR UNUSED pc
= abuf
-> addr
;
15700 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15702 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15703 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 )))) {
15706 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15707 written
|= ( 1 << 3 );
15708 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15713 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15714 written
|= ( 1 << 3 );
15715 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15721 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15722 written
|= ( 1 << 3 );
15723 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15727 abuf
-> written
= written
;
15732 /* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15735 SEM_FN_NAME ( frvbf
, cfcklt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15737 #define FLD(f) abuf->fields.sfmt_cfckne.f
15738 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15739 int UNUSED written
= 0 ;
15740 IADDR UNUSED pc
= abuf
-> addr
;
15741 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15743 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15744 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 ))) {
15747 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15748 written
|= ( 1 << 3 );
15749 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15754 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15755 written
|= ( 1 << 3 );
15756 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15762 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15763 written
|= ( 1 << 3 );
15764 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15768 abuf
-> written
= written
;
15773 /* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15776 SEM_FN_NAME ( frvbf
, cfckuge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15778 #define FLD(f) abuf->fields.sfmt_cfckne.f
15779 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15780 int UNUSED written
= 0 ;
15781 IADDR UNUSED pc
= abuf
-> addr
;
15782 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15784 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15785 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 ))))) {
15788 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15789 written
|= ( 1 << 3 );
15790 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15795 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15796 written
|= ( 1 << 3 );
15797 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15803 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15804 written
|= ( 1 << 3 );
15805 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15809 abuf
-> written
= written
;
15814 /* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
15817 SEM_FN_NAME ( frvbf
, cfckug
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15819 #define FLD(f) abuf->fields.sfmt_cfckne.f
15820 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15821 int UNUSED written
= 0 ;
15822 IADDR UNUSED pc
= abuf
-> addr
;
15823 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15825 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15826 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 )))) {
15829 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15830 written
|= ( 1 << 3 );
15831 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15836 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15837 written
|= ( 1 << 3 );
15838 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15844 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15845 written
|= ( 1 << 3 );
15846 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15850 abuf
-> written
= written
;
15855 /* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
15858 SEM_FN_NAME ( frvbf
, cfckle
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15860 #define FLD(f) abuf->fields.sfmt_cfckne.f
15861 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15862 int UNUSED written
= 0 ;
15863 IADDR UNUSED pc
= abuf
-> addr
;
15864 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15866 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15867 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 )))) {
15870 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15871 written
|= ( 1 << 3 );
15872 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15877 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15878 written
|= ( 1 << 3 );
15879 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15885 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15886 written
|= ( 1 << 3 );
15887 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15891 abuf
-> written
= written
;
15896 /* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15899 SEM_FN_NAME ( frvbf
, cfckgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15901 #define FLD(f) abuf->fields.sfmt_cfckne.f
15902 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15903 int UNUSED written
= 0 ;
15904 IADDR UNUSED pc
= abuf
-> addr
;
15905 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15907 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15908 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 ))) {
15911 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15912 written
|= ( 1 << 3 );
15913 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15918 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15919 written
|= ( 1 << 3 );
15920 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15926 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15927 written
|= ( 1 << 3 );
15928 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15932 abuf
-> written
= written
;
15937 /* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
15940 SEM_FN_NAME ( frvbf
, cfckule
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15942 #define FLD(f) abuf->fields.sfmt_cfckne.f
15943 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15944 int UNUSED written
= 0 ;
15945 IADDR UNUSED pc
= abuf
-> addr
;
15946 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15948 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15949 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 ))))) {
15952 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15953 written
|= ( 1 << 3 );
15954 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15959 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15960 written
|= ( 1 << 3 );
15961 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15967 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15968 written
|= ( 1 << 3 );
15969 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15973 abuf
-> written
= written
;
15978 /* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
15981 SEM_FN_NAME ( frvbf
, cfcku
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15983 #define FLD(f) abuf->fields.sfmt_cfckne.f
15984 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15985 int UNUSED written
= 0 ;
15986 IADDR UNUSED pc
= abuf
-> addr
;
15987 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15989 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15990 if ( TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 ))) {
15993 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15994 written
|= ( 1 << 3 );
15995 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
16000 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
16001 written
|= ( 1 << 3 );
16002 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
16008 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
16009 written
|= ( 1 << 3 );
16010 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
16014 abuf
-> written
= written
;
16019 /* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16022 SEM_FN_NAME ( frvbf
, cfcko
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16024 #define FLD(f) abuf->fields.sfmt_cfckne.f
16025 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16026 int UNUSED written
= 0 ;
16027 IADDR UNUSED pc
= abuf
-> addr
;
16028 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16030 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
16031 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 )), ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 ))))) {
16034 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
16035 written
|= ( 1 << 3 );
16036 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
16041 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
16042 written
|= ( 1 << 3 );
16043 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
16049 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
16050 written
|= ( 1 << 3 );
16051 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
16055 abuf
-> written
= written
;
16060 /* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16063 SEM_FN_NAME ( frvbf
, cjmpl
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16065 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16066 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16067 int UNUSED written
= 0 ;
16068 IADDR UNUSED pc
= abuf
-> addr
;
16069 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16071 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
16073 if ( EQSI ( FLD ( f_LI
), 1 )) {
16074 frvbf_set_write_next_vliw_addr_to_LR ( current_cpu
, 1 );
16077 USI opval
= ANDSI ( ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), 0xfffffffc );
16078 sim_queue_pc_write ( current_cpu
, opval
);
16079 written
|= ( 1 << 6 );
16080 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
16082 frvbf_model_branch ( current_cpu
, pc
, 2 );
16086 abuf
-> written
= written
;
16091 /* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16094 SEM_FN_NAME ( frvbf
, ccalll
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16096 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16097 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16098 int UNUSED written
= 0 ;
16099 IADDR UNUSED pc
= abuf
-> addr
;
16100 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16102 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
16104 if ( EQSI ( FLD ( f_LI
), 1 )) {
16105 frvbf_set_write_next_vliw_addr_to_LR ( current_cpu
, 1 );
16108 USI opval
= ANDSI ( ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), 0xfffffffc );
16109 sim_queue_pc_write ( current_cpu
, opval
);
16110 written
|= ( 1 << 6 );
16111 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
16113 frvbf_model_branch ( current_cpu
, pc
, 2 );
16117 abuf
-> written
= written
;
16122 /* ici: ici$pack @($GRi,$GRj) */
16125 SEM_FN_NAME ( frvbf
, ici
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16127 #define FLD(f) abuf->fields.sfmt_icpl.f
16128 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16129 int UNUSED written
= 0 ;
16130 IADDR UNUSED pc
= abuf
-> addr
;
16131 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16133 frvbf_insn_cache_invalidate ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), 0 );
16139 /* dci: dci$pack @($GRi,$GRj) */
16142 SEM_FN_NAME ( frvbf
, dci
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16144 #define FLD(f) abuf->fields.sfmt_icpl.f
16145 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16146 int UNUSED written
= 0 ;
16147 IADDR UNUSED pc
= abuf
-> addr
;
16148 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16150 frvbf_data_cache_invalidate ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), 0 );
16156 /* icei: icei$pack @($GRi,$GRj),$ae */
16159 SEM_FN_NAME ( frvbf
, icei
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16161 #define FLD(f) abuf->fields.sfmt_icei.f
16162 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16163 int UNUSED written
= 0 ;
16164 IADDR UNUSED pc
= abuf
-> addr
;
16165 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16167 if ( EQSI ( FLD ( f_ae
), 0 )) {
16168 frvbf_insn_cache_invalidate ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), - 1 );
16170 frvbf_insn_cache_invalidate ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), FLD ( f_ae
));
16177 /* dcei: dcei$pack @($GRi,$GRj),$ae */
16180 SEM_FN_NAME ( frvbf
, dcei
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16182 #define FLD(f) abuf->fields.sfmt_icei.f
16183 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16184 int UNUSED written
= 0 ;
16185 IADDR UNUSED pc
= abuf
-> addr
;
16186 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16188 if ( EQSI ( FLD ( f_ae
), 0 )) {
16189 frvbf_data_cache_invalidate ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), - 1 );
16191 frvbf_data_cache_invalidate ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), FLD ( f_ae
));
16198 /* dcf: dcf$pack @($GRi,$GRj) */
16201 SEM_FN_NAME ( frvbf
, dcf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16203 #define FLD(f) abuf->fields.sfmt_icpl.f
16204 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16205 int UNUSED written
= 0 ;
16206 IADDR UNUSED pc
= abuf
-> addr
;
16207 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16209 frvbf_data_cache_flush ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), 0 );
16215 /* dcef: dcef$pack @($GRi,$GRj),$ae */
16218 SEM_FN_NAME ( frvbf
, dcef
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16220 #define FLD(f) abuf->fields.sfmt_icei.f
16221 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16222 int UNUSED written
= 0 ;
16223 IADDR UNUSED pc
= abuf
-> addr
;
16224 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16226 if ( EQSI ( FLD ( f_ae
), 0 )) {
16227 frvbf_data_cache_flush ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), - 1 );
16229 frvbf_data_cache_flush ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), FLD ( f_ae
));
16236 /* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16239 SEM_FN_NAME ( frvbf
, witlb
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16241 #define FLD(f) abuf->fields.fmt_empty.f
16242 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16243 int UNUSED written
= 0 ;
16244 IADDR UNUSED pc
= abuf
-> addr
;
16245 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16247 (( void ) 0 ); /*nop*/
16253 /* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16256 SEM_FN_NAME ( frvbf
, wdtlb
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16258 #define FLD(f) abuf->fields.fmt_empty.f
16259 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16260 int UNUSED written
= 0 ;
16261 IADDR UNUSED pc
= abuf
-> addr
;
16262 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16264 (( void ) 0 ); /*nop*/
16270 /* itlbi: itlbi$pack @($GRi,$GRj) */
16273 SEM_FN_NAME ( frvbf
, itlbi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16275 #define FLD(f) abuf->fields.fmt_empty.f
16276 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16277 int UNUSED written
= 0 ;
16278 IADDR UNUSED pc
= abuf
-> addr
;
16279 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16281 (( void ) 0 ); /*nop*/
16287 /* dtlbi: dtlbi$pack @($GRi,$GRj) */
16290 SEM_FN_NAME ( frvbf
, dtlbi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16292 #define FLD(f) abuf->fields.fmt_empty.f
16293 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16294 int UNUSED written
= 0 ;
16295 IADDR UNUSED pc
= abuf
-> addr
;
16296 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16298 (( void ) 0 ); /*nop*/
16304 /* icpl: icpl$pack $GRi,$GRj,$lock */
16307 SEM_FN_NAME ( frvbf
, icpl
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16309 #define FLD(f) abuf->fields.sfmt_icpl.f
16310 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16311 int UNUSED written
= 0 ;
16312 IADDR UNUSED pc
= abuf
-> addr
;
16313 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16315 frvbf_insn_cache_preload ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), FLD ( f_lock
));
16321 /* dcpl: dcpl$pack $GRi,$GRj,$lock */
16324 SEM_FN_NAME ( frvbf
, dcpl
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16326 #define FLD(f) abuf->fields.sfmt_icpl.f
16327 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16328 int UNUSED written
= 0 ;
16329 IADDR UNUSED pc
= abuf
-> addr
;
16330 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16332 frvbf_data_cache_preload ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), FLD ( f_lock
));
16338 /* icul: icul$pack $GRi */
16341 SEM_FN_NAME ( frvbf
, icul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16343 #define FLD(f) abuf->fields.sfmt_jmpil.f
16344 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16345 int UNUSED written
= 0 ;
16346 IADDR UNUSED pc
= abuf
-> addr
;
16347 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16349 frvbf_insn_cache_unlock ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)));
16355 /* dcul: dcul$pack $GRi */
16358 SEM_FN_NAME ( frvbf
, dcul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16360 #define FLD(f) abuf->fields.sfmt_jmpil.f
16361 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16362 int UNUSED written
= 0 ;
16363 IADDR UNUSED pc
= abuf
-> addr
;
16364 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16366 frvbf_data_cache_unlock ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)));
16372 /* bar: bar$pack */
16375 SEM_FN_NAME ( frvbf
, bar
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16377 #define FLD(f) abuf->fields.fmt_empty.f
16378 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16379 int UNUSED written
= 0 ;
16380 IADDR UNUSED pc
= abuf
-> addr
;
16381 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16383 (( void ) 0 ); /*nop*/
16389 /* membar: membar$pack */
16392 SEM_FN_NAME ( frvbf
, membar
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16394 #define FLD(f) abuf->fields.fmt_empty.f
16395 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16396 int UNUSED written
= 0 ;
16397 IADDR UNUSED pc
= abuf
-> addr
;
16398 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16400 (( void ) 0 ); /*nop*/
16406 /* lrai: lrai$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
16409 SEM_FN_NAME ( frvbf
, lrai
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16411 #define FLD(f) abuf->fields.fmt_empty.f
16412 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16413 int UNUSED written
= 0 ;
16414 IADDR UNUSED pc
= abuf
-> addr
;
16415 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16417 (( void ) 0 ); /*nop*/
16423 /* lrad: lrad$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
16426 SEM_FN_NAME ( frvbf
, lrad
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16428 #define FLD(f) abuf->fields.fmt_empty.f
16429 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16430 int UNUSED written
= 0 ;
16431 IADDR UNUSED pc
= abuf
-> addr
;
16432 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16434 (( void ) 0 ); /*nop*/
16440 /* tlbpr: tlbpr$pack $GRi,$GRj,$TLBPRopx,$TLBPRL */
16443 SEM_FN_NAME ( frvbf
, tlbpr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16445 #define FLD(f) abuf->fields.fmt_empty.f
16446 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16447 int UNUSED written
= 0 ;
16448 IADDR UNUSED pc
= abuf
-> addr
;
16449 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16451 (( void ) 0 ); /*nop*/
16457 /* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16460 SEM_FN_NAME ( frvbf
, cop1
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16462 #define FLD(f) abuf->fields.fmt_empty.f
16463 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16464 int UNUSED written
= 0 ;
16465 IADDR UNUSED pc
= abuf
-> addr
;
16466 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16468 (( void ) 0 ); /*nop*/
16474 /* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16477 SEM_FN_NAME ( frvbf
, cop2
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16479 #define FLD(f) abuf->fields.fmt_empty.f
16480 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16481 int UNUSED written
= 0 ;
16482 IADDR UNUSED pc
= abuf
-> addr
;
16483 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16485 (( void ) 0 ); /*nop*/
16491 /* clrgr: clrgr$pack $GRk */
16494 SEM_FN_NAME ( frvbf
, clrgr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16496 #define FLD(f) abuf->fields.sfmt_swapi.f
16497 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16498 int UNUSED written
= 0 ;
16499 IADDR UNUSED pc
= abuf
-> addr
;
16500 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16503 frv_ref_SI ( GET_H_GR ( FLD ( f_GRk
)));
16504 frvbf_clear_ne_flags ( current_cpu
, FLD ( f_GRk
), 0 );
16511 /* clrfr: clrfr$pack $FRk */
16514 SEM_FN_NAME ( frvbf
, clrfr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16516 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16517 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16518 int UNUSED written
= 0 ;
16519 IADDR UNUSED pc
= abuf
-> addr
;
16520 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16523 frv_ref_SI ( GET_H_FR ( FLD ( f_FRk
)));
16524 frvbf_clear_ne_flags ( current_cpu
, FLD ( f_FRk
), 1 );
16531 /* clrga: clrga$pack */
16534 SEM_FN_NAME ( frvbf
, clrga
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16536 #define FLD(f) abuf->fields.fmt_empty.f
16537 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16538 int UNUSED written
= 0 ;
16539 IADDR UNUSED pc
= abuf
-> addr
;
16540 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16542 frvbf_clear_ne_flags ( current_cpu
, - 1 , 0 );
16548 /* clrfa: clrfa$pack */
16551 SEM_FN_NAME ( frvbf
, clrfa
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16553 #define FLD(f) abuf->fields.fmt_empty.f
16554 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16555 int UNUSED written
= 0 ;
16556 IADDR UNUSED pc
= abuf
-> addr
;
16557 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16559 frvbf_clear_ne_flags ( current_cpu
, - 1 , 1 );
16565 /* commitgr: commitgr$pack $GRk */
16568 SEM_FN_NAME ( frvbf
, commitgr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16570 #define FLD(f) abuf->fields.sfmt_setlos.f
16571 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16572 int UNUSED written
= 0 ;
16573 IADDR UNUSED pc
= abuf
-> addr
;
16574 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16576 frvbf_commit ( current_cpu
, FLD ( f_GRk
), 0 );
16582 /* commitfr: commitfr$pack $FRk */
16585 SEM_FN_NAME ( frvbf
, commitfr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16587 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16588 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16589 int UNUSED written
= 0 ;
16590 IADDR UNUSED pc
= abuf
-> addr
;
16591 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16593 frvbf_commit ( current_cpu
, FLD ( f_FRk
), 1 );
16599 /* commitga: commitga$pack */
16602 SEM_FN_NAME ( frvbf
, commitga
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16604 #define FLD(f) abuf->fields.fmt_empty.f
16605 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16606 int UNUSED written
= 0 ;
16607 IADDR UNUSED pc
= abuf
-> addr
;
16608 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16610 frvbf_commit ( current_cpu
, - 1 , 0 );
16616 /* commitfa: commitfa$pack */
16619 SEM_FN_NAME ( frvbf
, commitfa
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16621 #define FLD(f) abuf->fields.fmt_empty.f
16622 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16623 int UNUSED written
= 0 ;
16624 IADDR UNUSED pc
= abuf
-> addr
;
16625 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16627 frvbf_commit ( current_cpu
, - 1 , 1 );
16633 /* fitos: fitos$pack $FRintj,$FRk */
16636 SEM_FN_NAME ( frvbf
, fitos
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16638 #define FLD(f) abuf->fields.sfmt_fditos.f
16639 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16640 int UNUSED written
= 0 ;
16641 IADDR UNUSED pc
= abuf
-> addr
;
16642 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16645 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsisf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_INT ( FLD ( f_FRj
)));
16646 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
16647 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16654 /* fstoi: fstoi$pack $FRj,$FRintk */
16657 SEM_FN_NAME ( frvbf
, fstoi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16659 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16660 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16661 int UNUSED written
= 0 ;
16662 IADDR UNUSED pc
= abuf
-> addr
;
16663 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16666 SI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixsfsi ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
16667 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
16668 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16675 /* fitod: fitod$pack $FRintj,$FRdoublek */
16678 SEM_FN_NAME ( frvbf
, fitod
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16680 #define FLD(f) abuf->fields.sfmt_fitod.f
16681 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16682 int UNUSED written
= 0 ;
16683 IADDR UNUSED pc
= abuf
-> addr
;
16684 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16687 DF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsidf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_INT ( FLD ( f_FRj
)));
16688 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
16689 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
16696 /* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16699 SEM_FN_NAME ( frvbf
, fdtoi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16701 #define FLD(f) abuf->fields.sfmt_fdtoi.f
16702 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16703 int UNUSED written
= 0 ;
16704 IADDR UNUSED pc
= abuf
-> addr
;
16705 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16708 SI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixdfsi ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_DOUBLE ( FLD ( f_FRj
)));
16709 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
16710 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16717 /* fditos: fditos$pack $FRintj,$FRk */
16720 SEM_FN_NAME ( frvbf
, fditos
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16722 #define FLD(f) abuf->fields.sfmt_fditos.f
16723 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16724 int UNUSED written
= 0 ;
16725 IADDR UNUSED pc
= abuf
-> addr
;
16726 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16730 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsisf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_INT ( FLD ( f_FRj
)));
16731 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
16732 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16735 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsisf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_INT ((( FLD ( f_FRj
)) + ( 1 ))));
16736 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
16737 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16745 /* fdstoi: fdstoi$pack $FRj,$FRintk */
16748 SEM_FN_NAME ( frvbf
, fdstoi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16750 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16751 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16752 int UNUSED written
= 0 ;
16753 IADDR UNUSED pc
= abuf
-> addr
;
16754 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16758 SI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixsfsi ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
16759 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
16760 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16763 USI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixsfsi ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
16764 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
16765 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16773 /* nfditos: nfditos$pack $FRintj,$FRk */
16776 SEM_FN_NAME ( frvbf
, nfditos
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16778 #define FLD(f) abuf->fields.sfmt_fditos.f
16779 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16780 int UNUSED written
= 0 ;
16781 IADDR UNUSED pc
= abuf
-> addr
;
16782 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16785 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
16787 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsisf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_INT ( FLD ( f_FRj
)));
16788 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
16789 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16791 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
16793 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsisf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_INT ((( FLD ( f_FRj
)) + ( 1 ))));
16794 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
16795 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16803 /* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16806 SEM_FN_NAME ( frvbf
, nfdstoi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16808 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16809 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16810 int UNUSED written
= 0 ;
16811 IADDR UNUSED pc
= abuf
-> addr
;
16812 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16815 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
16817 SI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixsfsi ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
16818 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
16819 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16821 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
16823 USI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixsfsi ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
16824 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
16825 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16833 /* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
16836 SEM_FN_NAME ( frvbf
, cfitos
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16838 #define FLD(f) abuf->fields.sfmt_cfitos.f
16839 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16840 int UNUSED written
= 0 ;
16841 IADDR UNUSED pc
= abuf
-> addr
;
16842 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16844 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
16846 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsisf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_INT ( FLD ( f_FRj
)));
16847 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
16848 written
|= ( 1 << 3 );
16849 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16853 abuf
-> written
= written
;
16858 /* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
16861 SEM_FN_NAME ( frvbf
, cfstoi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16863 #define FLD(f) abuf->fields.sfmt_cfstoi.f
16864 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16865 int UNUSED written
= 0 ;
16866 IADDR UNUSED pc
= abuf
-> addr
;
16867 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16869 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
16871 SI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixsfsi ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
16872 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
16873 written
|= ( 1 << 3 );
16874 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16878 abuf
-> written
= written
;
16883 /* nfitos: nfitos$pack $FRintj,$FRk */
16886 SEM_FN_NAME ( frvbf
, nfitos
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16888 #define FLD(f) abuf->fields.sfmt_fditos.f
16889 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16890 int UNUSED written
= 0 ;
16891 IADDR UNUSED pc
= abuf
-> addr
;
16892 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16895 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
16897 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsisf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_INT ( FLD ( f_FRj
)));
16898 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
16899 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16907 /* nfstoi: nfstoi$pack $FRj,$FRintk */
16910 SEM_FN_NAME ( frvbf
, nfstoi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16912 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16913 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16914 int UNUSED written
= 0 ;
16915 IADDR UNUSED pc
= abuf
-> addr
;
16916 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16919 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
16921 SI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixsfsi ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
16922 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
16923 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16931 /* fmovs: fmovs$pack $FRj,$FRk */
16934 SEM_FN_NAME ( frvbf
, fmovs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16936 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16937 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16938 int UNUSED written
= 0 ;
16939 IADDR UNUSED pc
= abuf
-> addr
;
16940 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16943 SF opval
= GET_H_FR ( FLD ( f_FRj
));
16944 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
16945 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16952 /* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
16955 SEM_FN_NAME ( frvbf
, fmovd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16957 #define FLD(f) abuf->fields.sfmt_fmaddd.f
16958 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16959 int UNUSED written
= 0 ;
16960 IADDR UNUSED pc
= abuf
-> addr
;
16961 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16964 DF opval
= GET_H_FR_DOUBLE ( FLD ( f_FRj
));
16965 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
16966 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
16973 /* fdmovs: fdmovs$pack $FRj,$FRk */
16976 SEM_FN_NAME ( frvbf
, fdmovs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16978 #define FLD(f) abuf->fields.sfmt_fdmadds.f
16979 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16980 int UNUSED written
= 0 ;
16981 IADDR UNUSED pc
= abuf
-> addr
;
16982 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16986 SF opval
= GET_H_FR ( FLD ( f_FRj
));
16987 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
16988 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16991 SF opval
= GET_H_FR ((( FLD ( f_FRj
)) + ( 1 )));
16992 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
16993 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17001 /* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
17004 SEM_FN_NAME ( frvbf
, cfmovs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17006 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17007 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17008 int UNUSED written
= 0 ;
17009 IADDR UNUSED pc
= abuf
-> addr
;
17010 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17012 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17014 SF opval
= GET_H_FR ( FLD ( f_FRj
));
17015 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17016 written
|= ( 1 << 3 );
17017 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17021 abuf
-> written
= written
;
17026 /* fnegs: fnegs$pack $FRj,$FRk */
17029 SEM_FN_NAME ( frvbf
, fnegs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17031 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17032 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17033 int UNUSED written
= 0 ;
17034 IADDR UNUSED pc
= abuf
-> addr
;
17035 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17038 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> negsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17039 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17040 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17047 /* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17050 SEM_FN_NAME ( frvbf
, fnegd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17052 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17053 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17054 int UNUSED written
= 0 ;
17055 IADDR UNUSED pc
= abuf
-> addr
;
17056 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17059 DF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> negdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_DOUBLE ( FLD ( f_FRj
)));
17060 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
17061 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
17068 /* fdnegs: fdnegs$pack $FRj,$FRk */
17071 SEM_FN_NAME ( frvbf
, fdnegs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17073 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17074 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17075 int UNUSED written
= 0 ;
17076 IADDR UNUSED pc
= abuf
-> addr
;
17077 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17081 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> negsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17082 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17083 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17086 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> negsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
17087 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
17088 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17096 /* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17099 SEM_FN_NAME ( frvbf
, cfnegs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17101 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17102 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17103 int UNUSED written
= 0 ;
17104 IADDR UNUSED pc
= abuf
-> addr
;
17105 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17107 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17109 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> negsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17110 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17111 written
|= ( 1 << 3 );
17112 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17116 abuf
-> written
= written
;
17121 /* fabss: fabss$pack $FRj,$FRk */
17124 SEM_FN_NAME ( frvbf
, fabss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17126 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17127 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17128 int UNUSED written
= 0 ;
17129 IADDR UNUSED pc
= abuf
-> addr
;
17130 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17133 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> abssf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17134 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17135 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17142 /* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17145 SEM_FN_NAME ( frvbf
, fabsd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17147 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17148 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17149 int UNUSED written
= 0 ;
17150 IADDR UNUSED pc
= abuf
-> addr
;
17151 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17154 DF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> absdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_DOUBLE ( FLD ( f_FRj
)));
17155 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
17156 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
17163 /* fdabss: fdabss$pack $FRj,$FRk */
17166 SEM_FN_NAME ( frvbf
, fdabss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17168 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17169 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17170 int UNUSED written
= 0 ;
17171 IADDR UNUSED pc
= abuf
-> addr
;
17172 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17176 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> abssf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17177 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17178 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17181 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> abssf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
17182 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
17183 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17191 /* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17194 SEM_FN_NAME ( frvbf
, cfabss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17196 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17197 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17198 int UNUSED written
= 0 ;
17199 IADDR UNUSED pc
= abuf
-> addr
;
17200 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17202 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17204 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> abssf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17205 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17206 written
|= ( 1 << 3 );
17207 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17211 abuf
-> written
= written
;
17216 /* fsqrts: fsqrts$pack $FRj,$FRk */
17219 SEM_FN_NAME ( frvbf
, fsqrts
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17221 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17222 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17223 int UNUSED written
= 0 ;
17224 IADDR UNUSED pc
= abuf
-> addr
;
17225 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17228 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17229 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17230 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17237 /* fdsqrts: fdsqrts$pack $FRj,$FRk */
17240 SEM_FN_NAME ( frvbf
, fdsqrts
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17242 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17243 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17244 int UNUSED written
= 0 ;
17245 IADDR UNUSED pc
= abuf
-> addr
;
17246 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17250 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17251 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17252 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17255 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
17256 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
17257 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17265 /* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17268 SEM_FN_NAME ( frvbf
, nfdsqrts
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17270 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17271 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17272 int UNUSED written
= 0 ;
17273 IADDR UNUSED pc
= abuf
-> addr
;
17274 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17277 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
17279 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17280 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17281 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17283 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
17285 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
17286 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
17287 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17295 /* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17298 SEM_FN_NAME ( frvbf
, fsqrtd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17300 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17301 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17302 int UNUSED written
= 0 ;
17303 IADDR UNUSED pc
= abuf
-> addr
;
17304 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17307 DF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_DOUBLE ( FLD ( f_FRj
)));
17308 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
17309 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
17316 /* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17319 SEM_FN_NAME ( frvbf
, cfsqrts
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17321 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17322 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17323 int UNUSED written
= 0 ;
17324 IADDR UNUSED pc
= abuf
-> addr
;
17325 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17327 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17329 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17330 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17331 written
|= ( 1 << 3 );
17332 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17336 abuf
-> written
= written
;
17341 /* nfsqrts: nfsqrts$pack $FRj,$FRk */
17344 SEM_FN_NAME ( frvbf
, nfsqrts
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17346 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17347 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17348 int UNUSED written
= 0 ;
17349 IADDR UNUSED pc
= abuf
-> addr
;
17350 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17353 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
17355 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17356 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17357 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17365 /* fadds: fadds$pack $FRi,$FRj,$FRk */
17368 SEM_FN_NAME ( frvbf
, fadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17370 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17371 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17372 int UNUSED written
= 0 ;
17373 IADDR UNUSED pc
= abuf
-> addr
;
17374 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17377 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
17378 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17379 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17386 /* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17389 SEM_FN_NAME ( frvbf
, fsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17391 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17392 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17393 int UNUSED written
= 0 ;
17394 IADDR UNUSED pc
= abuf
-> addr
;
17395 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17398 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
17399 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17400 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17407 /* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17410 SEM_FN_NAME ( frvbf
, fmuls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17412 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17413 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17414 int UNUSED written
= 0 ;
17415 IADDR UNUSED pc
= abuf
-> addr
;
17416 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17419 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
17420 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17421 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17428 /* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17431 SEM_FN_NAME ( frvbf
, fdivs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17433 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17434 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17435 int UNUSED written
= 0 ;
17436 IADDR UNUSED pc
= abuf
-> addr
;
17437 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17440 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> divsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
17441 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17442 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17449 /* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17452 SEM_FN_NAME ( frvbf
, faddd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17454 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17455 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17456 int UNUSED written
= 0 ;
17457 IADDR UNUSED pc
= abuf
-> addr
;
17458 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17461 DF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> adddf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_DOUBLE ( FLD ( f_FRi
)), GET_H_FR_DOUBLE ( FLD ( f_FRj
)));
17462 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
17463 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
17470 /* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17473 SEM_FN_NAME ( frvbf
, fsubd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17475 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17476 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17477 int UNUSED written
= 0 ;
17478 IADDR UNUSED pc
= abuf
-> addr
;
17479 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17482 DF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_DOUBLE ( FLD ( f_FRi
)), GET_H_FR_DOUBLE ( FLD ( f_FRj
)));
17483 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
17484 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
17491 /* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17494 SEM_FN_NAME ( frvbf
, fmuld
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17496 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17497 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17498 int UNUSED written
= 0 ;
17499 IADDR UNUSED pc
= abuf
-> addr
;
17500 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17503 DF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> muldf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_DOUBLE ( FLD ( f_FRi
)), GET_H_FR_DOUBLE ( FLD ( f_FRj
)));
17504 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
17505 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
17512 /* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17515 SEM_FN_NAME ( frvbf
, fdivd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17517 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17518 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17519 int UNUSED written
= 0 ;
17520 IADDR UNUSED pc
= abuf
-> addr
;
17521 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17524 DF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> divdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_DOUBLE ( FLD ( f_FRi
)), GET_H_FR_DOUBLE ( FLD ( f_FRj
)));
17525 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
17526 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
17533 /* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17536 SEM_FN_NAME ( frvbf
, cfadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17538 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17539 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17540 int UNUSED written
= 0 ;
17541 IADDR UNUSED pc
= abuf
-> addr
;
17542 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17544 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17546 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
17547 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17548 written
|= ( 1 << 4 );
17549 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17553 abuf
-> written
= written
;
17558 /* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17561 SEM_FN_NAME ( frvbf
, cfsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17563 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17564 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17565 int UNUSED written
= 0 ;
17566 IADDR UNUSED pc
= abuf
-> addr
;
17567 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17569 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17571 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
17572 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17573 written
|= ( 1 << 4 );
17574 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17578 abuf
-> written
= written
;
17583 /* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17586 SEM_FN_NAME ( frvbf
, cfmuls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17588 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17589 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17590 int UNUSED written
= 0 ;
17591 IADDR UNUSED pc
= abuf
-> addr
;
17592 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17594 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17596 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
17597 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17598 written
|= ( 1 << 4 );
17599 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17603 abuf
-> written
= written
;
17608 /* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17611 SEM_FN_NAME ( frvbf
, cfdivs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17613 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17614 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17615 int UNUSED written
= 0 ;
17616 IADDR UNUSED pc
= abuf
-> addr
;
17617 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17619 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17621 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> divsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
17622 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17623 written
|= ( 1 << 4 );
17624 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17628 abuf
-> written
= written
;
17633 /* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17636 SEM_FN_NAME ( frvbf
, nfadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17638 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17639 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17640 int UNUSED written
= 0 ;
17641 IADDR UNUSED pc
= abuf
-> addr
;
17642 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17645 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
17647 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
17648 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17649 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17657 /* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17660 SEM_FN_NAME ( frvbf
, nfsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17662 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17663 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17664 int UNUSED written
= 0 ;
17665 IADDR UNUSED pc
= abuf
-> addr
;
17666 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17669 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
17671 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
17672 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17673 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17681 /* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17684 SEM_FN_NAME ( frvbf
, nfmuls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17686 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17687 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17688 int UNUSED written
= 0 ;
17689 IADDR UNUSED pc
= abuf
-> addr
;
17690 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17693 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
17695 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
17696 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17697 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17705 /* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17708 SEM_FN_NAME ( frvbf
, nfdivs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17710 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17711 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17712 int UNUSED written
= 0 ;
17713 IADDR UNUSED pc
= abuf
-> addr
;
17714 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17717 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
17719 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> divsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
17720 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17721 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17729 /* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17732 SEM_FN_NAME ( frvbf
, fcmps
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17734 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17735 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17736 int UNUSED written
= 0 ;
17737 IADDR UNUSED pc
= abuf
-> addr
;
17738 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17740 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> gtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)))) {
17743 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17744 written
|= ( 1 << 2 );
17745 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17748 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> eqsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)))) {
17751 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17752 written
|= ( 1 << 2 );
17753 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17756 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> ltsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)))) {
17759 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17760 written
|= ( 1 << 2 );
17761 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17766 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17767 written
|= ( 1 << 2 );
17768 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17774 abuf
-> written
= written
;
17779 /* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17782 SEM_FN_NAME ( frvbf
, fcmpd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17784 #define FLD(f) abuf->fields.sfmt_fcmpd.f
17785 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17786 int UNUSED written
= 0 ;
17787 IADDR UNUSED pc
= abuf
-> addr
;
17788 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17790 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> gtdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_DOUBLE ( FLD ( f_FRi
)), GET_H_FR_DOUBLE ( FLD ( f_FRj
)))) {
17793 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17794 written
|= ( 1 << 2 );
17795 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17798 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> eqdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_DOUBLE ( FLD ( f_FRi
)), GET_H_FR_DOUBLE ( FLD ( f_FRj
)))) {
17801 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17802 written
|= ( 1 << 2 );
17803 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17806 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> ltdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_DOUBLE ( FLD ( f_FRi
)), GET_H_FR_DOUBLE ( FLD ( f_FRj
)))) {
17809 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17810 written
|= ( 1 << 2 );
17811 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17816 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17817 written
|= ( 1 << 2 );
17818 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17824 abuf
-> written
= written
;
17829 /* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
17832 SEM_FN_NAME ( frvbf
, cfcmps
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17834 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17835 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17836 int UNUSED written
= 0 ;
17837 IADDR UNUSED pc
= abuf
-> addr
;
17838 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17840 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17841 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> gtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)))) {
17844 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17845 written
|= ( 1 << 4 );
17846 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17849 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> eqsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)))) {
17852 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17853 written
|= ( 1 << 4 );
17854 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17857 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> ltsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)))) {
17860 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17861 written
|= ( 1 << 4 );
17862 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17867 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17868 written
|= ( 1 << 4 );
17869 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17876 abuf
-> written
= written
;
17881 /* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
17884 SEM_FN_NAME ( frvbf
, fdcmps
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17886 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
17887 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17888 int UNUSED written
= 0 ;
17889 IADDR UNUSED pc
= abuf
-> addr
;
17890 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17893 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> gtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)))) {
17896 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17897 written
|= ( 1 << 7 );
17898 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17901 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> eqsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)))) {
17904 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17905 written
|= ( 1 << 7 );
17906 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17909 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> ltsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)))) {
17912 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17913 written
|= ( 1 << 7 );
17914 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17919 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17920 written
|= ( 1 << 7 );
17921 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17926 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> gtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))))) {
17929 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCi_2
)) + ( 1 ))]), opval
);
17930 written
|= ( 1 << 8 );
17931 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17934 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> eqsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))))) {
17937 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCi_2
)) + ( 1 ))]), opval
);
17938 written
|= ( 1 << 8 );
17939 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17942 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> ltsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))))) {
17945 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCi_2
)) + ( 1 ))]), opval
);
17946 written
|= ( 1 << 8 );
17947 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17952 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCi_2
)) + ( 1 ))]), opval
);
17953 written
|= ( 1 << 8 );
17954 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17961 abuf
-> written
= written
;
17966 /* fmadds: fmadds$pack $FRi,$FRj,$FRk */
17969 SEM_FN_NAME ( frvbf
, fmadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17971 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17972 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17973 int UNUSED written
= 0 ;
17974 IADDR UNUSED pc
= abuf
-> addr
;
17975 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17978 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
))), GET_H_FR ( FLD ( f_FRk
)));
17979 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17980 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17987 /* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
17990 SEM_FN_NAME ( frvbf
, fmsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17992 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17993 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17994 int UNUSED written
= 0 ;
17995 IADDR UNUSED pc
= abuf
-> addr
;
17996 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17999 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
))), GET_H_FR ( FLD ( f_FRk
)));
18000 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18001 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18008 /* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18011 SEM_FN_NAME ( frvbf
, fmaddd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18013 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18014 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18015 int UNUSED written
= 0 ;
18016 IADDR UNUSED pc
= abuf
-> addr
;
18017 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18020 DF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> adddf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> muldf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_DOUBLE ( FLD ( f_FRi
)), GET_H_FR_DOUBLE ( FLD ( f_FRj
))), GET_H_FR_DOUBLE ( FLD ( f_FRk
)));
18021 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
18022 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
18029 /* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18032 SEM_FN_NAME ( frvbf
, fmsubd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18034 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18035 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18036 int UNUSED written
= 0 ;
18037 IADDR UNUSED pc
= abuf
-> addr
;
18038 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18041 DF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subdf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> muldf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_DOUBLE ( FLD ( f_FRi
)), GET_H_FR_DOUBLE ( FLD ( f_FRj
))), GET_H_FR_DOUBLE ( FLD ( f_FRk
)));
18042 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
18043 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
18050 /* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18053 SEM_FN_NAME ( frvbf
, fdmadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18055 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18056 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18057 int UNUSED written
= 0 ;
18058 IADDR UNUSED pc
= abuf
-> addr
;
18059 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18063 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
))), GET_H_FR ( FLD ( f_FRk
)));
18064 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18065 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18068 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 )))), GET_H_FR ((( FLD ( f_FRk
)) + ( 1 ))));
18069 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18070 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18078 /* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18081 SEM_FN_NAME ( frvbf
, nfdmadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18083 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18084 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18085 int UNUSED written
= 0 ;
18086 IADDR UNUSED pc
= abuf
-> addr
;
18087 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18090 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18092 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
))), GET_H_FR ( FLD ( f_FRk
)));
18093 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18094 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18096 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18098 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 )))), GET_H_FR ((( FLD ( f_FRk
)) + ( 1 ))));
18099 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18100 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18108 /* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18111 SEM_FN_NAME ( frvbf
, cfmadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18113 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18114 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18115 int UNUSED written
= 0 ;
18116 IADDR UNUSED pc
= abuf
-> addr
;
18117 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18119 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
18121 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
))), GET_H_FR ( FLD ( f_FRk
)));
18122 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18123 written
|= ( 1 << 5 );
18124 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18128 abuf
-> written
= written
;
18133 /* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18136 SEM_FN_NAME ( frvbf
, cfmsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18138 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18139 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18140 int UNUSED written
= 0 ;
18141 IADDR UNUSED pc
= abuf
-> addr
;
18142 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18144 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
18146 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
))), GET_H_FR ( FLD ( f_FRk
)));
18147 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18148 written
|= ( 1 << 5 );
18149 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18153 abuf
-> written
= written
;
18158 /* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18161 SEM_FN_NAME ( frvbf
, nfmadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18163 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18164 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18165 int UNUSED written
= 0 ;
18166 IADDR UNUSED pc
= abuf
-> addr
;
18167 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18170 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18172 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
))), GET_H_FR ( FLD ( f_FRk
)));
18173 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18174 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18182 /* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18185 SEM_FN_NAME ( frvbf
, nfmsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18187 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18188 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18189 int UNUSED written
= 0 ;
18190 IADDR UNUSED pc
= abuf
-> addr
;
18191 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18194 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18196 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
))), GET_H_FR ( FLD ( f_FRk
)));
18197 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18198 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18206 /* fmas: fmas$pack $FRi,$FRj,$FRk */
18209 SEM_FN_NAME ( frvbf
, fmas
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18211 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18212 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18213 int UNUSED written
= 0 ;
18214 IADDR UNUSED pc
= abuf
-> addr
;
18215 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18219 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
18220 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18221 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18224 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18225 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18226 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18234 /* fmss: fmss$pack $FRi,$FRj,$FRk */
18237 SEM_FN_NAME ( frvbf
, fmss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18239 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18240 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18241 int UNUSED written
= 0 ;
18242 IADDR UNUSED pc
= abuf
-> addr
;
18243 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18247 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
18248 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18249 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18252 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18253 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18254 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18262 /* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18265 SEM_FN_NAME ( frvbf
, fdmas
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18267 #define FLD(f) abuf->fields.sfmt_fdmas.f
18268 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18269 int UNUSED written
= 0 ;
18270 IADDR UNUSED pc
= abuf
-> addr
;
18271 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18275 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
18276 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18277 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18280 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18281 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18282 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18285 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 2 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 2 ))));
18286 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
18287 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18290 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 3 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 3 ))));
18291 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 3 )), opval
);
18292 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18300 /* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18303 SEM_FN_NAME ( frvbf
, fdmss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18305 #define FLD(f) abuf->fields.sfmt_fdmas.f
18306 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18307 int UNUSED written
= 0 ;
18308 IADDR UNUSED pc
= abuf
-> addr
;
18309 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18313 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
18314 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18315 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18318 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18319 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18320 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18323 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 2 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 2 ))));
18324 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
18325 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18328 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 3 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 3 ))));
18329 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 3 )), opval
);
18330 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18338 /* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18341 SEM_FN_NAME ( frvbf
, nfdmas
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18343 #define FLD(f) abuf->fields.sfmt_fdmas.f
18344 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18345 int UNUSED written
= 0 ;
18346 IADDR UNUSED pc
= abuf
-> addr
;
18347 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18350 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18351 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18352 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 2 ));
18353 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 3 ));
18355 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
18356 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18357 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18360 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18361 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18362 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18365 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 2 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 2 ))));
18366 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
18367 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18370 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 3 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 3 ))));
18371 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 3 )), opval
);
18372 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18380 /* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18383 SEM_FN_NAME ( frvbf
, nfdmss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18385 #define FLD(f) abuf->fields.sfmt_fdmas.f
18386 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18387 int UNUSED written
= 0 ;
18388 IADDR UNUSED pc
= abuf
-> addr
;
18389 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18392 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18393 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18394 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 2 ));
18395 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 3 ));
18397 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
18398 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18399 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18402 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18403 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18404 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18407 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 2 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 2 ))));
18408 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
18409 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18412 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 3 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 3 ))));
18413 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 3 )), opval
);
18414 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18422 /* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18425 SEM_FN_NAME ( frvbf
, cfmas
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18427 #define FLD(f) abuf->fields.sfmt_cfmas.f
18428 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18429 int UNUSED written
= 0 ;
18430 IADDR UNUSED pc
= abuf
-> addr
;
18431 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18433 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
18436 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
18437 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18438 written
|= ( 1 << 9 );
18439 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18442 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18443 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18444 written
|= ( 1 << 10 );
18445 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18450 abuf
-> written
= written
;
18455 /* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18458 SEM_FN_NAME ( frvbf
, cfmss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18460 #define FLD(f) abuf->fields.sfmt_cfmas.f
18461 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18462 int UNUSED written
= 0 ;
18463 IADDR UNUSED pc
= abuf
-> addr
;
18464 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18466 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
18469 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
18470 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18471 written
|= ( 1 << 9 );
18472 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18475 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18476 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18477 written
|= ( 1 << 10 );
18478 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18483 abuf
-> written
= written
;
18488 /* fmad: fmad$pack $FRi,$FRj,$FRk */
18491 SEM_FN_NAME ( frvbf
, fmad
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18493 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18494 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18495 int UNUSED written
= 0 ;
18496 IADDR UNUSED pc
= abuf
-> addr
;
18497 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18501 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> ftruncdfsf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> muldf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> fextsfdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
))), CGEN_CPU_FPU ( current_cpu
)-> ops
-> fextsfdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)))));
18502 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18503 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18506 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> ftruncdfsf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> adddf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> fextsfdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 )))), CGEN_CPU_FPU ( current_cpu
)-> ops
-> fextsfdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))))));
18507 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18508 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18516 /* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18519 SEM_FN_NAME ( frvbf
, fmsd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18521 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18522 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18523 int UNUSED written
= 0 ;
18524 IADDR UNUSED pc
= abuf
-> addr
;
18525 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18529 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> ftruncdfsf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> muldf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> fextsfdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
))), CGEN_CPU_FPU ( current_cpu
)-> ops
-> fextsfdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)))));
18530 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18531 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18534 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> ftruncdfsf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> subdf ( CGEN_CPU_FPU ( current_cpu
), CGEN_CPU_FPU ( current_cpu
)-> ops
-> fextsfdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 )))), CGEN_CPU_FPU ( current_cpu
)-> ops
-> fextsfdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))))));
18535 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18536 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18544 /* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18547 SEM_FN_NAME ( frvbf
, nfmas
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18549 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18550 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18551 int UNUSED written
= 0 ;
18552 IADDR UNUSED pc
= abuf
-> addr
;
18553 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18556 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18558 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
18559 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18560 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18562 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18564 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18565 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18566 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18574 /* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18577 SEM_FN_NAME ( frvbf
, nfmss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18579 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18580 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18581 int UNUSED written
= 0 ;
18582 IADDR UNUSED pc
= abuf
-> addr
;
18583 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18586 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18588 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
18589 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18590 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18592 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18594 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18595 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18596 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18604 /* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18607 SEM_FN_NAME ( frvbf
, fdadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18609 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18610 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18611 int UNUSED written
= 0 ;
18612 IADDR UNUSED pc
= abuf
-> addr
;
18613 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18617 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
18618 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18619 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18622 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18623 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18624 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18632 /* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18635 SEM_FN_NAME ( frvbf
, fdsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18637 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18638 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18639 int UNUSED written
= 0 ;
18640 IADDR UNUSED pc
= abuf
-> addr
;
18641 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18645 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
18646 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18647 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18650 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18651 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18652 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18660 /* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18663 SEM_FN_NAME ( frvbf
, fdmuls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18665 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18666 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18667 int UNUSED written
= 0 ;
18668 IADDR UNUSED pc
= abuf
-> addr
;
18669 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18673 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
18674 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18675 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18678 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18679 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18680 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18688 /* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18691 SEM_FN_NAME ( frvbf
, fddivs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18693 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18694 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18695 int UNUSED written
= 0 ;
18696 IADDR UNUSED pc
= abuf
-> addr
;
18697 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18701 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> divsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
18702 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18703 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18706 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> divsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18707 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18708 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18716 /* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18719 SEM_FN_NAME ( frvbf
, fdsads
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18721 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18722 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18723 int UNUSED written
= 0 ;
18724 IADDR UNUSED pc
= abuf
-> addr
;
18725 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18729 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
18730 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18731 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18734 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18735 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18736 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18744 /* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18747 SEM_FN_NAME ( frvbf
, fdmulcs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18749 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18750 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18751 int UNUSED written
= 0 ;
18752 IADDR UNUSED pc
= abuf
-> addr
;
18753 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18757 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18758 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18759 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18762 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ( FLD ( f_FRj
)));
18763 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18764 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18772 /* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18775 SEM_FN_NAME ( frvbf
, nfdmulcs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18777 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18778 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18779 int UNUSED written
= 0 ;
18780 IADDR UNUSED pc
= abuf
-> addr
;
18781 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18784 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18786 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18787 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18788 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18790 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18792 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ( FLD ( f_FRj
)));
18793 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18794 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18802 /* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18805 SEM_FN_NAME ( frvbf
, nfdadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18807 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18808 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18809 int UNUSED written
= 0 ;
18810 IADDR UNUSED pc
= abuf
-> addr
;
18811 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18814 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18816 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
18817 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18818 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18820 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18822 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18823 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18824 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18832 /* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
18835 SEM_FN_NAME ( frvbf
, nfdsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18837 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18838 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18839 int UNUSED written
= 0 ;
18840 IADDR UNUSED pc
= abuf
-> addr
;
18841 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18844 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18846 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
18847 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18848 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18850 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18852 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18853 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18854 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18862 /* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
18865 SEM_FN_NAME ( frvbf
, nfdmuls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18867 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18868 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18869 int UNUSED written
= 0 ;
18870 IADDR UNUSED pc
= abuf
-> addr
;
18871 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18874 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18876 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
18877 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18878 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18880 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18882 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> mulsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18883 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18884 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18892 /* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
18895 SEM_FN_NAME ( frvbf
, nfddivs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18897 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18898 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18899 int UNUSED written
= 0 ;
18900 IADDR UNUSED pc
= abuf
-> addr
;
18901 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18904 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18906 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> divsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
18907 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18908 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18910 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18912 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> divsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18913 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18914 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18922 /* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
18925 SEM_FN_NAME ( frvbf
, nfdsads
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18927 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18928 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18929 int UNUSED written
= 0 ;
18930 IADDR UNUSED pc
= abuf
-> addr
;
18931 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18934 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18936 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> addsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)));
18937 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18938 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18940 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18942 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> subsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
18943 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18944 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18952 /* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
18955 SEM_FN_NAME ( frvbf
, nfdcmps
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18957 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
18958 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18959 int UNUSED written
= 0 ;
18960 IADDR UNUSED pc
= abuf
-> addr
;
18961 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18964 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18965 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> gtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)))) {
18968 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
18969 written
|= ( 1 << 8 );
18970 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
18973 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> eqsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)))) {
18976 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
18977 written
|= ( 1 << 8 );
18978 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
18981 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> ltsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRi
)), GET_H_FR ( FLD ( f_FRj
)))) {
18984 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
18985 written
|= ( 1 << 8 );
18986 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
18991 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
18992 written
|= ( 1 << 8 );
18993 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
18998 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18999 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> gtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))))) {
19002 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCi_2
)) + ( 1 ))]), opval
);
19003 written
|= ( 1 << 9 );
19004 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
19007 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> eqsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))))) {
19010 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCi_2
)) + ( 1 ))]), opval
);
19011 written
|= ( 1 << 9 );
19012 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
19015 if ( CGEN_CPU_FPU ( current_cpu
)-> ops
-> ltsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))))) {
19018 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCi_2
)) + ( 1 ))]), opval
);
19019 written
|= ( 1 << 9 );
19020 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
19025 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCi_2
)) + ( 1 ))]), opval
);
19026 written
|= ( 1 << 9 );
19027 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
19034 abuf
-> written
= written
;
19039 /* mhsetlos: mhsetlos$pack $u12,$FRklo */
19042 SEM_FN_NAME ( frvbf
, mhsetlos
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19044 #define FLD(f) abuf->fields.sfmt_mhsetlos.f
19045 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19046 int UNUSED written
= 0 ;
19047 IADDR UNUSED pc
= abuf
-> addr
;
19048 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19051 UHI opval
= FLD ( f_u12
);
19052 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, FLD ( f_FRk
), opval
);
19053 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19060 /* mhsethis: mhsethis$pack $u12,$FRkhi */
19063 SEM_FN_NAME ( frvbf
, mhsethis
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19065 #define FLD(f) abuf->fields.sfmt_mhsethis.f
19066 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19067 int UNUSED written
= 0 ;
19068 IADDR UNUSED pc
= abuf
-> addr
;
19069 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19072 UHI opval
= FLD ( f_u12
);
19073 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, FLD ( f_FRk
), opval
);
19074 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19081 /* mhdsets: mhdsets$pack $u12,$FRintk */
19084 SEM_FN_NAME ( frvbf
, mhdsets
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19086 #define FLD(f) abuf->fields.sfmt_mhdsets.f
19087 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19088 int UNUSED written
= 0 ;
19089 IADDR UNUSED pc
= abuf
-> addr
;
19090 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19094 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
19095 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19096 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19099 UHI opval
= FLD ( f_u12
);
19100 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19101 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19104 UHI opval
= FLD ( f_u12
);
19105 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19106 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19114 /* mhsetloh: mhsetloh$pack $s5,$FRklo */
19117 SEM_FN_NAME ( frvbf
, mhsetloh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19119 #define FLD(f) abuf->fields.sfmt_mhsetloh.f
19120 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19121 int UNUSED written
= 0 ;
19122 IADDR UNUSED pc
= abuf
-> addr
;
19123 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19127 tmp_tmp
= GET_H_FR_LO ( FLD ( f_FRk
));
19128 tmp_tmp
= ANDHI ( tmp_tmp
, 2047 );
19129 tmp_tmp
= ORHI ( tmp_tmp
, SLLSI ( ANDSI ( FLD ( f_s5
), 31 ), 11 ));
19131 UHI opval
= tmp_tmp
;
19132 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, FLD ( f_FRk
), opval
);
19133 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19141 /* mhsethih: mhsethih$pack $s5,$FRkhi */
19144 SEM_FN_NAME ( frvbf
, mhsethih
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19146 #define FLD(f) abuf->fields.sfmt_mhsethih.f
19147 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19148 int UNUSED written
= 0 ;
19149 IADDR UNUSED pc
= abuf
-> addr
;
19150 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19154 tmp_tmp
= GET_H_FR_HI ( FLD ( f_FRk
));
19155 tmp_tmp
= ANDHI ( tmp_tmp
, 2047 );
19156 tmp_tmp
= ORHI ( tmp_tmp
, SLLSI ( ANDSI ( FLD ( f_s5
), 31 ), 11 ));
19158 UHI opval
= tmp_tmp
;
19159 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, FLD ( f_FRk
), opval
);
19160 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19168 /* mhdseth: mhdseth$pack $s5,$FRintk */
19171 SEM_FN_NAME ( frvbf
, mhdseth
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19173 #define FLD(f) abuf->fields.sfmt_mhdseth.f
19174 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19175 int UNUSED written
= 0 ;
19176 IADDR UNUSED pc
= abuf
-> addr
;
19177 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19181 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
19182 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19183 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19187 tmp_tmp
= GET_H_FR_HI ((( FLD ( f_FRk
)) + ( 0 )));
19188 tmp_tmp
= ANDHI ( tmp_tmp
, 2047 );
19189 tmp_tmp
= ORHI ( tmp_tmp
, SLLSI ( ANDSI ( FLD ( f_s5
), 31 ), 11 ));
19191 UHI opval
= tmp_tmp
;
19192 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19193 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19198 tmp_tmp
= GET_H_FR_LO ((( FLD ( f_FRk
)) + ( 0 )));
19199 tmp_tmp
= ANDHI ( tmp_tmp
, 2047 );
19200 tmp_tmp
= ORHI ( tmp_tmp
, SLLSI ( ANDSI ( FLD ( f_s5
), 31 ), 11 ));
19202 UHI opval
= tmp_tmp
;
19203 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19204 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19213 /* mand: mand$pack $FRinti,$FRintj,$FRintk */
19216 SEM_FN_NAME ( frvbf
, mand
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19218 #define FLD(f) abuf->fields.sfmt_mwcut.f
19219 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19220 int UNUSED written
= 0 ;
19221 IADDR UNUSED pc
= abuf
-> addr
;
19222 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19225 SI opval
= ANDSI ( GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19226 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19227 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19234 /* mor: mor$pack $FRinti,$FRintj,$FRintk */
19237 SEM_FN_NAME ( frvbf
, mor
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19239 #define FLD(f) abuf->fields.sfmt_mwcut.f
19240 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19241 int UNUSED written
= 0 ;
19242 IADDR UNUSED pc
= abuf
-> addr
;
19243 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19246 SI opval
= ORSI ( GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19247 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19248 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19255 /* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19258 SEM_FN_NAME ( frvbf
, mxor
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19260 #define FLD(f) abuf->fields.sfmt_mwcut.f
19261 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19262 int UNUSED written
= 0 ;
19263 IADDR UNUSED pc
= abuf
-> addr
;
19264 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19267 SI opval
= XORSI ( GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19268 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19269 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19276 /* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19279 SEM_FN_NAME ( frvbf
, cmand
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19281 #define FLD(f) abuf->fields.sfmt_cmand.f
19282 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19283 int UNUSED written
= 0 ;
19284 IADDR UNUSED pc
= abuf
-> addr
;
19285 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19287 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
19289 SI opval
= ANDSI ( GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19290 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19291 written
|= ( 1 << 4 );
19292 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19296 abuf
-> written
= written
;
19301 /* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19304 SEM_FN_NAME ( frvbf
, cmor
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19306 #define FLD(f) abuf->fields.sfmt_cmand.f
19307 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19308 int UNUSED written
= 0 ;
19309 IADDR UNUSED pc
= abuf
-> addr
;
19310 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19312 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
19314 SI opval
= ORSI ( GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19315 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19316 written
|= ( 1 << 4 );
19317 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19321 abuf
-> written
= written
;
19326 /* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19329 SEM_FN_NAME ( frvbf
, cmxor
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19331 #define FLD(f) abuf->fields.sfmt_cmand.f
19332 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19333 int UNUSED written
= 0 ;
19334 IADDR UNUSED pc
= abuf
-> addr
;
19335 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19337 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
19339 SI opval
= XORSI ( GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19340 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19341 written
|= ( 1 << 4 );
19342 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19346 abuf
-> written
= written
;
19351 /* mnot: mnot$pack $FRintj,$FRintk */
19354 SEM_FN_NAME ( frvbf
, mnot
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19356 #define FLD(f) abuf->fields.sfmt_mcut.f
19357 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19358 int UNUSED written
= 0 ;
19359 IADDR UNUSED pc
= abuf
-> addr
;
19360 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19363 SI opval
= INVSI ( GET_H_FR_INT ( FLD ( f_FRj
)));
19364 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19365 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19372 /* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19375 SEM_FN_NAME ( frvbf
, cmnot
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19377 #define FLD(f) abuf->fields.sfmt_cmand.f
19378 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19379 int UNUSED written
= 0 ;
19380 IADDR UNUSED pc
= abuf
-> addr
;
19381 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19383 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
19385 SI opval
= INVSI ( GET_H_FR_INT ( FLD ( f_FRj
)));
19386 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19387 written
|= ( 1 << 3 );
19388 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19392 abuf
-> written
= written
;
19397 /* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19400 SEM_FN_NAME ( frvbf
, mrotli
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19402 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19403 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19404 int UNUSED written
= 0 ;
19405 IADDR UNUSED pc
= abuf
-> addr
;
19406 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19409 SI opval
= ROLSI ( GET_H_FR_INT ( FLD ( f_FRi
)), ANDSI ( FLD ( f_u6
), 31 ));
19410 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19411 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19418 /* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19421 SEM_FN_NAME ( frvbf
, mrotri
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19423 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19424 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19425 int UNUSED written
= 0 ;
19426 IADDR UNUSED pc
= abuf
-> addr
;
19427 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19430 SI opval
= RORSI ( GET_H_FR_INT ( FLD ( f_FRi
)), ANDSI ( FLD ( f_u6
), 31 ));
19431 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19432 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19439 /* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19442 SEM_FN_NAME ( frvbf
, mwcut
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19444 #define FLD(f) abuf->fields.sfmt_mwcut.f
19445 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19446 int UNUSED written
= 0 ;
19447 IADDR UNUSED pc
= abuf
-> addr
;
19448 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19451 SI opval
= frvbf_cut ( current_cpu
, GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ((( FLD ( f_FRi
)) + ( 1 ))), GET_H_FR_INT ( FLD ( f_FRj
)));
19452 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19453 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19460 /* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19463 SEM_FN_NAME ( frvbf
, mwcuti
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19465 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19466 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19467 int UNUSED written
= 0 ;
19468 IADDR UNUSED pc
= abuf
-> addr
;
19469 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19472 SI opval
= frvbf_cut ( current_cpu
, GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ((( FLD ( f_FRi
)) + ( 1 ))), FLD ( f_u6
));
19473 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19474 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19481 /* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19484 SEM_FN_NAME ( frvbf
, mcut
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19486 #define FLD(f) abuf->fields.sfmt_mcut.f
19487 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19488 int UNUSED written
= 0 ;
19489 IADDR UNUSED pc
= abuf
-> addr
;
19490 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19493 SI opval
= frvbf_media_cut ( current_cpu
, GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19494 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19495 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19502 /* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19505 SEM_FN_NAME ( frvbf
, mcuti
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19507 #define FLD(f) abuf->fields.sfmt_mcuti.f
19508 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19509 int UNUSED written
= 0 ;
19510 IADDR UNUSED pc
= abuf
-> addr
;
19511 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19514 SI opval
= frvbf_media_cut ( current_cpu
, GET_H_ACC40S ( FLD ( f_ACC40Si
)), FLD ( f_s6
));
19515 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19516 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19523 /* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19526 SEM_FN_NAME ( frvbf
, mcutss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19528 #define FLD(f) abuf->fields.sfmt_mcut.f
19529 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19530 int UNUSED written
= 0 ;
19531 IADDR UNUSED pc
= abuf
-> addr
;
19532 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19535 SI opval
= frvbf_media_cut_ss ( current_cpu
, GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19536 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19537 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19544 /* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19547 SEM_FN_NAME ( frvbf
, mcutssi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19549 #define FLD(f) abuf->fields.sfmt_mcuti.f
19550 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19551 int UNUSED written
= 0 ;
19552 IADDR UNUSED pc
= abuf
-> addr
;
19553 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19556 SI opval
= frvbf_media_cut_ss ( current_cpu
, GET_H_ACC40S ( FLD ( f_ACC40Si
)), FLD ( f_s6
));
19557 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19558 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19565 /* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19568 SEM_FN_NAME ( frvbf
, mdcutssi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19570 #define FLD(f) abuf->fields.sfmt_mdcutssi.f
19571 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19572 int UNUSED written
= 0 ;
19573 IADDR UNUSED pc
= abuf
-> addr
;
19574 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19576 if ( ANDSI ( FLD ( f_ACC40Si
), SUBSI ( 2 , 1 ))) {
19577 frvbf_media_acc_not_aligned ( current_cpu
);
19579 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))) {
19580 frvbf_media_register_not_aligned ( current_cpu
);
19584 SI opval
= frvbf_media_cut_ss ( current_cpu
, GET_H_ACC40S ( FLD ( f_ACC40Si
)), FLD ( f_s6
));
19585 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19586 written
|= ( 1 << 5 );
19587 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19590 USI opval
= frvbf_media_cut_ss ( current_cpu
, GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 1 ))), FLD ( f_s6
));
19591 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
19592 written
|= ( 1 << 6 );
19593 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19599 abuf
-> written
= written
;
19604 /* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19607 SEM_FN_NAME ( frvbf
, maveh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19609 #define FLD(f) abuf->fields.sfmt_mwcut.f
19610 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19611 int UNUSED written
= 0 ;
19612 IADDR UNUSED pc
= abuf
-> addr
;
19613 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19616 SI opval
= frvbf_media_average ( current_cpu
, GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19617 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19618 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19625 /* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19628 SEM_FN_NAME ( frvbf
, msllhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19630 #define FLD(f) abuf->fields.sfmt_msllhi.f
19631 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19632 int UNUSED written
= 0 ;
19633 IADDR UNUSED pc
= abuf
-> addr
;
19634 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19638 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
19639 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
19640 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19643 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
19644 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19645 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19648 UHI opval
= SLLHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), ANDSI ( FLD ( f_u6
), 15 ));
19649 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19650 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19653 UHI opval
= SLLHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), ANDSI ( FLD ( f_u6
), 15 ));
19654 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19655 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19663 /* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19666 SEM_FN_NAME ( frvbf
, msrlhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19668 #define FLD(f) abuf->fields.sfmt_msllhi.f
19669 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19670 int UNUSED written
= 0 ;
19671 IADDR UNUSED pc
= abuf
-> addr
;
19672 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19676 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
19677 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
19678 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19681 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
19682 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19683 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19686 UHI opval
= SRLHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), ANDSI ( FLD ( f_u6
), 15 ));
19687 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19688 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19691 UHI opval
= SRLHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), ANDSI ( FLD ( f_u6
), 15 ));
19692 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19693 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19701 /* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19704 SEM_FN_NAME ( frvbf
, msrahi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19706 #define FLD(f) abuf->fields.sfmt_msllhi.f
19707 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19708 int UNUSED written
= 0 ;
19709 IADDR UNUSED pc
= abuf
-> addr
;
19710 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19714 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
19715 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
19716 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19719 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
19720 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19721 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19724 UHI opval
= SRAHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), ANDSI ( FLD ( f_u6
), 15 ));
19725 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19726 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19729 UHI opval
= SRAHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), ANDSI ( FLD ( f_u6
), 15 ));
19730 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19731 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19739 /* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19742 SEM_FN_NAME ( frvbf
, mdrotli
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19744 #define FLD(f) abuf->fields.sfmt_mdrotli.f
19745 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19746 int UNUSED written
= 0 ;
19747 IADDR UNUSED pc
= abuf
-> addr
;
19748 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19750 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 )))) {
19751 frvbf_media_register_not_aligned ( current_cpu
);
19755 SI opval
= ROLSI ( GET_H_FR_INT ( FLD ( f_FRi
)), ANDSI ( FLD ( f_s6
), 31 ));
19756 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19757 written
|= ( 1 << 5 );
19758 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19761 USI opval
= ROLSI ( GET_H_FR_INT ((( FLD ( f_FRi
)) + ( 1 ))), ANDSI ( FLD ( f_s6
), 31 ));
19762 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
19763 written
|= ( 1 << 6 );
19764 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19769 abuf
-> written
= written
;
19774 /* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19777 SEM_FN_NAME ( frvbf
, mcplhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19779 #define FLD(f) abuf->fields.sfmt_mcplhi.f
19780 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19781 int UNUSED written
= 0 ;
19782 IADDR UNUSED pc
= abuf
-> addr
;
19783 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19790 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
19791 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
19792 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19795 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
19796 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19797 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19799 tmp_shift
= ANDSI ( FLD ( f_u6
), 15 );
19800 tmp_arg1
= SLLHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), tmp_shift
);
19801 if ( NEHI ( tmp_shift
, 0 )) {
19803 tmp_arg2
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 )));
19804 tmp_arg2
= SRLHI ( SLLHI ( tmp_arg2
, SUBSI ( 15 , tmp_shift
)), SUBSI ( 15 , tmp_shift
));
19805 tmp_arg1
= ORHI ( tmp_arg1
, tmp_arg2
);
19809 UHI opval
= tmp_arg1
;
19810 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19811 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19819 /* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19822 SEM_FN_NAME ( frvbf
, mcpli
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19824 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19825 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19826 int UNUSED written
= 0 ;
19827 IADDR UNUSED pc
= abuf
-> addr
;
19828 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19833 tmp_shift
= ANDSI ( FLD ( f_u6
), 31 );
19834 tmp_tmp
= SLLSI ( GET_H_FR_INT ( FLD ( f_FRi
)), tmp_shift
);
19835 if ( NESI ( tmp_shift
, 0 )) {
19838 tmp_tmp1
= SRLSI ( SLLSI ( GET_H_FR_INT ((( FLD ( f_FRi
)) + ( 1 ))), SUBSI ( 31 , tmp_shift
)), SUBSI ( 31 , tmp_shift
));
19839 tmp_tmp
= ORSI ( tmp_tmp
, tmp_tmp1
);
19843 SI opval
= tmp_tmp
;
19844 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19845 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19853 /* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
19856 SEM_FN_NAME ( frvbf
, msaths
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19858 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
19859 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19860 int UNUSED written
= 0 ;
19861 IADDR UNUSED pc
= abuf
-> addr
;
19862 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19870 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
19871 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
19872 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
19873 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
19875 if ( GTHI ( tmp_argihi
, tmp_argjhi
)) {
19877 UHI opval
= tmp_argjhi
;
19878 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19879 written
|= ( 1 << 9 );
19880 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19883 if ( LTHI ( tmp_argihi
, INVHI ( tmp_argjhi
))) {
19885 UHI opval
= INVHI ( tmp_argjhi
);
19886 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19887 written
|= ( 1 << 9 );
19888 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19892 UHI opval
= tmp_argihi
;
19893 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19894 written
|= ( 1 << 9 );
19895 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19899 if ( GTHI ( tmp_argilo
, tmp_argjlo
)) {
19901 UHI opval
= tmp_argjlo
;
19902 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19903 written
|= ( 1 << 10 );
19904 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19907 if ( LTHI ( tmp_argilo
, INVHI ( tmp_argjlo
))) {
19909 UHI opval
= INVHI ( tmp_argjlo
);
19910 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19911 written
|= ( 1 << 10 );
19912 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19916 UHI opval
= tmp_argilo
;
19917 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19918 written
|= ( 1 << 10 );
19919 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19925 abuf
-> written
= written
;
19930 /* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
19933 SEM_FN_NAME ( frvbf
, mqsaths
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19935 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
19936 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19937 int UNUSED written
= 0 ;
19938 IADDR UNUSED pc
= abuf
-> addr
;
19939 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19941 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
19942 frvbf_media_register_not_aligned ( current_cpu
);
19950 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
19951 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19952 written
|= ( 1 << 14 );
19953 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19956 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
19957 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
19958 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
19959 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
19961 if ( GTHI ( tmp_argihi
, tmp_argjhi
)) {
19963 UHI opval
= tmp_argjhi
;
19964 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19965 written
|= ( 1 << 15 );
19966 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19969 if ( LTHI ( tmp_argihi
, INVHI ( tmp_argjhi
))) {
19971 UHI opval
= INVHI ( tmp_argjhi
);
19972 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19973 written
|= ( 1 << 15 );
19974 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19978 UHI opval
= tmp_argihi
;
19979 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19980 written
|= ( 1 << 15 );
19981 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19985 if ( GTHI ( tmp_argilo
, tmp_argjlo
)) {
19987 UHI opval
= tmp_argjlo
;
19988 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19989 written
|= ( 1 << 17 );
19990 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19993 if ( LTHI ( tmp_argilo
, INVHI ( tmp_argjlo
))) {
19995 UHI opval
= INVHI ( tmp_argjlo
);
19996 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19997 written
|= ( 1 << 17 );
19998 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20002 UHI opval
= tmp_argilo
;
20003 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20004 written
|= ( 1 << 17 );
20005 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20010 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20011 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20012 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20013 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20015 if ( GTHI ( tmp_argihi
, tmp_argjhi
)) {
20017 UHI opval
= tmp_argjhi
;
20018 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
20019 written
|= ( 1 << 16 );
20020 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20023 if ( LTHI ( tmp_argihi
, INVHI ( tmp_argjhi
))) {
20025 UHI opval
= INVHI ( tmp_argjhi
);
20026 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
20027 written
|= ( 1 << 16 );
20028 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20032 UHI opval
= tmp_argihi
;
20033 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
20034 written
|= ( 1 << 16 );
20035 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20039 if ( GTHI ( tmp_argilo
, tmp_argjlo
)) {
20041 UHI opval
= tmp_argjlo
;
20042 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
20043 written
|= ( 1 << 18 );
20044 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20047 if ( LTHI ( tmp_argilo
, INVHI ( tmp_argjlo
))) {
20049 UHI opval
= INVHI ( tmp_argjlo
);
20050 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
20051 written
|= ( 1 << 18 );
20052 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20056 UHI opval
= tmp_argilo
;
20057 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
20058 written
|= ( 1 << 18 );
20059 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20066 abuf
-> written
= written
;
20071 /* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20074 SEM_FN_NAME ( frvbf
, msathu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20076 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20077 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20078 int UNUSED written
= 0 ;
20079 IADDR UNUSED pc
= abuf
-> addr
;
20080 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20088 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20089 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20090 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20091 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20093 if ( GTUHI ( tmp_argihi
, tmp_argjhi
)) {
20095 UHI opval
= tmp_argjhi
;
20096 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20097 written
|= ( 1 << 9 );
20098 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20102 UHI opval
= tmp_argihi
;
20103 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20104 written
|= ( 1 << 9 );
20105 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20108 if ( GTUHI ( tmp_argilo
, tmp_argjlo
)) {
20110 UHI opval
= tmp_argjlo
;
20111 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20112 written
|= ( 1 << 10 );
20113 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20117 UHI opval
= tmp_argilo
;
20118 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20119 written
|= ( 1 << 10 );
20120 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20125 abuf
-> written
= written
;
20130 /* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20133 SEM_FN_NAME ( frvbf
, mcmpsh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20135 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20136 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20137 int UNUSED written
= 0 ;
20138 IADDR UNUSED pc
= abuf
-> addr
;
20139 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20141 if ( ANDSI ( FLD ( f_FCCk
), SUBSI ( 2 , 1 ))) {
20142 frvbf_media_cr_not_aligned ( current_cpu
);
20150 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20151 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20152 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20153 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20155 if ( GTHI ( tmp_argihi
, tmp_argjhi
)) {
20158 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20159 written
|= ( 1 << 9 );
20160 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20163 if ( EQHI ( tmp_argihi
, tmp_argjhi
)) {
20166 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20167 written
|= ( 1 << 9 );
20168 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20171 if ( LTHI ( tmp_argihi
, tmp_argjhi
)) {
20174 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20175 written
|= ( 1 << 9 );
20176 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20181 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20182 written
|= ( 1 << 9 );
20183 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20188 if ( GTHI ( tmp_argilo
, tmp_argjlo
)) {
20191 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCk
)) + ( 1 ))]), opval
);
20192 written
|= ( 1 << 10 );
20193 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20196 if ( EQHI ( tmp_argilo
, tmp_argjlo
)) {
20199 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCk
)) + ( 1 ))]), opval
);
20200 written
|= ( 1 << 10 );
20201 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20204 if ( LTHI ( tmp_argilo
, tmp_argjlo
)) {
20207 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCk
)) + ( 1 ))]), opval
);
20208 written
|= ( 1 << 10 );
20209 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20214 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCk
)) + ( 1 ))]), opval
);
20215 written
|= ( 1 << 10 );
20216 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20224 abuf
-> written
= written
;
20229 /* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20232 SEM_FN_NAME ( frvbf
, mcmpuh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20234 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20235 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20236 int UNUSED written
= 0 ;
20237 IADDR UNUSED pc
= abuf
-> addr
;
20238 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20240 if ( ANDSI ( FLD ( f_FCCk
), SUBSI ( 2 , 1 ))) {
20241 frvbf_media_cr_not_aligned ( current_cpu
);
20249 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20250 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20251 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20252 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20254 if ( GTUHI ( tmp_argihi
, tmp_argjhi
)) {
20257 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20258 written
|= ( 1 << 9 );
20259 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20262 if ( EQHI ( tmp_argihi
, tmp_argjhi
)) {
20265 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20266 written
|= ( 1 << 9 );
20267 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20270 if ( LTUHI ( tmp_argihi
, tmp_argjhi
)) {
20273 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20274 written
|= ( 1 << 9 );
20275 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20280 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20281 written
|= ( 1 << 9 );
20282 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20287 if ( GTUHI ( tmp_argilo
, tmp_argjlo
)) {
20290 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCk
)) + ( 1 ))]), opval
);
20291 written
|= ( 1 << 10 );
20292 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20295 if ( EQHI ( tmp_argilo
, tmp_argjlo
)) {
20298 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCk
)) + ( 1 ))]), opval
);
20299 written
|= ( 1 << 10 );
20300 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20303 if ( LTUHI ( tmp_argilo
, tmp_argjlo
)) {
20306 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCk
)) + ( 1 ))]), opval
);
20307 written
|= ( 1 << 10 );
20308 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20313 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCk
)) + ( 1 ))]), opval
);
20314 written
|= ( 1 << 10 );
20315 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20323 abuf
-> written
= written
;
20328 /* mabshs: mabshs$pack $FRintj,$FRintk */
20331 SEM_FN_NAME ( frvbf
, mabshs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20333 #define FLD(f) abuf->fields.sfmt_mabshs.f
20334 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20335 int UNUSED written
= 0 ;
20336 IADDR UNUSED pc
= abuf
-> addr
;
20337 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20343 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
20344 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
20345 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
20348 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
20349 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
20350 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
20352 tmp_arghi
= GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 )));
20353 tmp_arglo
= GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 )));
20354 if ( GTDI ( ABSHI ( tmp_arghi
), 32767 )) {
20358 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20359 written
|= ( 1 << 8 );
20360 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20362 frvbf_media_overflow ( current_cpu
, 8 );
20365 if ( LTDI ( ABSHI ( tmp_arghi
), - 32768 )) {
20368 UHI opval
= - 32768 ;
20369 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20370 written
|= ( 1 << 8 );
20371 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20373 frvbf_media_overflow ( current_cpu
, 8 );
20377 UHI opval
= ABSHI ( tmp_arghi
);
20378 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20379 written
|= ( 1 << 8 );
20380 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20384 if ( GTDI ( ABSHI ( tmp_arglo
), 32767 )) {
20388 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20389 written
|= ( 1 << 9 );
20390 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20392 frvbf_media_overflow ( current_cpu
, 4 );
20395 if ( LTDI ( ABSHI ( tmp_arglo
), - 32768 )) {
20398 UHI opval
= - 32768 ;
20399 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20400 written
|= ( 1 << 9 );
20401 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20403 frvbf_media_overflow ( current_cpu
, 4 );
20407 UHI opval
= ABSHI ( tmp_arglo
);
20408 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20409 written
|= ( 1 << 9 );
20410 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20416 abuf
-> written
= written
;
20421 /* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20424 SEM_FN_NAME ( frvbf
, maddhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20426 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20427 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20428 int UNUSED written
= 0 ;
20429 IADDR UNUSED pc
= abuf
-> addr
;
20430 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20438 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20439 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20440 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20441 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20445 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
20446 if ( GTDI ( tmp_tmp
, 32767 )) {
20450 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20451 written
|= ( 1 << 9 );
20452 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20454 frvbf_media_overflow ( current_cpu
, 8 );
20457 if ( LTDI ( tmp_tmp
, - 32768 )) {
20460 UHI opval
= - 32768 ;
20461 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20462 written
|= ( 1 << 9 );
20463 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20465 frvbf_media_overflow ( current_cpu
, 8 );
20469 UHI opval
= tmp_tmp
;
20470 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20471 written
|= ( 1 << 9 );
20472 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20479 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
20480 if ( GTDI ( tmp_tmp
, 32767 )) {
20484 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20485 written
|= ( 1 << 10 );
20486 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20488 frvbf_media_overflow ( current_cpu
, 4 );
20491 if ( LTDI ( tmp_tmp
, - 32768 )) {
20494 UHI opval
= - 32768 ;
20495 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20496 written
|= ( 1 << 10 );
20497 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20499 frvbf_media_overflow ( current_cpu
, 4 );
20503 UHI opval
= tmp_tmp
;
20504 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20505 written
|= ( 1 << 10 );
20506 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20513 abuf
-> written
= written
;
20518 /* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20521 SEM_FN_NAME ( frvbf
, maddhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20523 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20524 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20525 int UNUSED written
= 0 ;
20526 IADDR UNUSED pc
= abuf
-> addr
;
20527 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20535 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20536 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20537 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20538 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20542 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
20543 if ( GTDI ( tmp_tmp
, 65535 )) {
20547 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20548 written
|= ( 1 << 9 );
20549 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20551 frvbf_media_overflow ( current_cpu
, 8 );
20554 if ( LTDI ( tmp_tmp
, 0 )) {
20558 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20559 written
|= ( 1 << 9 );
20560 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20562 frvbf_media_overflow ( current_cpu
, 8 );
20566 UHI opval
= tmp_tmp
;
20567 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20568 written
|= ( 1 << 9 );
20569 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20576 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
20577 if ( GTDI ( tmp_tmp
, 65535 )) {
20581 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20582 written
|= ( 1 << 10 );
20583 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20585 frvbf_media_overflow ( current_cpu
, 4 );
20588 if ( LTDI ( tmp_tmp
, 0 )) {
20592 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20593 written
|= ( 1 << 10 );
20594 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20596 frvbf_media_overflow ( current_cpu
, 4 );
20600 UHI opval
= tmp_tmp
;
20601 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20602 written
|= ( 1 << 10 );
20603 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20610 abuf
-> written
= written
;
20615 /* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20618 SEM_FN_NAME ( frvbf
, msubhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20620 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20621 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20622 int UNUSED written
= 0 ;
20623 IADDR UNUSED pc
= abuf
-> addr
;
20624 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20632 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20633 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20634 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20635 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20639 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
20640 if ( GTDI ( tmp_tmp
, 32767 )) {
20644 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20645 written
|= ( 1 << 9 );
20646 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20648 frvbf_media_overflow ( current_cpu
, 8 );
20651 if ( LTDI ( tmp_tmp
, - 32768 )) {
20654 UHI opval
= - 32768 ;
20655 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20656 written
|= ( 1 << 9 );
20657 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20659 frvbf_media_overflow ( current_cpu
, 8 );
20663 UHI opval
= tmp_tmp
;
20664 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20665 written
|= ( 1 << 9 );
20666 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20673 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
20674 if ( GTDI ( tmp_tmp
, 32767 )) {
20678 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20679 written
|= ( 1 << 10 );
20680 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20682 frvbf_media_overflow ( current_cpu
, 4 );
20685 if ( LTDI ( tmp_tmp
, - 32768 )) {
20688 UHI opval
= - 32768 ;
20689 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20690 written
|= ( 1 << 10 );
20691 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20693 frvbf_media_overflow ( current_cpu
, 4 );
20697 UHI opval
= tmp_tmp
;
20698 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20699 written
|= ( 1 << 10 );
20700 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20707 abuf
-> written
= written
;
20712 /* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20715 SEM_FN_NAME ( frvbf
, msubhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20717 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20718 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20719 int UNUSED written
= 0 ;
20720 IADDR UNUSED pc
= abuf
-> addr
;
20721 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20729 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20730 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20731 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20732 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20736 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
20737 if ( GTDI ( tmp_tmp
, 65535 )) {
20741 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20742 written
|= ( 1 << 9 );
20743 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20745 frvbf_media_overflow ( current_cpu
, 8 );
20748 if ( LTDI ( tmp_tmp
, 0 )) {
20752 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20753 written
|= ( 1 << 9 );
20754 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20756 frvbf_media_overflow ( current_cpu
, 8 );
20760 UHI opval
= tmp_tmp
;
20761 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20762 written
|= ( 1 << 9 );
20763 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20770 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
20771 if ( GTDI ( tmp_tmp
, 65535 )) {
20775 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20776 written
|= ( 1 << 10 );
20777 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20779 frvbf_media_overflow ( current_cpu
, 4 );
20782 if ( LTDI ( tmp_tmp
, 0 )) {
20786 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20787 written
|= ( 1 << 10 );
20788 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20790 frvbf_media_overflow ( current_cpu
, 4 );
20794 UHI opval
= tmp_tmp
;
20795 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20796 written
|= ( 1 << 10 );
20797 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20804 abuf
-> written
= written
;
20809 /* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20812 SEM_FN_NAME ( frvbf
, cmaddhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20814 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20815 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20816 int UNUSED written
= 0 ;
20817 IADDR UNUSED pc
= abuf
-> addr
;
20818 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20820 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
20827 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20828 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20829 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20830 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20834 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
20835 if ( GTDI ( tmp_tmp
, 32767 )) {
20839 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20840 written
|= ( 1 << 11 );
20841 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20843 frvbf_media_overflow ( current_cpu
, 8 );
20846 if ( LTDI ( tmp_tmp
, - 32768 )) {
20849 UHI opval
= - 32768 ;
20850 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20851 written
|= ( 1 << 11 );
20852 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20854 frvbf_media_overflow ( current_cpu
, 8 );
20858 UHI opval
= tmp_tmp
;
20859 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20860 written
|= ( 1 << 11 );
20861 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20868 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
20869 if ( GTDI ( tmp_tmp
, 32767 )) {
20873 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20874 written
|= ( 1 << 12 );
20875 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20877 frvbf_media_overflow ( current_cpu
, 4 );
20880 if ( LTDI ( tmp_tmp
, - 32768 )) {
20883 UHI opval
= - 32768 ;
20884 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20885 written
|= ( 1 << 12 );
20886 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20888 frvbf_media_overflow ( current_cpu
, 4 );
20892 UHI opval
= tmp_tmp
;
20893 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20894 written
|= ( 1 << 12 );
20895 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20903 abuf
-> written
= written
;
20908 /* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20911 SEM_FN_NAME ( frvbf
, cmaddhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20913 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20914 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20915 int UNUSED written
= 0 ;
20916 IADDR UNUSED pc
= abuf
-> addr
;
20917 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20919 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
20926 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20927 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20928 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20929 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20933 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
20934 if ( GTDI ( tmp_tmp
, 65535 )) {
20938 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20939 written
|= ( 1 << 11 );
20940 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20942 frvbf_media_overflow ( current_cpu
, 8 );
20945 if ( LTDI ( tmp_tmp
, 0 )) {
20949 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20950 written
|= ( 1 << 11 );
20951 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20953 frvbf_media_overflow ( current_cpu
, 8 );
20957 UHI opval
= tmp_tmp
;
20958 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20959 written
|= ( 1 << 11 );
20960 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20967 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
20968 if ( GTDI ( tmp_tmp
, 65535 )) {
20972 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20973 written
|= ( 1 << 12 );
20974 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20976 frvbf_media_overflow ( current_cpu
, 4 );
20979 if ( LTDI ( tmp_tmp
, 0 )) {
20983 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20984 written
|= ( 1 << 12 );
20985 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20987 frvbf_media_overflow ( current_cpu
, 4 );
20991 UHI opval
= tmp_tmp
;
20992 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20993 written
|= ( 1 << 12 );
20994 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21002 abuf
-> written
= written
;
21007 /* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21010 SEM_FN_NAME ( frvbf
, cmsubhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
21012 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21013 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
21014 int UNUSED written
= 0 ;
21015 IADDR UNUSED pc
= abuf
-> addr
;
21016 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
21018 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
21025 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21026 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21027 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21028 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21032 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
21033 if ( GTDI ( tmp_tmp
, 32767 )) {
21037 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21038 written
|= ( 1 << 11 );
21039 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21041 frvbf_media_overflow ( current_cpu
, 8 );
21044 if ( LTDI ( tmp_tmp
, - 32768 )) {
21047 UHI opval
= - 32768 ;
21048 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21049 written
|= ( 1 << 11 );
21050 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21052 frvbf_media_overflow ( current_cpu
, 8 );
21056 UHI opval
= tmp_tmp
;
21057 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21058 written
|= ( 1 << 11 );
21059 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21066 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
21067 if ( GTDI ( tmp_tmp
, 32767 )) {
21071 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21072 written
|= ( 1 << 12 );
21073 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21075 frvbf_media_overflow ( current_cpu
, 4 );
21078 if ( LTDI ( tmp_tmp
, - 32768 )) {
21081 UHI opval
= - 32768 ;
21082 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21083 written
|= ( 1 << 12 );
21084 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21086 frvbf_media_overflow ( current_cpu
, 4 );
21090 UHI opval
= tmp_tmp
;
21091 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21092 written
|= ( 1 << 12 );
21093 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21101 abuf
-> written
= written
;
21106 /* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21109 SEM_FN_NAME ( frvbf
, cmsubhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
21111 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21112 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
21113 int UNUSED written
= 0 ;
21114 IADDR UNUSED pc
= abuf
-> addr
;
21115 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
21117 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
21124 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21125 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21126 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21127 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21131 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
21132 if ( GTDI ( tmp_tmp
, 65535 )) {
21136 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21137 written
|= ( 1 << 11 );
21138 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21140 frvbf_media_overflow ( current_cpu
, 8 );
21143 if ( LTDI ( tmp_tmp
, 0 )) {
21147 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21148 written
|= ( 1 << 11 );
21149 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21151 frvbf_media_overflow ( current_cpu
, 8 );
21155 UHI opval
= tmp_tmp
;
21156 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21157 written
|= ( 1 << 11 );
21158 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21165 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
21166 if ( GTDI ( tmp_tmp
, 65535 )) {
21170 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21171 written
|= ( 1 << 12 );
21172 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21174 frvbf_media_overflow ( current_cpu
, 4 );
21177 if ( LTDI ( tmp_tmp
, 0 )) {
21181 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21182 written
|= ( 1 << 12 );
21183 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21185 frvbf_media_overflow ( current_cpu
, 4 );
21189 UHI opval
= tmp_tmp
;
21190 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21191 written
|= ( 1 << 12 );
21192 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21200 abuf
-> written
= written
;
21205 /* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21208 SEM_FN_NAME ( frvbf
, mqaddhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
21210 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21211 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
21212 int UNUSED written
= 0 ;
21213 IADDR UNUSED pc
= abuf
-> addr
;
21214 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
21216 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
21217 frvbf_media_register_not_aligned ( current_cpu
);
21225 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
21226 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
21227 written
|= ( 1 << 14 );
21228 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
21231 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21232 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21233 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21234 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21238 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
21239 if ( GTDI ( tmp_tmp
, 32767 )) {
21243 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21244 written
|= ( 1 << 15 );
21245 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21247 frvbf_media_overflow ( current_cpu
, 8 );
21250 if ( LTDI ( tmp_tmp
, - 32768 )) {
21253 UHI opval
= - 32768 ;
21254 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21255 written
|= ( 1 << 15 );
21256 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21258 frvbf_media_overflow ( current_cpu
, 8 );
21262 UHI opval
= tmp_tmp
;
21263 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21264 written
|= ( 1 << 15 );
21265 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21272 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
21273 if ( GTDI ( tmp_tmp
, 32767 )) {
21277 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21278 written
|= ( 1 << 17 );
21279 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21281 frvbf_media_overflow ( current_cpu
, 4 );
21284 if ( LTDI ( tmp_tmp
, - 32768 )) {
21287 UHI opval
= - 32768 ;
21288 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21289 written
|= ( 1 << 17 );
21290 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21292 frvbf_media_overflow ( current_cpu
, 4 );
21296 UHI opval
= tmp_tmp
;
21297 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21298 written
|= ( 1 << 17 );
21299 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21305 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21306 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21307 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21308 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21312 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
21313 if ( GTDI ( tmp_tmp
, 32767 )) {
21317 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21318 written
|= ( 1 << 16 );
21319 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21321 frvbf_media_overflow ( current_cpu
, 2 );
21324 if ( LTDI ( tmp_tmp
, - 32768 )) {
21327 UHI opval
= - 32768 ;
21328 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21329 written
|= ( 1 << 16 );
21330 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21332 frvbf_media_overflow ( current_cpu
, 2 );
21336 UHI opval
= tmp_tmp
;
21337 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21338 written
|= ( 1 << 16 );
21339 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21346 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
21347 if ( GTDI ( tmp_tmp
, 32767 )) {
21351 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21352 written
|= ( 1 << 18 );
21353 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21355 frvbf_media_overflow ( current_cpu
, 1 );
21358 if ( LTDI ( tmp_tmp
, - 32768 )) {
21361 UHI opval
= - 32768 ;
21362 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21363 written
|= ( 1 << 18 );
21364 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21366 frvbf_media_overflow ( current_cpu
, 1 );
21370 UHI opval
= tmp_tmp
;
21371 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21372 written
|= ( 1 << 18 );
21373 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21381 abuf
-> written
= written
;
21386 /* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21389 SEM_FN_NAME ( frvbf
, mqaddhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
21391 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21392 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
21393 int UNUSED written
= 0 ;
21394 IADDR UNUSED pc
= abuf
-> addr
;
21395 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
21397 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
21398 frvbf_media_register_not_aligned ( current_cpu
);
21406 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
21407 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
21408 written
|= ( 1 << 14 );
21409 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
21412 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21413 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21414 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21415 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21419 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
21420 if ( GTDI ( tmp_tmp
, 65535 )) {
21424 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21425 written
|= ( 1 << 15 );
21426 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21428 frvbf_media_overflow ( current_cpu
, 8 );
21431 if ( LTDI ( tmp_tmp
, 0 )) {
21435 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21436 written
|= ( 1 << 15 );
21437 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21439 frvbf_media_overflow ( current_cpu
, 8 );
21443 UHI opval
= tmp_tmp
;
21444 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21445 written
|= ( 1 << 15 );
21446 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21453 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
21454 if ( GTDI ( tmp_tmp
, 65535 )) {
21458 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21459 written
|= ( 1 << 17 );
21460 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21462 frvbf_media_overflow ( current_cpu
, 4 );
21465 if ( LTDI ( tmp_tmp
, 0 )) {
21469 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21470 written
|= ( 1 << 17 );
21471 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21473 frvbf_media_overflow ( current_cpu
, 4 );
21477 UHI opval
= tmp_tmp
;
21478 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21479 written
|= ( 1 << 17 );
21480 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21486 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21487 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21488 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21489 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21493 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
21494 if ( GTDI ( tmp_tmp
, 65535 )) {
21498 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21499 written
|= ( 1 << 16 );
21500 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21502 frvbf_media_overflow ( current_cpu
, 2 );
21505 if ( LTDI ( tmp_tmp
, 0 )) {
21509 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21510 written
|= ( 1 << 16 );
21511 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21513 frvbf_media_overflow ( current_cpu
, 2 );
21517 UHI opval
= tmp_tmp
;
21518 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21519 written
|= ( 1 << 16 );
21520 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21527 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
21528 if ( GTDI ( tmp_tmp
, 65535 )) {
21532 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21533 written
|= ( 1 << 18 );
21534 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21536 frvbf_media_overflow ( current_cpu
, 1 );
21539 if ( LTDI ( tmp_tmp
, 0 )) {
21543 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21544 written
|= ( 1 << 18 );
21545 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21547 frvbf_media_overflow ( current_cpu
, 1 );
21551 UHI opval
= tmp_tmp
;
21552 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21553 written
|= ( 1 << 18 );
21554 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21562 abuf
-> written
= written
;
21567 /* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21570 SEM_FN_NAME ( frvbf
, mqsubhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
21572 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21573 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
21574 int UNUSED written
= 0 ;
21575 IADDR UNUSED pc
= abuf
-> addr
;
21576 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
21578 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
21579 frvbf_media_register_not_aligned ( current_cpu
);
21587 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
21588 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
21589 written
|= ( 1 << 14 );
21590 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
21593 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21594 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21595 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21596 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21600 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
21601 if ( GTDI ( tmp_tmp
, 32767 )) {
21605 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21606 written
|= ( 1 << 15 );
21607 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21609 frvbf_media_overflow ( current_cpu
, 8 );
21612 if ( LTDI ( tmp_tmp
, - 32768 )) {
21615 UHI opval
= - 32768 ;
21616 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21617 written
|= ( 1 << 15 );
21618 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21620 frvbf_media_overflow ( current_cpu
, 8 );
21624 UHI opval
= tmp_tmp
;
21625 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21626 written
|= ( 1 << 15 );
21627 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21634 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
21635 if ( GTDI ( tmp_tmp
, 32767 )) {
21639 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21640 written
|= ( 1 << 17 );
21641 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21643 frvbf_media_overflow ( current_cpu
, 4 );
21646 if ( LTDI ( tmp_tmp
, - 32768 )) {
21649 UHI opval
= - 32768 ;
21650 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21651 written
|= ( 1 << 17 );
21652 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21654 frvbf_media_overflow ( current_cpu
, 4 );
21658 UHI opval
= tmp_tmp
;
21659 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21660 written
|= ( 1 << 17 );
21661 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21667 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21668 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21669 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21670 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21674 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
21675 if ( GTDI ( tmp_tmp
, 32767 )) {
21679 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21680 written
|= ( 1 << 16 );
21681 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21683 frvbf_media_overflow ( current_cpu
, 2 );
21686 if ( LTDI ( tmp_tmp
, - 32768 )) {
21689 UHI opval
= - 32768 ;
21690 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21691 written
|= ( 1 << 16 );
21692 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21694 frvbf_media_overflow ( current_cpu
, 2 );
21698 UHI opval
= tmp_tmp
;
21699 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21700 written
|= ( 1 << 16 );
21701 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21708 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
21709 if ( GTDI ( tmp_tmp
, 32767 )) {
21713 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21714 written
|= ( 1 << 18 );
21715 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21717 frvbf_media_overflow ( current_cpu
, 1 );
21720 if ( LTDI ( tmp_tmp
, - 32768 )) {
21723 UHI opval
= - 32768 ;
21724 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21725 written
|= ( 1 << 18 );
21726 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21728 frvbf_media_overflow ( current_cpu
, 1 );
21732 UHI opval
= tmp_tmp
;
21733 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21734 written
|= ( 1 << 18 );
21735 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21743 abuf
-> written
= written
;
21748 /* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21751 SEM_FN_NAME ( frvbf
, mqsubhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
21753 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21754 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
21755 int UNUSED written
= 0 ;
21756 IADDR UNUSED pc
= abuf
-> addr
;
21757 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
21759 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
21760 frvbf_media_register_not_aligned ( current_cpu
);
21768 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
21769 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
21770 written
|= ( 1 << 14 );
21771 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
21774 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21775 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21776 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21777 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21781 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
21782 if ( GTDI ( tmp_tmp
, 65535 )) {
21786 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21787 written
|= ( 1 << 15 );
21788 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21790 frvbf_media_overflow ( current_cpu
, 8 );
21793 if ( LTDI ( tmp_tmp
, 0 )) {
21797 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21798 written
|= ( 1 << 15 );
21799 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21801 frvbf_media_overflow ( current_cpu
, 8 );
21805 UHI opval
= tmp_tmp
;
21806 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21807 written
|= ( 1 << 15 );
21808 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21815 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
21816 if ( GTDI ( tmp_tmp
, 65535 )) {
21820 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21821 written
|= ( 1 << 17 );
21822 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21824 frvbf_media_overflow ( current_cpu
, 4 );
21827 if ( LTDI ( tmp_tmp
, 0 )) {
21831 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21832 written
|= ( 1 << 17 );
21833 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21835 frvbf_media_overflow ( current_cpu
, 4 );
21839 UHI opval
= tmp_tmp
;
21840 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21841 written
|= ( 1 << 17 );
21842 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21848 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21849 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21850 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21851 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21855 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
21856 if ( GTDI ( tmp_tmp
, 65535 )) {
21860 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21861 written
|= ( 1 << 16 );
21862 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21864 frvbf_media_overflow ( current_cpu
, 2 );
21867 if ( LTDI ( tmp_tmp
, 0 )) {
21871 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21872 written
|= ( 1 << 16 );
21873 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21875 frvbf_media_overflow ( current_cpu
, 2 );
21879 UHI opval
= tmp_tmp
;
21880 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21881 written
|= ( 1 << 16 );
21882 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21889 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
21890 if ( GTDI ( tmp_tmp
, 65535 )) {
21894 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21895 written
|= ( 1 << 18 );
21896 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21898 frvbf_media_overflow ( current_cpu
, 1 );
21901 if ( LTDI ( tmp_tmp
, 0 )) {
21905 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21906 written
|= ( 1 << 18 );
21907 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21909 frvbf_media_overflow ( current_cpu
, 1 );
21913 UHI opval
= tmp_tmp
;
21914 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21915 written
|= ( 1 << 18 );
21916 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21924 abuf
-> written
= written
;
21929 /* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
21932 SEM_FN_NAME ( frvbf
, cmqaddhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
21934 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21935 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
21936 int UNUSED written
= 0 ;
21937 IADDR UNUSED pc
= abuf
-> addr
;
21938 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
21940 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
21941 frvbf_media_register_not_aligned ( current_cpu
);
21943 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
21950 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
21951 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
21952 written
|= ( 1 << 16 );
21953 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
21956 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21957 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21958 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21959 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21963 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
21964 if ( GTDI ( tmp_tmp
, 32767 )) {
21968 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21969 written
|= ( 1 << 17 );
21970 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21972 frvbf_media_overflow ( current_cpu
, 8 );
21975 if ( LTDI ( tmp_tmp
, - 32768 )) {
21978 UHI opval
= - 32768 ;
21979 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21980 written
|= ( 1 << 17 );
21981 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21983 frvbf_media_overflow ( current_cpu
, 8 );
21987 UHI opval
= tmp_tmp
;
21988 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21989 written
|= ( 1 << 17 );
21990 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21997 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
21998 if ( GTDI ( tmp_tmp
, 32767 )) {
22002 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22003 written
|= ( 1 << 19 );
22004 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22006 frvbf_media_overflow ( current_cpu
, 4 );
22009 if ( LTDI ( tmp_tmp
, - 32768 )) {
22012 UHI opval
= - 32768 ;
22013 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22014 written
|= ( 1 << 19 );
22015 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22017 frvbf_media_overflow ( current_cpu
, 4 );
22021 UHI opval
= tmp_tmp
;
22022 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22023 written
|= ( 1 << 19 );
22024 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22030 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22031 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22032 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22033 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22037 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
22038 if ( GTDI ( tmp_tmp
, 32767 )) {
22042 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22043 written
|= ( 1 << 18 );
22044 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22046 frvbf_media_overflow ( current_cpu
, 2 );
22049 if ( LTDI ( tmp_tmp
, - 32768 )) {
22052 UHI opval
= - 32768 ;
22053 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22054 written
|= ( 1 << 18 );
22055 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22057 frvbf_media_overflow ( current_cpu
, 2 );
22061 UHI opval
= tmp_tmp
;
22062 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22063 written
|= ( 1 << 18 );
22064 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22071 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
22072 if ( GTDI ( tmp_tmp
, 32767 )) {
22076 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22077 written
|= ( 1 << 20 );
22078 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22080 frvbf_media_overflow ( current_cpu
, 1 );
22083 if ( LTDI ( tmp_tmp
, - 32768 )) {
22086 UHI opval
= - 32768 ;
22087 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22088 written
|= ( 1 << 20 );
22089 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22091 frvbf_media_overflow ( current_cpu
, 1 );
22095 UHI opval
= tmp_tmp
;
22096 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22097 written
|= ( 1 << 20 );
22098 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22107 abuf
-> written
= written
;
22112 /* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22115 SEM_FN_NAME ( frvbf
, cmqaddhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22117 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22118 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22119 int UNUSED written
= 0 ;
22120 IADDR UNUSED pc
= abuf
-> addr
;
22121 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22123 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
22124 frvbf_media_register_not_aligned ( current_cpu
);
22126 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
22133 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
22134 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
22135 written
|= ( 1 << 16 );
22136 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22139 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22140 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22141 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22142 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22146 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
22147 if ( GTDI ( tmp_tmp
, 65535 )) {
22151 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22152 written
|= ( 1 << 17 );
22153 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22155 frvbf_media_overflow ( current_cpu
, 8 );
22158 if ( LTDI ( tmp_tmp
, 0 )) {
22162 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22163 written
|= ( 1 << 17 );
22164 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22166 frvbf_media_overflow ( current_cpu
, 8 );
22170 UHI opval
= tmp_tmp
;
22171 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22172 written
|= ( 1 << 17 );
22173 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22180 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
22181 if ( GTDI ( tmp_tmp
, 65535 )) {
22185 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22186 written
|= ( 1 << 19 );
22187 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22189 frvbf_media_overflow ( current_cpu
, 4 );
22192 if ( LTDI ( tmp_tmp
, 0 )) {
22196 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22197 written
|= ( 1 << 19 );
22198 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22200 frvbf_media_overflow ( current_cpu
, 4 );
22204 UHI opval
= tmp_tmp
;
22205 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22206 written
|= ( 1 << 19 );
22207 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22213 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22214 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22215 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22216 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22220 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
22221 if ( GTDI ( tmp_tmp
, 65535 )) {
22225 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22226 written
|= ( 1 << 18 );
22227 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22229 frvbf_media_overflow ( current_cpu
, 2 );
22232 if ( LTDI ( tmp_tmp
, 0 )) {
22236 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22237 written
|= ( 1 << 18 );
22238 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22240 frvbf_media_overflow ( current_cpu
, 2 );
22244 UHI opval
= tmp_tmp
;
22245 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22246 written
|= ( 1 << 18 );
22247 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22254 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
22255 if ( GTDI ( tmp_tmp
, 65535 )) {
22259 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22260 written
|= ( 1 << 20 );
22261 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22263 frvbf_media_overflow ( current_cpu
, 1 );
22266 if ( LTDI ( tmp_tmp
, 0 )) {
22270 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22271 written
|= ( 1 << 20 );
22272 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22274 frvbf_media_overflow ( current_cpu
, 1 );
22278 UHI opval
= tmp_tmp
;
22279 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22280 written
|= ( 1 << 20 );
22281 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22290 abuf
-> written
= written
;
22295 /* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22298 SEM_FN_NAME ( frvbf
, cmqsubhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22300 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22301 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22302 int UNUSED written
= 0 ;
22303 IADDR UNUSED pc
= abuf
-> addr
;
22304 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22306 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
22307 frvbf_media_register_not_aligned ( current_cpu
);
22309 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
22316 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
22317 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
22318 written
|= ( 1 << 16 );
22319 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22322 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22323 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22324 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22325 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22329 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
22330 if ( GTDI ( tmp_tmp
, 32767 )) {
22334 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22335 written
|= ( 1 << 17 );
22336 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22338 frvbf_media_overflow ( current_cpu
, 8 );
22341 if ( LTDI ( tmp_tmp
, - 32768 )) {
22344 UHI opval
= - 32768 ;
22345 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22346 written
|= ( 1 << 17 );
22347 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22349 frvbf_media_overflow ( current_cpu
, 8 );
22353 UHI opval
= tmp_tmp
;
22354 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22355 written
|= ( 1 << 17 );
22356 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22363 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
22364 if ( GTDI ( tmp_tmp
, 32767 )) {
22368 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22369 written
|= ( 1 << 19 );
22370 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22372 frvbf_media_overflow ( current_cpu
, 4 );
22375 if ( LTDI ( tmp_tmp
, - 32768 )) {
22378 UHI opval
= - 32768 ;
22379 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22380 written
|= ( 1 << 19 );
22381 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22383 frvbf_media_overflow ( current_cpu
, 4 );
22387 UHI opval
= tmp_tmp
;
22388 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22389 written
|= ( 1 << 19 );
22390 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22396 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22397 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22398 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22399 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22403 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
22404 if ( GTDI ( tmp_tmp
, 32767 )) {
22408 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22409 written
|= ( 1 << 18 );
22410 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22412 frvbf_media_overflow ( current_cpu
, 2 );
22415 if ( LTDI ( tmp_tmp
, - 32768 )) {
22418 UHI opval
= - 32768 ;
22419 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22420 written
|= ( 1 << 18 );
22421 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22423 frvbf_media_overflow ( current_cpu
, 2 );
22427 UHI opval
= tmp_tmp
;
22428 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22429 written
|= ( 1 << 18 );
22430 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22437 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
22438 if ( GTDI ( tmp_tmp
, 32767 )) {
22442 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22443 written
|= ( 1 << 20 );
22444 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22446 frvbf_media_overflow ( current_cpu
, 1 );
22449 if ( LTDI ( tmp_tmp
, - 32768 )) {
22452 UHI opval
= - 32768 ;
22453 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22454 written
|= ( 1 << 20 );
22455 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22457 frvbf_media_overflow ( current_cpu
, 1 );
22461 UHI opval
= tmp_tmp
;
22462 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22463 written
|= ( 1 << 20 );
22464 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22473 abuf
-> written
= written
;
22478 /* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22481 SEM_FN_NAME ( frvbf
, cmqsubhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22483 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22484 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22485 int UNUSED written
= 0 ;
22486 IADDR UNUSED pc
= abuf
-> addr
;
22487 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22489 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
22490 frvbf_media_register_not_aligned ( current_cpu
);
22492 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
22499 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
22500 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
22501 written
|= ( 1 << 16 );
22502 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22505 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22506 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22507 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22508 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22512 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
22513 if ( GTDI ( tmp_tmp
, 65535 )) {
22517 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22518 written
|= ( 1 << 17 );
22519 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22521 frvbf_media_overflow ( current_cpu
, 8 );
22524 if ( LTDI ( tmp_tmp
, 0 )) {
22528 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22529 written
|= ( 1 << 17 );
22530 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22532 frvbf_media_overflow ( current_cpu
, 8 );
22536 UHI opval
= tmp_tmp
;
22537 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22538 written
|= ( 1 << 17 );
22539 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22546 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
22547 if ( GTDI ( tmp_tmp
, 65535 )) {
22551 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22552 written
|= ( 1 << 19 );
22553 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22555 frvbf_media_overflow ( current_cpu
, 4 );
22558 if ( LTDI ( tmp_tmp
, 0 )) {
22562 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22563 written
|= ( 1 << 19 );
22564 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22566 frvbf_media_overflow ( current_cpu
, 4 );
22570 UHI opval
= tmp_tmp
;
22571 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22572 written
|= ( 1 << 19 );
22573 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22579 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22580 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22581 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22582 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22586 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
22587 if ( GTDI ( tmp_tmp
, 65535 )) {
22591 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22592 written
|= ( 1 << 18 );
22593 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22595 frvbf_media_overflow ( current_cpu
, 2 );
22598 if ( LTDI ( tmp_tmp
, 0 )) {
22602 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22603 written
|= ( 1 << 18 );
22604 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22606 frvbf_media_overflow ( current_cpu
, 2 );
22610 UHI opval
= tmp_tmp
;
22611 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22612 written
|= ( 1 << 18 );
22613 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22620 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
22621 if ( GTDI ( tmp_tmp
, 65535 )) {
22625 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22626 written
|= ( 1 << 20 );
22627 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22629 frvbf_media_overflow ( current_cpu
, 1 );
22632 if ( LTDI ( tmp_tmp
, 0 )) {
22636 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22637 written
|= ( 1 << 20 );
22638 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22640 frvbf_media_overflow ( current_cpu
, 1 );
22644 UHI opval
= tmp_tmp
;
22645 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22646 written
|= ( 1 << 20 );
22647 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22656 abuf
-> written
= written
;
22661 /* mqlclrhs: mqlclrhs$pack $FRintieven,$FRintjeven,$FRintkeven */
22664 SEM_FN_NAME ( frvbf
, mqlclrhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22666 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22667 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22668 int UNUSED written
= 0 ;
22669 IADDR UNUSED pc
= abuf
-> addr
;
22670 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22672 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
22673 frvbf_media_register_not_aligned ( current_cpu
);
22685 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
22686 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
22687 written
|= ( 1 << 14 );
22688 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22691 tmp_a1
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22692 tmp_a2
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22693 tmp_b1
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22694 tmp_b2
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22697 tmp_a3
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22698 tmp_a4
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22699 tmp_b3
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22700 tmp_b4
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22703 UHI opval
= ( LEUHI ( ABSHI ( tmp_a1
), ABSHI ( tmp_b1
))) ? ( 0 ) : ( LEHI ( 0 , tmp_b1
)) ? ( tmp_a1
) : ( EQHI ( tmp_a1
, - 32768 )) ? ( 32767 ) : ( NEGHI ( tmp_a1
));
22704 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22705 written
|= ( 1 << 15 );
22706 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22709 UHI opval
= ( LEUHI ( ABSHI ( tmp_a2
), ABSHI ( tmp_b2
))) ? ( 0 ) : ( LEHI ( 0 , tmp_b2
)) ? ( tmp_a2
) : ( EQHI ( tmp_a2
, - 32768 )) ? ( 32767 ) : ( NEGHI ( tmp_a2
));
22710 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22711 written
|= ( 1 << 17 );
22712 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22715 UHI opval
= ( LEUHI ( ABSHI ( tmp_a3
), ABSHI ( tmp_b3
))) ? ( 0 ) : ( LEHI ( 0 , tmp_b3
)) ? ( tmp_a3
) : ( EQHI ( tmp_a3
, - 32768 )) ? ( 32767 ) : ( NEGHI ( tmp_a3
));
22716 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22717 written
|= ( 1 << 16 );
22718 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22721 UHI opval
= ( LEUHI ( ABSHI ( tmp_a4
), ABSHI ( tmp_b4
))) ? ( 0 ) : ( LEHI ( 0 , tmp_b4
)) ? ( tmp_a4
) : ( EQHI ( tmp_a4
, - 32768 )) ? ( 32767 ) : ( NEGHI ( tmp_a4
));
22722 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22723 written
|= ( 1 << 18 );
22724 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22729 abuf
-> written
= written
;
22734 /* mqlmths: mqlmths$pack $FRintieven,$FRintjeven,$FRintkeven */
22737 SEM_FN_NAME ( frvbf
, mqlmths
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22739 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22740 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22741 int UNUSED written
= 0 ;
22742 IADDR UNUSED pc
= abuf
-> addr
;
22743 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22745 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
22746 frvbf_media_register_not_aligned ( current_cpu
);
22758 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
22759 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
22760 written
|= ( 1 << 14 );
22761 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22764 tmp_a1
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22765 tmp_a2
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22766 tmp_b1
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22767 tmp_b2
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22770 tmp_a3
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22771 tmp_a4
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22772 tmp_b3
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22773 tmp_b4
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22776 UHI opval
= ( ANDIF ( GTHI ( tmp_b1
, - 32768 ), GEHI ( tmp_a1
, ABSHI ( tmp_b1
)))) ? ( tmp_b1
) : ( GTHI ( tmp_a1
, NEGHI ( ABSHI ( tmp_b1
)))) ? ( tmp_a1
) : ( EQHI ( tmp_b1
, - 32768 )) ? ( 32767 ) : ( NEGHI ( tmp_b1
));
22777 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22778 written
|= ( 1 << 15 );
22779 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22782 UHI opval
= ( ANDIF ( GTHI ( tmp_b2
, - 32768 ), GEHI ( tmp_a2
, ABSHI ( tmp_b2
)))) ? ( tmp_b2
) : ( GTHI ( tmp_a2
, NEGHI ( ABSHI ( tmp_b2
)))) ? ( tmp_a2
) : ( EQHI ( tmp_b2
, - 32768 )) ? ( 32767 ) : ( NEGHI ( tmp_b2
));
22783 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22784 written
|= ( 1 << 17 );
22785 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22788 UHI opval
= ( ANDIF ( GTHI ( tmp_b3
, - 32768 ), GEHI ( tmp_a3
, ABSHI ( tmp_b3
)))) ? ( tmp_b3
) : ( GTHI ( tmp_a3
, NEGHI ( ABSHI ( tmp_b3
)))) ? ( tmp_a3
) : ( EQHI ( tmp_b3
, - 32768 )) ? ( 32767 ) : ( NEGHI ( tmp_b3
));
22789 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22790 written
|= ( 1 << 16 );
22791 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22794 UHI opval
= ( ANDIF ( GTHI ( tmp_b4
, - 32768 ), GEHI ( tmp_a4
, ABSHI ( tmp_b4
)))) ? ( tmp_b4
) : ( GTHI ( tmp_a4
, NEGHI ( ABSHI ( tmp_b4
)))) ? ( tmp_a4
) : ( EQHI ( tmp_b4
, - 32768 )) ? ( 32767 ) : ( NEGHI ( tmp_b4
));
22795 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22796 written
|= ( 1 << 18 );
22797 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22802 abuf
-> written
= written
;
22807 /* mqsllhi: mqsllhi$pack $FRintieven,$u6,$FRintkeven */
22810 SEM_FN_NAME ( frvbf
, mqsllhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22812 #define FLD(f) abuf->fields.sfmt_mqsllhi.f
22813 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22814 int UNUSED written
= 0 ;
22815 IADDR UNUSED pc
= abuf
-> addr
;
22816 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22818 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 )))) {
22819 frvbf_media_register_not_aligned ( current_cpu
);
22823 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
22824 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
22825 written
|= ( 1 << 9 );
22826 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22829 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
22830 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
22831 written
|= ( 1 << 10 );
22832 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22835 UHI opval
= SLLHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), ANDSI ( FLD ( f_u6
), 15 ));
22836 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22837 written
|= ( 1 << 11 );
22838 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22841 UHI opval
= SLLHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), ANDSI ( FLD ( f_u6
), 15 ));
22842 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22843 written
|= ( 1 << 13 );
22844 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22847 UHI opval
= SLLHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), ANDSI ( FLD ( f_u6
), 15 ));
22848 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22849 written
|= ( 1 << 12 );
22850 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22853 UHI opval
= SLLHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), ANDSI ( FLD ( f_u6
), 15 ));
22854 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22855 written
|= ( 1 << 14 );
22856 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22861 abuf
-> written
= written
;
22866 /* mqsrahi: mqsrahi$pack $FRintieven,$u6,$FRintkeven */
22869 SEM_FN_NAME ( frvbf
, mqsrahi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22871 #define FLD(f) abuf->fields.sfmt_mqsllhi.f
22872 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22873 int UNUSED written
= 0 ;
22874 IADDR UNUSED pc
= abuf
-> addr
;
22875 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22877 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 )))) {
22878 frvbf_media_register_not_aligned ( current_cpu
);
22882 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
22883 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
22884 written
|= ( 1 << 9 );
22885 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22888 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
22889 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
22890 written
|= ( 1 << 10 );
22891 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22894 UHI opval
= SRAHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), ANDSI ( FLD ( f_u6
), 15 ));
22895 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22896 written
|= ( 1 << 11 );
22897 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22900 UHI opval
= SRAHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), ANDSI ( FLD ( f_u6
), 15 ));
22901 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22902 written
|= ( 1 << 13 );
22903 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22906 UHI opval
= SRAHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), ANDSI ( FLD ( f_u6
), 15 ));
22907 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22908 written
|= ( 1 << 12 );
22909 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22912 UHI opval
= SRAHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), ANDSI ( FLD ( f_u6
), 15 ));
22913 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22914 written
|= ( 1 << 14 );
22915 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22920 abuf
-> written
= written
;
22925 /* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22928 SEM_FN_NAME ( frvbf
, maddaccs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22930 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22931 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22932 int UNUSED written
= 0 ;
22933 IADDR UNUSED pc
= abuf
-> addr
;
22934 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22936 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Si
))) {
22937 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
22938 if ( ANDSI ( FLD ( f_ACC40Si
), SUBSI ( 2 , 1 ))) {
22939 frvbf_media_acc_not_aligned ( current_cpu
);
22943 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 1 ))));
22944 if ( GTDI ( tmp_tmp
, 549755813887 )) {
22947 DI opval
= 549755813887 ;
22948 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
22949 written
|= ( 1 << 4 );
22950 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
22952 frvbf_media_overflow ( current_cpu
, 8 );
22955 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
22958 DI opval
= INVDI ( 549755813887 );
22959 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
22960 written
|= ( 1 << 4 );
22961 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
22963 frvbf_media_overflow ( current_cpu
, 8 );
22967 DI opval
= tmp_tmp
;
22968 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
22969 written
|= ( 1 << 4 );
22970 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
22979 abuf
-> written
= written
;
22984 /* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22987 SEM_FN_NAME ( frvbf
, msubaccs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22989 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22990 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22991 int UNUSED written
= 0 ;
22992 IADDR UNUSED pc
= abuf
-> addr
;
22993 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22995 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Si
))) {
22996 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
22997 if ( ANDSI ( FLD ( f_ACC40Si
), SUBSI ( 2 , 1 ))) {
22998 frvbf_media_acc_not_aligned ( current_cpu
);
23002 tmp_tmp
= SUBDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 1 ))));
23003 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23006 DI opval
= 549755813887 ;
23007 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23008 written
|= ( 1 << 4 );
23009 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23011 frvbf_media_overflow ( current_cpu
, 8 );
23014 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23017 DI opval
= INVDI ( 549755813887 );
23018 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23019 written
|= ( 1 << 4 );
23020 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23022 frvbf_media_overflow ( current_cpu
, 8 );
23026 DI opval
= tmp_tmp
;
23027 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23028 written
|= ( 1 << 4 );
23029 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23038 abuf
-> written
= written
;
23043 /* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
23046 SEM_FN_NAME ( frvbf
, mdaddaccs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23048 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23049 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23050 int UNUSED written
= 0 ;
23051 IADDR UNUSED pc
= abuf
-> addr
;
23052 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23054 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Si
))) {
23055 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23056 if ( ANDSI ( FLD ( f_ACC40Si
), SUBSI ( 4 , 1 ))) {
23057 frvbf_media_acc_not_aligned ( current_cpu
);
23059 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23060 frvbf_media_acc_not_aligned ( current_cpu
);
23065 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 1 ))));
23066 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23069 DI opval
= 549755813887 ;
23070 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23071 written
|= ( 1 << 6 );
23072 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23074 frvbf_media_overflow ( current_cpu
, 8 );
23077 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23080 DI opval
= INVDI ( 549755813887 );
23081 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23082 written
|= ( 1 << 6 );
23083 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23085 frvbf_media_overflow ( current_cpu
, 8 );
23089 DI opval
= tmp_tmp
;
23090 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23091 written
|= ( 1 << 6 );
23092 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23099 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 2 ))), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 3 ))));
23100 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23103 DI opval
= 549755813887 ;
23104 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23105 written
|= ( 1 << 7 );
23106 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23108 frvbf_media_overflow ( current_cpu
, 4 );
23111 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23114 DI opval
= INVDI ( 549755813887 );
23115 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23116 written
|= ( 1 << 7 );
23117 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23119 frvbf_media_overflow ( current_cpu
, 4 );
23123 DI opval
= tmp_tmp
;
23124 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23125 written
|= ( 1 << 7 );
23126 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23137 abuf
-> written
= written
;
23142 /* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
23145 SEM_FN_NAME ( frvbf
, mdsubaccs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23147 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23148 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23149 int UNUSED written
= 0 ;
23150 IADDR UNUSED pc
= abuf
-> addr
;
23151 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23153 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Si
))) {
23154 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23155 if ( ANDSI ( FLD ( f_ACC40Si
), SUBSI ( 4 , 1 ))) {
23156 frvbf_media_acc_not_aligned ( current_cpu
);
23158 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23159 frvbf_media_acc_not_aligned ( current_cpu
);
23164 tmp_tmp
= SUBDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 1 ))));
23165 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23168 DI opval
= 549755813887 ;
23169 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23170 written
|= ( 1 << 6 );
23171 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23173 frvbf_media_overflow ( current_cpu
, 8 );
23176 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23179 DI opval
= INVDI ( 549755813887 );
23180 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23181 written
|= ( 1 << 6 );
23182 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23184 frvbf_media_overflow ( current_cpu
, 8 );
23188 DI opval
= tmp_tmp
;
23189 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23190 written
|= ( 1 << 6 );
23191 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23198 tmp_tmp
= SUBDI ( GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 2 ))), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 3 ))));
23199 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23202 DI opval
= 549755813887 ;
23203 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23204 written
|= ( 1 << 7 );
23205 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23207 frvbf_media_overflow ( current_cpu
, 4 );
23210 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23213 DI opval
= INVDI ( 549755813887 );
23214 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23215 written
|= ( 1 << 7 );
23216 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23218 frvbf_media_overflow ( current_cpu
, 4 );
23222 DI opval
= tmp_tmp
;
23223 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23224 written
|= ( 1 << 7 );
23225 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23236 abuf
-> written
= written
;
23241 /* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
23244 SEM_FN_NAME ( frvbf
, masaccs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23246 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23247 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23248 int UNUSED written
= 0 ;
23249 IADDR UNUSED pc
= abuf
-> addr
;
23250 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23252 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Si
))) {
23253 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23254 if ( ANDSI ( FLD ( f_ACC40Si
), SUBSI ( 2 , 1 ))) {
23255 frvbf_media_acc_not_aligned ( current_cpu
);
23257 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23258 frvbf_media_acc_not_aligned ( current_cpu
);
23263 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 1 ))));
23264 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23267 DI opval
= 549755813887 ;
23268 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23269 written
|= ( 1 << 4 );
23270 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23272 frvbf_media_overflow ( current_cpu
, 8 );
23275 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23278 DI opval
= INVDI ( 549755813887 );
23279 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23280 written
|= ( 1 << 4 );
23281 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23283 frvbf_media_overflow ( current_cpu
, 8 );
23287 DI opval
= tmp_tmp
;
23288 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23289 written
|= ( 1 << 4 );
23290 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23297 tmp_tmp
= SUBDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 1 ))));
23298 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23301 DI opval
= 549755813887 ;
23302 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23303 written
|= ( 1 << 5 );
23304 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23306 frvbf_media_overflow ( current_cpu
, 4 );
23309 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23312 DI opval
= INVDI ( 549755813887 );
23313 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23314 written
|= ( 1 << 5 );
23315 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23317 frvbf_media_overflow ( current_cpu
, 4 );
23321 DI opval
= tmp_tmp
;
23322 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23323 written
|= ( 1 << 5 );
23324 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23335 abuf
-> written
= written
;
23340 /* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23343 SEM_FN_NAME ( frvbf
, mdasaccs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23345 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23346 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23347 int UNUSED written
= 0 ;
23348 IADDR UNUSED pc
= abuf
-> addr
;
23349 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23351 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Si
))) {
23352 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23353 if ( ANDSI ( FLD ( f_ACC40Si
), SUBSI ( 4 , 1 ))) {
23354 frvbf_media_acc_not_aligned ( current_cpu
);
23356 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
23357 frvbf_media_acc_not_aligned ( current_cpu
);
23362 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 1 ))));
23363 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23366 DI opval
= 549755813887 ;
23367 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23368 written
|= ( 1 << 6 );
23369 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23371 frvbf_media_overflow ( current_cpu
, 8 );
23374 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23377 DI opval
= INVDI ( 549755813887 );
23378 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23379 written
|= ( 1 << 6 );
23380 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23382 frvbf_media_overflow ( current_cpu
, 8 );
23386 DI opval
= tmp_tmp
;
23387 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23388 written
|= ( 1 << 6 );
23389 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23396 tmp_tmp
= SUBDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 1 ))));
23397 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23400 DI opval
= 549755813887 ;
23401 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23402 written
|= ( 1 << 7 );
23403 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23405 frvbf_media_overflow ( current_cpu
, 4 );
23408 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23411 DI opval
= INVDI ( 549755813887 );
23412 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23413 written
|= ( 1 << 7 );
23414 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23416 frvbf_media_overflow ( current_cpu
, 4 );
23420 DI opval
= tmp_tmp
;
23421 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23422 written
|= ( 1 << 7 );
23423 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23430 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 2 ))), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 3 ))));
23431 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23434 DI opval
= 549755813887 ;
23435 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
23436 written
|= ( 1 << 8 );
23437 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23439 frvbf_media_overflow ( current_cpu
, 2 );
23442 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23445 DI opval
= INVDI ( 549755813887 );
23446 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
23447 written
|= ( 1 << 8 );
23448 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23450 frvbf_media_overflow ( current_cpu
, 2 );
23454 DI opval
= tmp_tmp
;
23455 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
23456 written
|= ( 1 << 8 );
23457 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23464 tmp_tmp
= SUBDI ( GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 2 ))), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 3 ))));
23465 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23468 DI opval
= 549755813887 ;
23469 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
23470 written
|= ( 1 << 9 );
23471 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23473 frvbf_media_overflow ( current_cpu
, 1 );
23476 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23479 DI opval
= INVDI ( 549755813887 );
23480 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
23481 written
|= ( 1 << 9 );
23482 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23484 frvbf_media_overflow ( current_cpu
, 1 );
23488 DI opval
= tmp_tmp
;
23489 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
23490 written
|= ( 1 << 9 );
23491 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23502 abuf
-> written
= written
;
23507 /* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23510 SEM_FN_NAME ( frvbf
, mmulhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23512 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23513 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23514 int UNUSED written
= 0 ;
23515 IADDR UNUSED pc
= abuf
-> addr
;
23516 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23518 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23519 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23520 frvbf_media_acc_not_aligned ( current_cpu
);
23528 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23529 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23530 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23531 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23534 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
23535 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23536 written
|= ( 1 << 9 );
23537 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23540 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
23541 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23542 written
|= ( 1 << 10 );
23543 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23549 abuf
-> written
= written
;
23554 /* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23557 SEM_FN_NAME ( frvbf
, mmulhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23559 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23560 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23561 int UNUSED written
= 0 ;
23562 IADDR UNUSED pc
= abuf
-> addr
;
23563 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23565 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23566 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23567 frvbf_media_acc_not_aligned ( current_cpu
);
23575 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23576 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23577 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23578 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23581 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
23582 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23583 written
|= ( 1 << 9 );
23584 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23587 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
23588 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23589 written
|= ( 1 << 10 );
23590 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23596 abuf
-> written
= written
;
23601 /* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23604 SEM_FN_NAME ( frvbf
, mmulxhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23606 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23607 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23608 int UNUSED written
= 0 ;
23609 IADDR UNUSED pc
= abuf
-> addr
;
23610 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23612 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23613 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23614 frvbf_media_acc_not_aligned ( current_cpu
);
23622 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23623 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23624 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23625 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23628 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
));
23629 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23630 written
|= ( 1 << 9 );
23631 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23634 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
));
23635 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23636 written
|= ( 1 << 10 );
23637 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23643 abuf
-> written
= written
;
23648 /* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23651 SEM_FN_NAME ( frvbf
, mmulxhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23653 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23654 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23655 int UNUSED written
= 0 ;
23656 IADDR UNUSED pc
= abuf
-> addr
;
23657 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23659 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23660 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23661 frvbf_media_acc_not_aligned ( current_cpu
);
23669 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23670 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23671 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23672 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23675 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjlo
));
23676 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23677 written
|= ( 1 << 9 );
23678 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23681 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjhi
));
23682 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23683 written
|= ( 1 << 10 );
23684 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23690 abuf
-> written
= written
;
23695 /* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23698 SEM_FN_NAME ( frvbf
, cmmulhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23700 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23701 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23702 int UNUSED written
= 0 ;
23703 IADDR UNUSED pc
= abuf
-> addr
;
23704 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23706 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23707 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23708 frvbf_media_acc_not_aligned ( current_cpu
);
23710 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
23717 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23718 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23719 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23720 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23723 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
23724 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23725 written
|= ( 1 << 11 );
23726 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23729 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
23730 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23731 written
|= ( 1 << 12 );
23732 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23739 abuf
-> written
= written
;
23744 /* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23747 SEM_FN_NAME ( frvbf
, cmmulhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23749 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23750 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23751 int UNUSED written
= 0 ;
23752 IADDR UNUSED pc
= abuf
-> addr
;
23753 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23755 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23756 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23757 frvbf_media_acc_not_aligned ( current_cpu
);
23759 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
23766 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23767 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23768 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23769 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23772 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
23773 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23774 written
|= ( 1 << 11 );
23775 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23778 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
23779 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23780 written
|= ( 1 << 12 );
23781 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23788 abuf
-> written
= written
;
23793 /* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23796 SEM_FN_NAME ( frvbf
, mqmulhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23798 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23799 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23800 int UNUSED written
= 0 ;
23801 IADDR UNUSED pc
= abuf
-> addr
;
23802 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23804 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23805 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
23806 frvbf_media_acc_not_aligned ( current_cpu
);
23808 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
23809 frvbf_media_register_not_aligned ( current_cpu
);
23817 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23818 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23819 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23820 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23823 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
23824 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23825 written
|= ( 1 << 13 );
23826 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23829 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
23830 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23831 written
|= ( 1 << 14 );
23832 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23835 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23836 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23837 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23838 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23841 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
23842 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
23843 written
|= ( 1 << 15 );
23844 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23847 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
23848 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
23849 written
|= ( 1 << 16 );
23850 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23857 abuf
-> written
= written
;
23862 /* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23865 SEM_FN_NAME ( frvbf
, mqmulhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23867 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23868 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23869 int UNUSED written
= 0 ;
23870 IADDR UNUSED pc
= abuf
-> addr
;
23871 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23873 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23874 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
23875 frvbf_media_acc_not_aligned ( current_cpu
);
23877 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
23878 frvbf_media_register_not_aligned ( current_cpu
);
23886 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23887 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23888 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23889 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23892 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
23893 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23894 written
|= ( 1 << 13 );
23895 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23898 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
23899 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23900 written
|= ( 1 << 14 );
23901 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23904 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23905 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23906 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23907 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23910 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
23911 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
23912 written
|= ( 1 << 15 );
23913 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23916 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
23917 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
23918 written
|= ( 1 << 16 );
23919 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23926 abuf
-> written
= written
;
23931 /* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23934 SEM_FN_NAME ( frvbf
, mqmulxhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23936 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23937 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23938 int UNUSED written
= 0 ;
23939 IADDR UNUSED pc
= abuf
-> addr
;
23940 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23942 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23943 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
23944 frvbf_media_acc_not_aligned ( current_cpu
);
23946 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
23947 frvbf_media_register_not_aligned ( current_cpu
);
23955 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23956 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23957 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23958 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23961 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
));
23962 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23963 written
|= ( 1 << 13 );
23964 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23967 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
));
23968 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23969 written
|= ( 1 << 14 );
23970 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23973 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23974 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23975 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23976 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23979 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
));
23980 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
23981 written
|= ( 1 << 15 );
23982 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23985 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
));
23986 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
23987 written
|= ( 1 << 16 );
23988 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23995 abuf
-> written
= written
;
24000 /* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
24003 SEM_FN_NAME ( frvbf
, mqmulxhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24005 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24006 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24007 int UNUSED written
= 0 ;
24008 IADDR UNUSED pc
= abuf
-> addr
;
24009 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24011 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
24012 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
24013 frvbf_media_acc_not_aligned ( current_cpu
);
24015 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
24016 frvbf_media_register_not_aligned ( current_cpu
);
24024 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24025 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24026 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24027 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24030 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjlo
));
24031 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24032 written
|= ( 1 << 13 );
24033 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24036 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjhi
));
24037 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24038 written
|= ( 1 << 14 );
24039 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24042 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24043 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24044 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24045 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24048 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjlo
));
24049 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
24050 written
|= ( 1 << 15 );
24051 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24054 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjhi
));
24055 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
24056 written
|= ( 1 << 16 );
24057 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24064 abuf
-> written
= written
;
24069 /* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24072 SEM_FN_NAME ( frvbf
, cmqmulhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24074 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24075 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24076 int UNUSED written
= 0 ;
24077 IADDR UNUSED pc
= abuf
-> addr
;
24078 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24080 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
24081 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
24082 frvbf_media_acc_not_aligned ( current_cpu
);
24084 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
24085 frvbf_media_register_not_aligned ( current_cpu
);
24087 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
24094 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24095 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24096 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24097 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24100 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
24101 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24102 written
|= ( 1 << 15 );
24103 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24106 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
24107 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24108 written
|= ( 1 << 16 );
24109 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24112 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24113 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24114 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24115 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24118 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
24119 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
24120 written
|= ( 1 << 17 );
24121 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24124 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
24125 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
24126 written
|= ( 1 << 18 );
24127 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24135 abuf
-> written
= written
;
24140 /* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24143 SEM_FN_NAME ( frvbf
, cmqmulhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24145 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24146 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24147 int UNUSED written
= 0 ;
24148 IADDR UNUSED pc
= abuf
-> addr
;
24149 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24151 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
24152 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
24153 frvbf_media_acc_not_aligned ( current_cpu
);
24155 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
24156 frvbf_media_register_not_aligned ( current_cpu
);
24158 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
24165 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24166 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24167 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24168 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24171 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
24172 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24173 written
|= ( 1 << 15 );
24174 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24177 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
24178 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24179 written
|= ( 1 << 16 );
24180 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24183 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24184 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24185 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24186 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24189 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
24190 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
24191 written
|= ( 1 << 17 );
24192 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24195 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
24196 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
24197 written
|= ( 1 << 18 );
24198 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24206 abuf
-> written
= written
;
24211 /* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
24214 SEM_FN_NAME ( frvbf
, mmachs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24216 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24217 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24218 int UNUSED written
= 0 ;
24219 IADDR UNUSED pc
= abuf
-> addr
;
24220 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24222 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
24223 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
24224 frvbf_media_acc_not_aligned ( current_cpu
);
24232 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24233 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24234 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24235 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24239 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
24240 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24243 DI opval
= MAKEDI ( 127 , 0xffffffff );
24244 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24245 written
|= ( 1 << 11 );
24246 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24248 frvbf_media_overflow ( current_cpu
, 8 );
24251 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24254 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24255 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24256 written
|= ( 1 << 11 );
24257 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24259 frvbf_media_overflow ( current_cpu
, 8 );
24263 DI opval
= tmp_tmp
;
24264 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24265 written
|= ( 1 << 11 );
24266 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24273 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 1 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
24274 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24277 DI opval
= MAKEDI ( 127 , 0xffffffff );
24278 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24279 written
|= ( 1 << 12 );
24280 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24282 frvbf_media_overflow ( current_cpu
, 4 );
24285 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24288 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24289 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24290 written
|= ( 1 << 12 );
24291 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24293 frvbf_media_overflow ( current_cpu
, 4 );
24297 DI opval
= tmp_tmp
;
24298 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24299 written
|= ( 1 << 12 );
24300 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24309 abuf
-> written
= written
;
24314 /* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24317 SEM_FN_NAME ( frvbf
, mmachu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24319 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24320 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24321 int UNUSED written
= 0 ;
24322 IADDR UNUSED pc
= abuf
-> addr
;
24323 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24325 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Uk
))) {
24326 if ( ANDSI ( FLD ( f_ACC40Uk
), SUBSI ( 2 , 1 ))) {
24327 frvbf_media_acc_not_aligned ( current_cpu
);
24335 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24336 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24337 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24338 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24342 tmp_tmp
= ADDDI ( GET_H_ACC40U ( FLD ( f_ACC40Uk
)), MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
)));
24343 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
24346 UDI opval
= MAKEDI ( 255 , 0xffffffff );
24347 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24348 written
|= ( 1 << 11 );
24349 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24351 frvbf_media_overflow ( current_cpu
, 8 );
24354 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
24357 UDI opval
= MAKEDI ( 0 , 0 );
24358 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24359 written
|= ( 1 << 11 );
24360 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24362 frvbf_media_overflow ( current_cpu
, 8 );
24366 UDI opval
= tmp_tmp
;
24367 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24368 written
|= ( 1 << 11 );
24369 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24376 tmp_tmp
= ADDDI ( GET_H_ACC40U ((( FLD ( f_ACC40Uk
)) + ( 1 ))), MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
)));
24377 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
24380 UDI opval
= MAKEDI ( 255 , 0xffffffff );
24381 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
24382 written
|= ( 1 << 12 );
24383 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24385 frvbf_media_overflow ( current_cpu
, 4 );
24388 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
24391 UDI opval
= MAKEDI ( 0 , 0 );
24392 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
24393 written
|= ( 1 << 12 );
24394 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24396 frvbf_media_overflow ( current_cpu
, 4 );
24400 UDI opval
= tmp_tmp
;
24401 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
24402 written
|= ( 1 << 12 );
24403 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24412 abuf
-> written
= written
;
24417 /* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24420 SEM_FN_NAME ( frvbf
, mmrdhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24422 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24423 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24424 int UNUSED written
= 0 ;
24425 IADDR UNUSED pc
= abuf
-> addr
;
24426 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24428 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
24429 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
24430 frvbf_media_acc_not_aligned ( current_cpu
);
24438 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24439 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24440 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24441 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24445 tmp_tmp
= SUBDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
24446 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24449 DI opval
= MAKEDI ( 127 , 0xffffffff );
24450 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24451 written
|= ( 1 << 11 );
24452 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24454 frvbf_media_overflow ( current_cpu
, 8 );
24457 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24460 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24461 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24462 written
|= ( 1 << 11 );
24463 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24465 frvbf_media_overflow ( current_cpu
, 8 );
24469 DI opval
= tmp_tmp
;
24470 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24471 written
|= ( 1 << 11 );
24472 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24479 tmp_tmp
= SUBDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 1 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
24480 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24483 DI opval
= MAKEDI ( 127 , 0xffffffff );
24484 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24485 written
|= ( 1 << 12 );
24486 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24488 frvbf_media_overflow ( current_cpu
, 4 );
24491 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24494 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24495 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24496 written
|= ( 1 << 12 );
24497 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24499 frvbf_media_overflow ( current_cpu
, 4 );
24503 DI opval
= tmp_tmp
;
24504 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24505 written
|= ( 1 << 12 );
24506 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24515 abuf
-> written
= written
;
24520 /* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24523 SEM_FN_NAME ( frvbf
, mmrdhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24525 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24526 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24527 int UNUSED written
= 0 ;
24528 IADDR UNUSED pc
= abuf
-> addr
;
24529 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24531 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Uk
))) {
24532 if ( ANDSI ( FLD ( f_ACC40Uk
), SUBSI ( 2 , 1 ))) {
24533 frvbf_media_acc_not_aligned ( current_cpu
);
24541 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24542 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24543 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24544 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24548 tmp_tmp
= SUBDI ( GET_H_ACC40U ( FLD ( f_ACC40Uk
)), MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
)));
24549 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
24552 UDI opval
= MAKEDI ( 255 , 0xffffffff );
24553 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24554 written
|= ( 1 << 11 );
24555 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24557 frvbf_media_overflow ( current_cpu
, 8 );
24560 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
24563 UDI opval
= MAKEDI ( 0 , 0 );
24564 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24565 written
|= ( 1 << 11 );
24566 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24568 frvbf_media_overflow ( current_cpu
, 8 );
24572 UDI opval
= tmp_tmp
;
24573 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24574 written
|= ( 1 << 11 );
24575 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24582 tmp_tmp
= SUBDI ( GET_H_ACC40U ((( FLD ( f_ACC40Uk
)) + ( 1 ))), MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
)));
24583 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
24586 UDI opval
= MAKEDI ( 255 , 0xffffffff );
24587 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
24588 written
|= ( 1 << 12 );
24589 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24591 frvbf_media_overflow ( current_cpu
, 4 );
24594 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
24597 UDI opval
= MAKEDI ( 0 , 0 );
24598 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
24599 written
|= ( 1 << 12 );
24600 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24602 frvbf_media_overflow ( current_cpu
, 4 );
24606 UDI opval
= tmp_tmp
;
24607 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
24608 written
|= ( 1 << 12 );
24609 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24618 abuf
-> written
= written
;
24623 /* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24626 SEM_FN_NAME ( frvbf
, cmmachs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24628 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24629 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24630 int UNUSED written
= 0 ;
24631 IADDR UNUSED pc
= abuf
-> addr
;
24632 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24634 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
24635 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
24636 frvbf_media_acc_not_aligned ( current_cpu
);
24638 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
24645 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24646 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24647 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24648 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24652 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
24653 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24656 DI opval
= MAKEDI ( 127 , 0xffffffff );
24657 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24658 written
|= ( 1 << 13 );
24659 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24661 frvbf_media_overflow ( current_cpu
, 8 );
24664 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24667 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24668 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24669 written
|= ( 1 << 13 );
24670 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24672 frvbf_media_overflow ( current_cpu
, 8 );
24676 DI opval
= tmp_tmp
;
24677 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24678 written
|= ( 1 << 13 );
24679 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24686 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 1 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
24687 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24690 DI opval
= MAKEDI ( 127 , 0xffffffff );
24691 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24692 written
|= ( 1 << 14 );
24693 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24695 frvbf_media_overflow ( current_cpu
, 4 );
24698 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24701 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24702 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24703 written
|= ( 1 << 14 );
24704 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24706 frvbf_media_overflow ( current_cpu
, 4 );
24710 DI opval
= tmp_tmp
;
24711 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24712 written
|= ( 1 << 14 );
24713 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24723 abuf
-> written
= written
;
24728 /* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24731 SEM_FN_NAME ( frvbf
, cmmachu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24733 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24734 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24735 int UNUSED written
= 0 ;
24736 IADDR UNUSED pc
= abuf
-> addr
;
24737 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24739 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Uk
))) {
24740 if ( ANDSI ( FLD ( f_ACC40Uk
), SUBSI ( 2 , 1 ))) {
24741 frvbf_media_acc_not_aligned ( current_cpu
);
24743 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
24750 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24751 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24752 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24753 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24757 tmp_tmp
= ADDDI ( GET_H_ACC40U ( FLD ( f_ACC40Uk
)), MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
)));
24758 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
24761 UDI opval
= MAKEDI ( 255 , 0xffffffff );
24762 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24763 written
|= ( 1 << 13 );
24764 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24766 frvbf_media_overflow ( current_cpu
, 8 );
24769 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
24772 UDI opval
= MAKEDI ( 0 , 0 );
24773 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24774 written
|= ( 1 << 13 );
24775 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24777 frvbf_media_overflow ( current_cpu
, 8 );
24781 UDI opval
= tmp_tmp
;
24782 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24783 written
|= ( 1 << 13 );
24784 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24791 tmp_tmp
= ADDDI ( GET_H_ACC40U ((( FLD ( f_ACC40Uk
)) + ( 1 ))), MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
)));
24792 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
24795 UDI opval
= MAKEDI ( 255 , 0xffffffff );
24796 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
24797 written
|= ( 1 << 14 );
24798 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24800 frvbf_media_overflow ( current_cpu
, 4 );
24803 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
24806 UDI opval
= MAKEDI ( 0 , 0 );
24807 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
24808 written
|= ( 1 << 14 );
24809 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24811 frvbf_media_overflow ( current_cpu
, 4 );
24815 UDI opval
= tmp_tmp
;
24816 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
24817 written
|= ( 1 << 14 );
24818 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24828 abuf
-> written
= written
;
24833 /* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24836 SEM_FN_NAME ( frvbf
, mqmachs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24838 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24839 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24840 int UNUSED written
= 0 ;
24841 IADDR UNUSED pc
= abuf
-> addr
;
24842 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24844 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
24845 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
24846 frvbf_media_acc_not_aligned ( current_cpu
);
24848 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
24849 frvbf_media_register_not_aligned ( current_cpu
);
24857 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24858 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24859 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24860 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24864 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
24865 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24868 DI opval
= MAKEDI ( 127 , 0xffffffff );
24869 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24870 written
|= ( 1 << 17 );
24871 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24873 frvbf_media_overflow ( current_cpu
, 8 );
24876 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24879 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24880 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24881 written
|= ( 1 << 17 );
24882 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24884 frvbf_media_overflow ( current_cpu
, 8 );
24888 DI opval
= tmp_tmp
;
24889 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24890 written
|= ( 1 << 17 );
24891 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24898 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 1 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
24899 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24902 DI opval
= MAKEDI ( 127 , 0xffffffff );
24903 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24904 written
|= ( 1 << 18 );
24905 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24907 frvbf_media_overflow ( current_cpu
, 4 );
24910 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24913 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24914 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24915 written
|= ( 1 << 18 );
24916 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24918 frvbf_media_overflow ( current_cpu
, 4 );
24922 DI opval
= tmp_tmp
;
24923 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24924 written
|= ( 1 << 18 );
24925 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24931 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24932 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24933 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24934 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24938 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 2 ))), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
24939 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24942 DI opval
= MAKEDI ( 127 , 0xffffffff );
24943 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
24944 written
|= ( 1 << 19 );
24945 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24947 frvbf_media_overflow ( current_cpu
, 2 );
24950 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24953 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24954 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
24955 written
|= ( 1 << 19 );
24956 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24958 frvbf_media_overflow ( current_cpu
, 2 );
24962 DI opval
= tmp_tmp
;
24963 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
24964 written
|= ( 1 << 19 );
24965 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24972 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 3 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
24973 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24976 DI opval
= MAKEDI ( 127 , 0xffffffff );
24977 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
24978 written
|= ( 1 << 20 );
24979 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24981 frvbf_media_overflow ( current_cpu
, 1 );
24984 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24987 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24988 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
24989 written
|= ( 1 << 20 );
24990 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24992 frvbf_media_overflow ( current_cpu
, 1 );
24996 DI opval
= tmp_tmp
;
24997 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
24998 written
|= ( 1 << 20 );
24999 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25009 abuf
-> written
= written
;
25014 /* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
25017 SEM_FN_NAME ( frvbf
, mqmachu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
25019 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25020 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
25021 int UNUSED written
= 0 ;
25022 IADDR UNUSED pc
= abuf
-> addr
;
25023 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
25025 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Uk
))) {
25026 if ( ANDSI ( FLD ( f_ACC40Uk
), SUBSI ( 4 , 1 ))) {
25027 frvbf_media_acc_not_aligned ( current_cpu
);
25029 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
25030 frvbf_media_register_not_aligned ( current_cpu
);
25038 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25039 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25040 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25041 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25045 tmp_tmp
= ADDDI ( GET_H_ACC40U ( FLD ( f_ACC40Uk
)), MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
)));
25046 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25049 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25050 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
25051 written
|= ( 1 << 17 );
25052 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25054 frvbf_media_overflow ( current_cpu
, 8 );
25057 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25060 UDI opval
= MAKEDI ( 0 , 0 );
25061 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
25062 written
|= ( 1 << 17 );
25063 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25065 frvbf_media_overflow ( current_cpu
, 8 );
25069 UDI opval
= tmp_tmp
;
25070 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
25071 written
|= ( 1 << 17 );
25072 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25079 tmp_tmp
= ADDDI ( GET_H_ACC40U ((( FLD ( f_ACC40Uk
)) + ( 1 ))), MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
)));
25080 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25083 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25084 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
25085 written
|= ( 1 << 18 );
25086 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25088 frvbf_media_overflow ( current_cpu
, 4 );
25091 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25094 UDI opval
= MAKEDI ( 0 , 0 );
25095 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
25096 written
|= ( 1 << 18 );
25097 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25099 frvbf_media_overflow ( current_cpu
, 4 );
25103 UDI opval
= tmp_tmp
;
25104 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
25105 written
|= ( 1 << 18 );
25106 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25112 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25113 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25114 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25115 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25119 tmp_tmp
= ADDDI ( GET_H_ACC40U ((( FLD ( f_ACC40Uk
)) + ( 2 ))), MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
)));
25120 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25123 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25124 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 2 )), opval
);
25125 written
|= ( 1 << 19 );
25126 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25128 frvbf_media_overflow ( current_cpu
, 2 );
25131 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25134 UDI opval
= MAKEDI ( 0 , 0 );
25135 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 2 )), opval
);
25136 written
|= ( 1 << 19 );
25137 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25139 frvbf_media_overflow ( current_cpu
, 2 );
25143 UDI opval
= tmp_tmp
;
25144 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 2 )), opval
);
25145 written
|= ( 1 << 19 );
25146 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25153 tmp_tmp
= ADDDI ( GET_H_ACC40U ((( FLD ( f_ACC40Uk
)) + ( 3 ))), MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
)));
25154 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25157 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25158 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 3 )), opval
);
25159 written
|= ( 1 << 20 );
25160 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25162 frvbf_media_overflow ( current_cpu
, 1 );
25165 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25168 UDI opval
= MAKEDI ( 0 , 0 );
25169 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 3 )), opval
);
25170 written
|= ( 1 << 20 );
25171 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25173 frvbf_media_overflow ( current_cpu
, 1 );
25177 UDI opval
= tmp_tmp
;
25178 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 3 )), opval
);
25179 written
|= ( 1 << 20 );
25180 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25190 abuf
-> written
= written
;
25195 /* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
25198 SEM_FN_NAME ( frvbf
, cmqmachs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
25200 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25201 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
25202 int UNUSED written
= 0 ;
25203 IADDR UNUSED pc
= abuf
-> addr
;
25204 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
25206 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
25207 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
25208 frvbf_media_acc_not_aligned ( current_cpu
);
25210 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
25211 frvbf_media_register_not_aligned ( current_cpu
);
25213 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
25220 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25221 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25222 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25223 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25227 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
25228 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25231 DI opval
= MAKEDI ( 127 , 0xffffffff );
25232 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25233 written
|= ( 1 << 19 );
25234 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25236 frvbf_media_overflow ( current_cpu
, 8 );
25239 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25242 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25243 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25244 written
|= ( 1 << 19 );
25245 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25247 frvbf_media_overflow ( current_cpu
, 8 );
25251 DI opval
= tmp_tmp
;
25252 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25253 written
|= ( 1 << 19 );
25254 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25261 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 1 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
25262 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25265 DI opval
= MAKEDI ( 127 , 0xffffffff );
25266 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
25267 written
|= ( 1 << 20 );
25268 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25270 frvbf_media_overflow ( current_cpu
, 4 );
25273 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25276 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25277 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
25278 written
|= ( 1 << 20 );
25279 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25281 frvbf_media_overflow ( current_cpu
, 4 );
25285 DI opval
= tmp_tmp
;
25286 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
25287 written
|= ( 1 << 20 );
25288 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25294 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25295 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25296 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25297 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25301 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 2 ))), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
25302 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25305 DI opval
= MAKEDI ( 127 , 0xffffffff );
25306 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
25307 written
|= ( 1 << 21 );
25308 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25310 frvbf_media_overflow ( current_cpu
, 2 );
25313 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25316 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25317 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
25318 written
|= ( 1 << 21 );
25319 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25321 frvbf_media_overflow ( current_cpu
, 2 );
25325 DI opval
= tmp_tmp
;
25326 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
25327 written
|= ( 1 << 21 );
25328 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25335 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 3 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
25336 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25339 DI opval
= MAKEDI ( 127 , 0xffffffff );
25340 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
25341 written
|= ( 1 << 22 );
25342 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25344 frvbf_media_overflow ( current_cpu
, 1 );
25347 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25350 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25351 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
25352 written
|= ( 1 << 22 );
25353 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25355 frvbf_media_overflow ( current_cpu
, 1 );
25359 DI opval
= tmp_tmp
;
25360 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
25361 written
|= ( 1 << 22 );
25362 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25373 abuf
-> written
= written
;
25378 /* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25381 SEM_FN_NAME ( frvbf
, cmqmachu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
25383 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25384 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
25385 int UNUSED written
= 0 ;
25386 IADDR UNUSED pc
= abuf
-> addr
;
25387 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
25389 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Uk
))) {
25390 if ( ANDSI ( FLD ( f_ACC40Uk
), SUBSI ( 4 , 1 ))) {
25391 frvbf_media_acc_not_aligned ( current_cpu
);
25393 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
25394 frvbf_media_register_not_aligned ( current_cpu
);
25396 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
25403 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25404 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25405 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25406 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25410 tmp_tmp
= ADDDI ( GET_H_ACC40U ( FLD ( f_ACC40Uk
)), MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
)));
25411 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25414 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25415 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
25416 written
|= ( 1 << 19 );
25417 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25419 frvbf_media_overflow ( current_cpu
, 8 );
25422 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25425 UDI opval
= MAKEDI ( 0 , 0 );
25426 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
25427 written
|= ( 1 << 19 );
25428 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25430 frvbf_media_overflow ( current_cpu
, 8 );
25434 UDI opval
= tmp_tmp
;
25435 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
25436 written
|= ( 1 << 19 );
25437 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25444 tmp_tmp
= ADDDI ( GET_H_ACC40U ((( FLD ( f_ACC40Uk
)) + ( 1 ))), MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
)));
25445 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25448 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25449 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
25450 written
|= ( 1 << 20 );
25451 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25453 frvbf_media_overflow ( current_cpu
, 4 );
25456 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25459 UDI opval
= MAKEDI ( 0 , 0 );
25460 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
25461 written
|= ( 1 << 20 );
25462 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25464 frvbf_media_overflow ( current_cpu
, 4 );
25468 UDI opval
= tmp_tmp
;
25469 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
25470 written
|= ( 1 << 20 );
25471 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25477 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25478 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25479 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25480 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25484 tmp_tmp
= ADDDI ( GET_H_ACC40U ((( FLD ( f_ACC40Uk
)) + ( 2 ))), MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
)));
25485 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25488 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25489 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 2 )), opval
);
25490 written
|= ( 1 << 21 );
25491 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25493 frvbf_media_overflow ( current_cpu
, 2 );
25496 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25499 UDI opval
= MAKEDI ( 0 , 0 );
25500 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 2 )), opval
);
25501 written
|= ( 1 << 21 );
25502 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25504 frvbf_media_overflow ( current_cpu
, 2 );
25508 UDI opval
= tmp_tmp
;
25509 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 2 )), opval
);
25510 written
|= ( 1 << 21 );
25511 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25518 tmp_tmp
= ADDDI ( GET_H_ACC40U ((( FLD ( f_ACC40Uk
)) + ( 3 ))), MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
)));
25519 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25522 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25523 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 3 )), opval
);
25524 written
|= ( 1 << 22 );
25525 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25527 frvbf_media_overflow ( current_cpu
, 1 );
25530 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25533 UDI opval
= MAKEDI ( 0 , 0 );
25534 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 3 )), opval
);
25535 written
|= ( 1 << 22 );
25536 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25538 frvbf_media_overflow ( current_cpu
, 1 );
25542 UDI opval
= tmp_tmp
;
25543 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 3 )), opval
);
25544 written
|= ( 1 << 22 );
25545 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25556 abuf
-> written
= written
;
25561 /* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25564 SEM_FN_NAME ( frvbf
, mqxmachs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
25566 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25567 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
25568 int UNUSED written
= 0 ;
25569 IADDR UNUSED pc
= abuf
-> addr
;
25570 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
25572 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
25573 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
25574 frvbf_media_acc_not_aligned ( current_cpu
);
25576 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
25577 frvbf_media_register_not_aligned ( current_cpu
);
25585 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25586 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25587 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25588 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25592 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 2 ))), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
25593 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25596 DI opval
= MAKEDI ( 127 , 0xffffffff );
25597 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
25598 written
|= ( 1 << 19 );
25599 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25601 frvbf_media_overflow ( current_cpu
, 2 );
25604 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25607 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25608 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
25609 written
|= ( 1 << 19 );
25610 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25612 frvbf_media_overflow ( current_cpu
, 2 );
25616 DI opval
= tmp_tmp
;
25617 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
25618 written
|= ( 1 << 19 );
25619 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25626 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 3 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
25627 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25630 DI opval
= MAKEDI ( 127 , 0xffffffff );
25631 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
25632 written
|= ( 1 << 20 );
25633 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25635 frvbf_media_overflow ( current_cpu
, 1 );
25638 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25641 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25642 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
25643 written
|= ( 1 << 20 );
25644 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25646 frvbf_media_overflow ( current_cpu
, 1 );
25650 DI opval
= tmp_tmp
;
25651 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
25652 written
|= ( 1 << 20 );
25653 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25659 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25660 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25661 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25662 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25666 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
25667 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25670 DI opval
= MAKEDI ( 127 , 0xffffffff );
25671 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25672 written
|= ( 1 << 17 );
25673 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25675 frvbf_media_overflow ( current_cpu
, 8 );
25678 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25681 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25682 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25683 written
|= ( 1 << 17 );
25684 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25686 frvbf_media_overflow ( current_cpu
, 8 );
25690 DI opval
= tmp_tmp
;
25691 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25692 written
|= ( 1 << 17 );
25693 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25700 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 1 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
25701 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25704 DI opval
= MAKEDI ( 127 , 0xffffffff );
25705 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
25706 written
|= ( 1 << 18 );
25707 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25709 frvbf_media_overflow ( current_cpu
, 4 );
25712 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25715 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25716 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
25717 written
|= ( 1 << 18 );
25718 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25720 frvbf_media_overflow ( current_cpu
, 4 );
25724 DI opval
= tmp_tmp
;
25725 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
25726 written
|= ( 1 << 18 );
25727 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25737 abuf
-> written
= written
;
25742 /* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25745 SEM_FN_NAME ( frvbf
, mqxmacxhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
25747 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25748 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
25749 int UNUSED written
= 0 ;
25750 IADDR UNUSED pc
= abuf
-> addr
;
25751 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
25753 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
25754 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
25755 frvbf_media_acc_not_aligned ( current_cpu
);
25757 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
25758 frvbf_media_register_not_aligned ( current_cpu
);
25766 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25767 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25768 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25769 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25773 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 2 ))), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
)));
25774 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25777 DI opval
= MAKEDI ( 127 , 0xffffffff );
25778 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
25779 written
|= ( 1 << 19 );
25780 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25782 frvbf_media_overflow ( current_cpu
, 2 );
25785 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25788 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25789 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
25790 written
|= ( 1 << 19 );
25791 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25793 frvbf_media_overflow ( current_cpu
, 2 );
25797 DI opval
= tmp_tmp
;
25798 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
25799 written
|= ( 1 << 19 );
25800 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25807 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 3 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
)));
25808 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25811 DI opval
= MAKEDI ( 127 , 0xffffffff );
25812 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
25813 written
|= ( 1 << 20 );
25814 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25816 frvbf_media_overflow ( current_cpu
, 1 );
25819 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25822 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25823 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
25824 written
|= ( 1 << 20 );
25825 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25827 frvbf_media_overflow ( current_cpu
, 1 );
25831 DI opval
= tmp_tmp
;
25832 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
25833 written
|= ( 1 << 20 );
25834 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25840 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25841 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25842 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25843 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25847 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
)));
25848 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25851 DI opval
= MAKEDI ( 127 , 0xffffffff );
25852 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25853 written
|= ( 1 << 17 );
25854 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25856 frvbf_media_overflow ( current_cpu
, 8 );
25859 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25862 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25863 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25864 written
|= ( 1 << 17 );
25865 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25867 frvbf_media_overflow ( current_cpu
, 8 );
25871 DI opval
= tmp_tmp
;
25872 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25873 written
|= ( 1 << 17 );
25874 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25881 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 1 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
)));
25882 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25885 DI opval
= MAKEDI ( 127 , 0xffffffff );
25886 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
25887 written
|= ( 1 << 18 );
25888 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25890 frvbf_media_overflow ( current_cpu
, 4 );
25893 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25896 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25897 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
25898 written
|= ( 1 << 18 );
25899 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25901 frvbf_media_overflow ( current_cpu
, 4 );
25905 DI opval
= tmp_tmp
;
25906 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
25907 written
|= ( 1 << 18 );
25908 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25918 abuf
-> written
= written
;
25923 /* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25926 SEM_FN_NAME ( frvbf
, mqmacxhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
25928 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25929 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
25930 int UNUSED written
= 0 ;
25931 IADDR UNUSED pc
= abuf
-> addr
;
25932 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
25934 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
25935 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
25936 frvbf_media_acc_not_aligned ( current_cpu
);
25938 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
25939 frvbf_media_register_not_aligned ( current_cpu
);
25947 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25948 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25949 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25950 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25954 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
)));
25955 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25958 DI opval
= MAKEDI ( 127 , 0xffffffff );
25959 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25960 written
|= ( 1 << 17 );
25961 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25963 frvbf_media_overflow ( current_cpu
, 8 );
25966 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25969 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25970 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25971 written
|= ( 1 << 17 );
25972 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25974 frvbf_media_overflow ( current_cpu
, 8 );
25978 DI opval
= tmp_tmp
;
25979 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25980 written
|= ( 1 << 17 );
25981 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25988 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 1 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
)));
25989 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25992 DI opval
= MAKEDI ( 127 , 0xffffffff );
25993 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
25994 written
|= ( 1 << 18 );
25995 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25997 frvbf_media_overflow ( current_cpu
, 4 );
26000 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
26003 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26004 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26005 written
|= ( 1 << 18 );
26006 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26008 frvbf_media_overflow ( current_cpu
, 4 );
26012 DI opval
= tmp_tmp
;
26013 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26014 written
|= ( 1 << 18 );
26015 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26021 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26022 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26023 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26024 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26028 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 2 ))), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
)));
26029 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
26032 DI opval
= MAKEDI ( 127 , 0xffffffff );
26033 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
26034 written
|= ( 1 << 19 );
26035 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26037 frvbf_media_overflow ( current_cpu
, 2 );
26040 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
26043 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26044 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
26045 written
|= ( 1 << 19 );
26046 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26048 frvbf_media_overflow ( current_cpu
, 2 );
26052 DI opval
= tmp_tmp
;
26053 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
26054 written
|= ( 1 << 19 );
26055 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26062 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 3 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
)));
26063 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
26066 DI opval
= MAKEDI ( 127 , 0xffffffff );
26067 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
26068 written
|= ( 1 << 20 );
26069 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26071 frvbf_media_overflow ( current_cpu
, 1 );
26074 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
26077 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26078 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
26079 written
|= ( 1 << 20 );
26080 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26082 frvbf_media_overflow ( current_cpu
, 1 );
26086 DI opval
= tmp_tmp
;
26087 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
26088 written
|= ( 1 << 20 );
26089 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26099 abuf
-> written
= written
;
26104 /* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
26107 SEM_FN_NAME ( frvbf
, mcpxrs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26109 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26110 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26111 int UNUSED written
= 0 ;
26112 IADDR UNUSED pc
= abuf
-> addr
;
26113 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26115 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26122 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26123 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26124 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26125 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26130 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
26131 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
26132 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26133 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26136 DI opval
= MAKEDI ( 127 , 0xffffffff );
26137 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26138 written
|= ( 1 << 9 );
26139 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26141 frvbf_media_overflow ( current_cpu
, 8 );
26144 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26147 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26148 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26149 written
|= ( 1 << 9 );
26150 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26152 frvbf_media_overflow ( current_cpu
, 8 );
26156 DI opval
= tmp_tmp1
;
26157 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26158 written
|= ( 1 << 9 );
26159 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26167 abuf
-> written
= written
;
26172 /* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
26175 SEM_FN_NAME ( frvbf
, mcpxru
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26177 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26178 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26179 int UNUSED written
= 0 ;
26180 IADDR UNUSED pc
= abuf
-> addr
;
26181 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26183 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26190 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26191 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26192 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26193 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26198 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
26199 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
26200 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26201 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
26204 DI opval
= MAKEDI ( 255 , 0xffffffff );
26205 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26206 written
|= ( 1 << 9 );
26207 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26209 frvbf_media_overflow ( current_cpu
, 8 );
26212 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
26215 DI opval
= MAKEDI ( 0 , 0 );
26216 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26217 written
|= ( 1 << 9 );
26218 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26220 frvbf_media_overflow ( current_cpu
, 8 );
26224 DI opval
= tmp_tmp1
;
26225 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26226 written
|= ( 1 << 9 );
26227 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26235 abuf
-> written
= written
;
26240 /* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
26243 SEM_FN_NAME ( frvbf
, mcpxis
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26245 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26246 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26247 int UNUSED written
= 0 ;
26248 IADDR UNUSED pc
= abuf
-> addr
;
26249 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26251 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26258 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26259 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26260 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26261 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26266 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
));
26267 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
));
26268 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
26269 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26272 DI opval
= MAKEDI ( 127 , 0xffffffff );
26273 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26274 written
|= ( 1 << 9 );
26275 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26277 frvbf_media_overflow ( current_cpu
, 8 );
26280 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26283 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26284 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26285 written
|= ( 1 << 9 );
26286 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26288 frvbf_media_overflow ( current_cpu
, 8 );
26292 DI opval
= tmp_tmp1
;
26293 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26294 written
|= ( 1 << 9 );
26295 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26303 abuf
-> written
= written
;
26308 /* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
26311 SEM_FN_NAME ( frvbf
, mcpxiu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26313 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26314 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26315 int UNUSED written
= 0 ;
26316 IADDR UNUSED pc
= abuf
-> addr
;
26317 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26319 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26326 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26327 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26328 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26329 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26334 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjlo
));
26335 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjhi
));
26336 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
26337 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
26340 DI opval
= MAKEDI ( 255 , 0xffffffff );
26341 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26342 written
|= ( 1 << 9 );
26343 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26345 frvbf_media_overflow ( current_cpu
, 8 );
26348 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
26351 DI opval
= MAKEDI ( 0 , 0 );
26352 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26353 written
|= ( 1 << 9 );
26354 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26356 frvbf_media_overflow ( current_cpu
, 8 );
26360 DI opval
= tmp_tmp1
;
26361 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26362 written
|= ( 1 << 9 );
26363 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26371 abuf
-> written
= written
;
26376 /* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26379 SEM_FN_NAME ( frvbf
, cmcpxrs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26381 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26382 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26383 int UNUSED written
= 0 ;
26384 IADDR UNUSED pc
= abuf
-> addr
;
26385 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26387 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
26388 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26395 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26396 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26397 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26398 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26403 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
26404 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
26405 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26406 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26409 DI opval
= MAKEDI ( 127 , 0xffffffff );
26410 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26411 written
|= ( 1 << 11 );
26412 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26414 frvbf_media_overflow ( current_cpu
, 8 );
26417 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26420 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26421 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26422 written
|= ( 1 << 11 );
26423 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26425 frvbf_media_overflow ( current_cpu
, 8 );
26429 DI opval
= tmp_tmp1
;
26430 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26431 written
|= ( 1 << 11 );
26432 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26441 abuf
-> written
= written
;
26446 /* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26449 SEM_FN_NAME ( frvbf
, cmcpxru
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26451 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26452 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26453 int UNUSED written
= 0 ;
26454 IADDR UNUSED pc
= abuf
-> addr
;
26455 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26457 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
26458 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26465 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26466 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26467 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26468 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26473 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
26474 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
26475 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26476 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
26479 DI opval
= MAKEDI ( 255 , 0xffffffff );
26480 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26481 written
|= ( 1 << 11 );
26482 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26484 frvbf_media_overflow ( current_cpu
, 8 );
26487 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
26490 DI opval
= MAKEDI ( 0 , 0 );
26491 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26492 written
|= ( 1 << 11 );
26493 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26495 frvbf_media_overflow ( current_cpu
, 8 );
26499 DI opval
= tmp_tmp1
;
26500 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26501 written
|= ( 1 << 11 );
26502 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26511 abuf
-> written
= written
;
26516 /* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26519 SEM_FN_NAME ( frvbf
, cmcpxis
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26521 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26522 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26523 int UNUSED written
= 0 ;
26524 IADDR UNUSED pc
= abuf
-> addr
;
26525 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26527 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
26528 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26535 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26536 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26537 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26538 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26543 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
));
26544 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
));
26545 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
26546 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26549 DI opval
= MAKEDI ( 127 , 0xffffffff );
26550 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26551 written
|= ( 1 << 11 );
26552 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26554 frvbf_media_overflow ( current_cpu
, 8 );
26557 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26560 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26561 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26562 written
|= ( 1 << 11 );
26563 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26565 frvbf_media_overflow ( current_cpu
, 8 );
26569 DI opval
= tmp_tmp1
;
26570 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26571 written
|= ( 1 << 11 );
26572 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26581 abuf
-> written
= written
;
26586 /* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26589 SEM_FN_NAME ( frvbf
, cmcpxiu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26591 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26592 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26593 int UNUSED written
= 0 ;
26594 IADDR UNUSED pc
= abuf
-> addr
;
26595 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26597 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
26598 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26605 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26606 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26607 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26608 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26613 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjlo
));
26614 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjhi
));
26615 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
26616 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
26619 DI opval
= MAKEDI ( 255 , 0xffffffff );
26620 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26621 written
|= ( 1 << 11 );
26622 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26624 frvbf_media_overflow ( current_cpu
, 8 );
26627 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
26630 DI opval
= MAKEDI ( 0 , 0 );
26631 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26632 written
|= ( 1 << 11 );
26633 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26635 frvbf_media_overflow ( current_cpu
, 8 );
26639 DI opval
= tmp_tmp1
;
26640 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26641 written
|= ( 1 << 11 );
26642 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26651 abuf
-> written
= written
;
26656 /* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26659 SEM_FN_NAME ( frvbf
, mqcpxrs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26661 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26662 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26663 int UNUSED written
= 0 ;
26664 IADDR UNUSED pc
= abuf
-> addr
;
26665 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26667 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26668 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
26669 frvbf_media_acc_not_aligned ( current_cpu
);
26671 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
26672 frvbf_media_register_not_aligned ( current_cpu
);
26680 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26681 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26682 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26683 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26688 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
26689 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
26690 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26691 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26694 DI opval
= MAKEDI ( 127 , 0xffffffff );
26695 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26696 written
|= ( 1 << 13 );
26697 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26699 frvbf_media_overflow ( current_cpu
, 8 );
26702 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26705 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26706 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26707 written
|= ( 1 << 13 );
26708 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26710 frvbf_media_overflow ( current_cpu
, 8 );
26714 DI opval
= tmp_tmp1
;
26715 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26716 written
|= ( 1 << 13 );
26717 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26723 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26724 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26725 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26726 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26731 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
26732 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
26733 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26734 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26737 DI opval
= MAKEDI ( 127 , 0xffffffff );
26738 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26739 written
|= ( 1 << 14 );
26740 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26742 frvbf_media_overflow ( current_cpu
, 4 );
26745 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26748 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26749 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26750 written
|= ( 1 << 14 );
26751 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26753 frvbf_media_overflow ( current_cpu
, 4 );
26757 DI opval
= tmp_tmp1
;
26758 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26759 written
|= ( 1 << 14 );
26760 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26770 abuf
-> written
= written
;
26775 /* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26778 SEM_FN_NAME ( frvbf
, mqcpxru
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26780 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26781 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26782 int UNUSED written
= 0 ;
26783 IADDR UNUSED pc
= abuf
-> addr
;
26784 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26786 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26787 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
26788 frvbf_media_acc_not_aligned ( current_cpu
);
26790 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
26791 frvbf_media_register_not_aligned ( current_cpu
);
26799 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26800 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26801 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26802 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26807 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
26808 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
26809 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26810 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
26813 DI opval
= MAKEDI ( 255 , 0xffffffff );
26814 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26815 written
|= ( 1 << 13 );
26816 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26818 frvbf_media_overflow ( current_cpu
, 8 );
26821 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
26824 DI opval
= MAKEDI ( 0 , 0 );
26825 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26826 written
|= ( 1 << 13 );
26827 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26829 frvbf_media_overflow ( current_cpu
, 8 );
26833 DI opval
= tmp_tmp1
;
26834 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26835 written
|= ( 1 << 13 );
26836 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26842 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26843 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26844 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26845 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26850 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
26851 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
26852 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26853 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
26856 DI opval
= MAKEDI ( 255 , 0xffffffff );
26857 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26858 written
|= ( 1 << 14 );
26859 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26861 frvbf_media_overflow ( current_cpu
, 4 );
26864 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
26867 DI opval
= MAKEDI ( 0 , 0 );
26868 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26869 written
|= ( 1 << 14 );
26870 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26872 frvbf_media_overflow ( current_cpu
, 4 );
26876 DI opval
= tmp_tmp1
;
26877 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26878 written
|= ( 1 << 14 );
26879 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26889 abuf
-> written
= written
;
26894 /* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26897 SEM_FN_NAME ( frvbf
, mqcpxis
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26899 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26900 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26901 int UNUSED written
= 0 ;
26902 IADDR UNUSED pc
= abuf
-> addr
;
26903 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26905 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26906 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
26907 frvbf_media_acc_not_aligned ( current_cpu
);
26909 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
26910 frvbf_media_register_not_aligned ( current_cpu
);
26918 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26919 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26920 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26921 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26926 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
));
26927 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
));
26928 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
26929 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26932 DI opval
= MAKEDI ( 127 , 0xffffffff );
26933 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26934 written
|= ( 1 << 13 );
26935 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26937 frvbf_media_overflow ( current_cpu
, 8 );
26940 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26943 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26944 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26945 written
|= ( 1 << 13 );
26946 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26948 frvbf_media_overflow ( current_cpu
, 8 );
26952 DI opval
= tmp_tmp1
;
26953 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26954 written
|= ( 1 << 13 );
26955 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26961 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26962 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26963 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26964 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26969 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
));
26970 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
));
26971 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
26972 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26975 DI opval
= MAKEDI ( 127 , 0xffffffff );
26976 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26977 written
|= ( 1 << 14 );
26978 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26980 frvbf_media_overflow ( current_cpu
, 4 );
26983 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26986 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26987 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26988 written
|= ( 1 << 14 );
26989 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26991 frvbf_media_overflow ( current_cpu
, 4 );
26995 DI opval
= tmp_tmp1
;
26996 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26997 written
|= ( 1 << 14 );
26998 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
27008 abuf
-> written
= written
;
27013 /* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
27016 SEM_FN_NAME ( frvbf
, mqcpxiu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27018 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
27019 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27020 int UNUSED written
= 0 ;
27021 IADDR UNUSED pc
= abuf
-> addr
;
27022 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27024 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
27025 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
27026 frvbf_media_acc_not_aligned ( current_cpu
);
27028 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
27029 frvbf_media_register_not_aligned ( current_cpu
);
27037 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
27038 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
27039 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
27040 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
27045 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjlo
));
27046 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjhi
));
27047 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
27048 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
27051 DI opval
= MAKEDI ( 255 , 0xffffffff );
27052 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
27053 written
|= ( 1 << 13 );
27054 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
27056 frvbf_media_overflow ( current_cpu
, 8 );
27059 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
27062 DI opval
= MAKEDI ( 0 , 0 );
27063 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
27064 written
|= ( 1 << 13 );
27065 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
27067 frvbf_media_overflow ( current_cpu
, 8 );
27071 DI opval
= tmp_tmp1
;
27072 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
27073 written
|= ( 1 << 13 );
27074 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
27080 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
27081 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
27082 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
27083 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
27088 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjlo
));
27089 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjhi
));
27090 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
27091 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
27094 DI opval
= MAKEDI ( 255 , 0xffffffff );
27095 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
27096 written
|= ( 1 << 14 );
27097 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
27099 frvbf_media_overflow ( current_cpu
, 4 );
27102 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
27105 DI opval
= MAKEDI ( 0 , 0 );
27106 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
27107 written
|= ( 1 << 14 );
27108 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
27110 frvbf_media_overflow ( current_cpu
, 4 );
27114 DI opval
= tmp_tmp1
;
27115 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
27116 written
|= ( 1 << 14 );
27117 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
27127 abuf
-> written
= written
;
27132 /* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
27135 SEM_FN_NAME ( frvbf
, mexpdhw
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27137 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27138 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27139 int UNUSED written
= 0 ;
27140 IADDR UNUSED pc
= abuf
-> addr
;
27141 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27145 if ( ANDSI ( FLD ( f_u6
), 1 )) {
27146 tmp_tmp
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 )));
27148 tmp_tmp
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 )));
27151 UHI opval
= tmp_tmp
;
27152 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27153 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27156 UHI opval
= tmp_tmp
;
27157 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27158 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27166 /* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
27169 SEM_FN_NAME ( frvbf
, cmexpdhw
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27171 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27172 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27173 int UNUSED written
= 0 ;
27174 IADDR UNUSED pc
= abuf
-> addr
;
27175 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27177 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
27180 if ( ANDSI ( FLD ( f_u6
), 1 )) {
27181 tmp_tmp
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 )));
27183 tmp_tmp
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 )));
27186 UHI opval
= tmp_tmp
;
27187 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27188 written
|= ( 1 << 7 );
27189 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27192 UHI opval
= tmp_tmp
;
27193 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27194 written
|= ( 1 << 8 );
27195 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27200 abuf
-> written
= written
;
27205 /* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
27208 SEM_FN_NAME ( frvbf
, mexpdhd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27210 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27211 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27212 int UNUSED written
= 0 ;
27213 IADDR UNUSED pc
= abuf
-> addr
;
27214 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27216 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))) {
27217 frvbf_media_register_not_aligned ( current_cpu
);
27222 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27223 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27224 written
|= ( 1 << 6 );
27225 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27227 if ( ANDSI ( FLD ( f_u6
), 1 )) {
27228 tmp_tmp
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 )));
27230 tmp_tmp
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 )));
27233 UHI opval
= tmp_tmp
;
27234 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27235 written
|= ( 1 << 7 );
27236 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27239 UHI opval
= tmp_tmp
;
27240 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27241 written
|= ( 1 << 9 );
27242 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27245 UHI opval
= tmp_tmp
;
27246 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27247 written
|= ( 1 << 8 );
27248 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27251 UHI opval
= tmp_tmp
;
27252 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27253 written
|= ( 1 << 10 );
27254 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27259 abuf
-> written
= written
;
27264 /* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
27267 SEM_FN_NAME ( frvbf
, cmexpdhd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27269 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27270 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27271 int UNUSED written
= 0 ;
27272 IADDR UNUSED pc
= abuf
-> addr
;
27273 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27275 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))) {
27276 frvbf_media_register_not_aligned ( current_cpu
);
27278 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
27282 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27283 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27284 written
|= ( 1 << 8 );
27285 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27287 if ( ANDSI ( FLD ( f_u6
), 1 )) {
27288 tmp_tmp
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 )));
27290 tmp_tmp
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 )));
27293 UHI opval
= tmp_tmp
;
27294 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27295 written
|= ( 1 << 9 );
27296 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27299 UHI opval
= tmp_tmp
;
27300 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27301 written
|= ( 1 << 11 );
27302 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27305 UHI opval
= tmp_tmp
;
27306 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27307 written
|= ( 1 << 10 );
27308 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27311 UHI opval
= tmp_tmp
;
27312 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27313 written
|= ( 1 << 12 );
27314 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27320 abuf
-> written
= written
;
27325 /* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
27328 SEM_FN_NAME ( frvbf
, mpackh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27330 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
27331 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27332 int UNUSED written
= 0 ;
27333 IADDR UNUSED pc
= abuf
-> addr
;
27334 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27338 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 )));
27339 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27340 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27343 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 )));
27344 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27345 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27353 /* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27356 SEM_FN_NAME ( frvbf
, mdpackh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27358 #define FLD(f) abuf->fields.sfmt_mdpackh.f
27359 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27360 int UNUSED written
= 0 ;
27361 IADDR UNUSED pc
= abuf
-> addr
;
27362 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27364 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
27365 frvbf_media_register_not_aligned ( current_cpu
);
27369 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
27370 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
27371 written
|= ( 1 << 10 );
27372 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27375 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
27376 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
27377 written
|= ( 1 << 11 );
27378 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27381 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27382 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27383 written
|= ( 1 << 12 );
27384 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27388 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 )));
27389 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27390 written
|= ( 1 << 13 );
27391 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27394 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 )));
27395 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27396 written
|= ( 1 << 15 );
27397 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27402 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 )));
27403 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27404 written
|= ( 1 << 14 );
27405 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27408 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 )));
27409 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27410 written
|= ( 1 << 16 );
27411 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27417 abuf
-> written
= written
;
27422 /* munpackh: munpackh$pack $FRinti,$FRintkeven */
27425 SEM_FN_NAME ( frvbf
, munpackh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27427 #define FLD(f) abuf->fields.sfmt_munpackh.f
27428 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27429 int UNUSED written
= 0 ;
27430 IADDR UNUSED pc
= abuf
-> addr
;
27431 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27433 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))) {
27434 frvbf_media_register_not_aligned ( current_cpu
);
27438 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
27439 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
27440 written
|= ( 1 << 6 );
27441 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27444 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27445 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27446 written
|= ( 1 << 7 );
27447 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27451 UHI opval
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 )));
27452 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27453 written
|= ( 1 << 8 );
27454 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27457 UHI opval
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 )));
27458 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27459 written
|= ( 1 << 10 );
27460 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27463 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 )));
27464 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( ADDSI ( 0 , 1 ))), opval
);
27465 written
|= ( 1 << 9 );
27466 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27469 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 )));
27470 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( ADDSI ( 0 , 1 ))), opval
);
27471 written
|= ( 1 << 11 );
27472 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27478 abuf
-> written
= written
;
27483 /* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27486 SEM_FN_NAME ( frvbf
, mdunpackh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27488 #define FLD(f) abuf->fields.sfmt_mdunpackh.f
27489 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27490 int UNUSED written
= 0 ;
27491 IADDR UNUSED pc
= abuf
-> addr
;
27492 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27494 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 4 , 1 )))) {
27495 frvbf_media_register_not_aligned ( current_cpu
);
27499 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
27500 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
27501 written
|= ( 1 << 8 );
27502 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27505 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27506 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27507 written
|= ( 1 << 9 );
27508 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27512 UHI opval
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 )));
27513 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27514 written
|= ( 1 << 10 );
27515 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27518 UHI opval
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 )));
27519 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27520 written
|= ( 1 << 14 );
27521 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27524 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 )));
27525 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( ADDSI ( 0 , 1 ))), opval
);
27526 written
|= ( 1 << 12 );
27527 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27530 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 )));
27531 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( ADDSI ( 0 , 1 ))), opval
);
27532 written
|= ( 1 << 16 );
27533 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27538 UHI opval
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 )));
27539 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
27540 written
|= ( 1 << 11 );
27541 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27544 UHI opval
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 )));
27545 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
27546 written
|= ( 1 << 15 );
27547 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27550 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 )));
27551 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( ADDSI ( 2 , 1 ))), opval
);
27552 written
|= ( 1 << 13 );
27553 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27556 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 )));
27557 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( ADDSI ( 2 , 1 ))), opval
);
27558 written
|= ( 1 << 17 );
27559 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27565 abuf
-> written
= written
;
27570 /* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27573 SEM_FN_NAME ( frvbf
, mbtoh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27575 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27576 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27577 int UNUSED written
= 0 ;
27578 IADDR UNUSED pc
= abuf
-> addr
;
27579 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27583 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
27584 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
27585 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27588 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27589 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27590 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27592 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))) {
27593 frvbf_media_register_not_aligned ( current_cpu
);
27597 UHI opval
= GET_H_FR_3 ((( FLD ( f_FRj
)) + ( 0 )));
27598 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27599 written
|= ( 1 << 10 );
27600 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27603 UHI opval
= GET_H_FR_2 ((( FLD ( f_FRj
)) + ( 0 )));
27604 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27605 written
|= ( 1 << 12 );
27606 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27609 UHI opval
= GET_H_FR_1 ((( FLD ( f_FRj
)) + ( 0 )));
27610 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27611 written
|= ( 1 << 11 );
27612 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27615 UHI opval
= GET_H_FR_0 ((( FLD ( f_FRj
)) + ( 0 )));
27616 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27617 written
|= ( 1 << 13 );
27618 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27624 abuf
-> written
= written
;
27629 /* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27632 SEM_FN_NAME ( frvbf
, cmbtoh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27634 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27635 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27636 int UNUSED written
= 0 ;
27637 IADDR UNUSED pc
= abuf
-> addr
;
27638 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27642 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
27643 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
27644 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27647 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27648 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27649 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27651 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))) {
27652 frvbf_media_register_not_aligned ( current_cpu
);
27654 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
27657 UHI opval
= GET_H_FR_3 ((( FLD ( f_FRj
)) + ( 0 )));
27658 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27659 written
|= ( 1 << 12 );
27660 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27663 UHI opval
= GET_H_FR_2 ((( FLD ( f_FRj
)) + ( 0 )));
27664 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27665 written
|= ( 1 << 14 );
27666 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27669 UHI opval
= GET_H_FR_1 ((( FLD ( f_FRj
)) + ( 0 )));
27670 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27671 written
|= ( 1 << 13 );
27672 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27675 UHI opval
= GET_H_FR_0 ((( FLD ( f_FRj
)) + ( 0 )));
27676 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27677 written
|= ( 1 << 15 );
27678 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27685 abuf
-> written
= written
;
27690 /* mhtob: mhtob$pack $FRintjeven,$FRintk */
27693 SEM_FN_NAME ( frvbf
, mhtob
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27695 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27696 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27697 int UNUSED written
= 0 ;
27698 IADDR UNUSED pc
= abuf
-> addr
;
27699 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27703 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
27704 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
27705 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27708 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27709 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27710 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27712 if ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 ))) {
27713 frvbf_media_register_not_aligned ( current_cpu
);
27717 UHI opval
= GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 )));
27718 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_3_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27719 written
|= ( 1 << 13 );
27720 TRACE_RESULT ( current_cpu
, abuf
, "fr_3" , 'x' , opval
);
27723 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 )));
27724 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_2_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27725 written
|= ( 1 << 12 );
27726 TRACE_RESULT ( current_cpu
, abuf
, "fr_2" , 'x' , opval
);
27729 UHI opval
= GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 )));
27730 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_1_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27731 written
|= ( 1 << 11 );
27732 TRACE_RESULT ( current_cpu
, abuf
, "fr_1" , 'x' , opval
);
27735 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 )));
27736 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_0_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27737 written
|= ( 1 << 10 );
27738 TRACE_RESULT ( current_cpu
, abuf
, "fr_0" , 'x' , opval
);
27744 abuf
-> written
= written
;
27749 /* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27752 SEM_FN_NAME ( frvbf
, cmhtob
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27754 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27755 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27756 int UNUSED written
= 0 ;
27757 IADDR UNUSED pc
= abuf
-> addr
;
27758 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27762 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
27763 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
27764 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27767 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27768 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27769 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27771 if ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 ))) {
27772 frvbf_media_register_not_aligned ( current_cpu
);
27774 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
27777 UHI opval
= GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 )));
27778 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_3_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27779 written
|= ( 1 << 15 );
27780 TRACE_RESULT ( current_cpu
, abuf
, "fr_3" , 'x' , opval
);
27783 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 )));
27784 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_2_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27785 written
|= ( 1 << 14 );
27786 TRACE_RESULT ( current_cpu
, abuf
, "fr_2" , 'x' , opval
);
27789 UHI opval
= GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 )));
27790 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_1_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27791 written
|= ( 1 << 13 );
27792 TRACE_RESULT ( current_cpu
, abuf
, "fr_1" , 'x' , opval
);
27795 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 )));
27796 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_0_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27797 written
|= ( 1 << 12 );
27798 TRACE_RESULT ( current_cpu
, abuf
, "fr_0" , 'x' , opval
);
27805 abuf
-> written
= written
;
27810 /* mbtohe: mbtohe$pack $FRintj,$FRintk */
27813 SEM_FN_NAME ( frvbf
, mbtohe
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27815 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27816 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27817 int UNUSED written
= 0 ;
27818 IADDR UNUSED pc
= abuf
-> addr
;
27819 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27823 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
27824 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
27825 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27828 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27829 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27830 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27832 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 4 , 1 ))) {
27833 frvbf_media_register_not_aligned ( current_cpu
);
27837 UHI opval
= GET_H_FR_3 ((( FLD ( f_FRj
)) + ( 0 )));
27838 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27839 written
|= ( 1 << 10 );
27840 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27843 UHI opval
= GET_H_FR_3 ((( FLD ( f_FRj
)) + ( 0 )));
27844 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27845 written
|= ( 1 << 14 );
27846 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27849 UHI opval
= GET_H_FR_2 ((( FLD ( f_FRj
)) + ( 0 )));
27850 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27851 written
|= ( 1 << 11 );
27852 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27855 UHI opval
= GET_H_FR_2 ((( FLD ( f_FRj
)) + ( 0 )));
27856 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27857 written
|= ( 1 << 15 );
27858 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27861 UHI opval
= GET_H_FR_1 ((( FLD ( f_FRj
)) + ( 0 )));
27862 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
27863 written
|= ( 1 << 12 );
27864 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27867 UHI opval
= GET_H_FR_1 ((( FLD ( f_FRj
)) + ( 0 )));
27868 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
27869 written
|= ( 1 << 16 );
27870 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27873 UHI opval
= GET_H_FR_0 ((( FLD ( f_FRj
)) + ( 0 )));
27874 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 3 )), opval
);
27875 written
|= ( 1 << 13 );
27876 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27879 UHI opval
= GET_H_FR_0 ((( FLD ( f_FRj
)) + ( 0 )));
27880 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 3 )), opval
);
27881 written
|= ( 1 << 17 );
27882 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27888 abuf
-> written
= written
;
27893 /* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27896 SEM_FN_NAME ( frvbf
, cmbtohe
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27898 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27899 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27900 int UNUSED written
= 0 ;
27901 IADDR UNUSED pc
= abuf
-> addr
;
27902 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27906 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
27907 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
27908 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27911 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27912 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27913 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27915 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 4 , 1 ))) {
27916 frvbf_media_register_not_aligned ( current_cpu
);
27918 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
27921 UHI opval
= GET_H_FR_3 ((( FLD ( f_FRj
)) + ( 0 )));
27922 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27923 written
|= ( 1 << 12 );
27924 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27927 UHI opval
= GET_H_FR_3 ((( FLD ( f_FRj
)) + ( 0 )));
27928 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27929 written
|= ( 1 << 16 );
27930 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27933 UHI opval
= GET_H_FR_2 ((( FLD ( f_FRj
)) + ( 0 )));
27934 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27935 written
|= ( 1 << 13 );
27936 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27939 UHI opval
= GET_H_FR_2 ((( FLD ( f_FRj
)) + ( 0 )));
27940 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27941 written
|= ( 1 << 17 );
27942 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27945 UHI opval
= GET_H_FR_1 ((( FLD ( f_FRj
)) + ( 0 )));
27946 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
27947 written
|= ( 1 << 14 );
27948 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27951 UHI opval
= GET_H_FR_1 ((( FLD ( f_FRj
)) + ( 0 )));
27952 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
27953 written
|= ( 1 << 18 );
27954 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27957 UHI opval
= GET_H_FR_0 ((( FLD ( f_FRj
)) + ( 0 )));
27958 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 3 )), opval
);
27959 written
|= ( 1 << 15 );
27960 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27963 UHI opval
= GET_H_FR_0 ((( FLD ( f_FRj
)) + ( 0 )));
27964 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 3 )), opval
);
27965 written
|= ( 1 << 19 );
27966 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27973 abuf
-> written
= written
;
27978 /* mnop: mnop$pack */
27981 SEM_FN_NAME ( frvbf
, mnop
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27983 #define FLD(f) abuf->fields.fmt_empty.f
27984 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27985 int UNUSED written
= 0 ;
27986 IADDR UNUSED pc
= abuf
-> addr
;
27987 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27989 (( void ) 0 ); /*nop*/
27995 /* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27998 SEM_FN_NAME ( frvbf
, mclracc_0
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28000 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
28001 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28002 int UNUSED written
= 0 ;
28003 IADDR UNUSED pc
= abuf
-> addr
;
28004 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28006 frvbf_clear_accumulators ( current_cpu
, FLD ( f_ACC40Sk
), 0 );
28012 /* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
28015 SEM_FN_NAME ( frvbf
, mclracc_1
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28017 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
28018 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28019 int UNUSED written
= 0 ;
28020 IADDR UNUSED pc
= abuf
-> addr
;
28021 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28023 frvbf_clear_accumulators ( current_cpu
, FLD ( f_ACC40Sk
), 1 );
28029 /* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
28032 SEM_FN_NAME ( frvbf
, mrdacc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28034 #define FLD(f) abuf->fields.sfmt_mcuti.f
28035 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28036 int UNUSED written
= 0 ;
28037 IADDR UNUSED pc
= abuf
-> addr
;
28038 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28041 SI opval
= GET_H_ACC40S ( FLD ( f_ACC40Si
));
28042 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
28043 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
28050 /* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
28053 SEM_FN_NAME ( frvbf
, mrdaccg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28055 #define FLD(f) abuf->fields.sfmt_mrdaccg.f
28056 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28057 int UNUSED written
= 0 ;
28058 IADDR UNUSED pc
= abuf
-> addr
;
28059 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28062 SI opval
= GET_H_ACCG ( FLD ( f_ACCGi
));
28063 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
28064 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
28071 /* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
28074 SEM_FN_NAME ( frvbf
, mwtacc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28076 #define FLD(f) abuf->fields.sfmt_cmmachs.f
28077 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28078 int UNUSED written
= 0 ;
28079 IADDR UNUSED pc
= abuf
-> addr
;
28080 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28083 DI opval
= ORDI ( ANDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MAKEDI ( 0xffffffff , 0 )), GET_H_FR_INT ( FLD ( f_FRi
)));
28084 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
28085 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
28092 /* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
28095 SEM_FN_NAME ( frvbf
, mwtaccg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28097 #define FLD(f) abuf->fields.sfmt_mwtaccg.f
28098 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28099 int UNUSED written
= 0 ;
28100 IADDR UNUSED pc
= abuf
-> addr
;
28101 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28104 frv_ref_SI ( GET_H_ACCG ( FLD ( f_ACCGk
)));
28106 USI opval
= GET_H_FR_INT ( FLD ( f_FRi
));
28107 sim_queue_fn_si_write ( current_cpu
, frvbf_h_accg_set
, FLD ( f_ACCGk
), opval
);
28108 TRACE_RESULT ( current_cpu
, abuf
, "accg" , 'x' , opval
);
28116 /* mcop1: mcop1$pack $FRi,$FRj,$FRk */
28119 SEM_FN_NAME ( frvbf
, mcop1
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28121 #define FLD(f) abuf->fields.fmt_empty.f
28122 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28123 int UNUSED written
= 0 ;
28124 IADDR UNUSED pc
= abuf
-> addr
;
28125 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28127 frvbf_media_cop ( current_cpu
, 1 );
28133 /* mcop2: mcop2$pack $FRi,$FRj,$FRk */
28136 SEM_FN_NAME ( frvbf
, mcop2
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28138 #define FLD(f) abuf->fields.fmt_empty.f
28139 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28140 int UNUSED written
= 0 ;
28141 IADDR UNUSED pc
= abuf
-> addr
;
28142 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28144 frvbf_media_cop ( current_cpu
, 2 );
28150 /* fnop: fnop$pack */
28153 SEM_FN_NAME ( frvbf
, fnop
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28155 #define FLD(f) abuf->fields.fmt_empty.f
28156 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28157 int UNUSED written
= 0 ;
28158 IADDR UNUSED pc
= abuf
-> addr
;
28159 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28161 (( void ) 0 ); /*nop*/
28167 /* Table of all semantic fns. */
28169 static const struct sem_fn_desc sem_fns
[] = {
28170 { FRVBF_INSN_X_INVALID
, SEM_FN_NAME ( frvbf
, x_invalid
) },
28171 { FRVBF_INSN_X_AFTER
, SEM_FN_NAME ( frvbf
, x_after
) },
28172 { FRVBF_INSN_X_BEFORE
, SEM_FN_NAME ( frvbf
, x_before
) },
28173 { FRVBF_INSN_X_CTI_CHAIN
, SEM_FN_NAME ( frvbf
, x_cti_chain
) },
28174 { FRVBF_INSN_X_CHAIN
, SEM_FN_NAME ( frvbf
, x_chain
) },
28175 { FRVBF_INSN_X_BEGIN
, SEM_FN_NAME ( frvbf
, x_begin
) },
28176 { FRVBF_INSN_ADD
, SEM_FN_NAME ( frvbf
, add
) },
28177 { FRVBF_INSN_SUB
, SEM_FN_NAME ( frvbf
, sub
) },
28178 { FRVBF_INSN_AND
, SEM_FN_NAME ( frvbf
, and ) },
28179 { FRVBF_INSN_OR
, SEM_FN_NAME ( frvbf
, or ) },
28180 { FRVBF_INSN_XOR
, SEM_FN_NAME ( frvbf
, xor ) },
28181 { FRVBF_INSN_NOT
, SEM_FN_NAME ( frvbf
, not ) },
28182 { FRVBF_INSN_SDIV
, SEM_FN_NAME ( frvbf
, sdiv
) },
28183 { FRVBF_INSN_NSDIV
, SEM_FN_NAME ( frvbf
, nsdiv
) },
28184 { FRVBF_INSN_UDIV
, SEM_FN_NAME ( frvbf
, udiv
) },
28185 { FRVBF_INSN_NUDIV
, SEM_FN_NAME ( frvbf
, nudiv
) },
28186 { FRVBF_INSN_SMUL
, SEM_FN_NAME ( frvbf
, smul
) },
28187 { FRVBF_INSN_UMUL
, SEM_FN_NAME ( frvbf
, umul
) },
28188 { FRVBF_INSN_SMU
, SEM_FN_NAME ( frvbf
, smu
) },
28189 { FRVBF_INSN_SMASS
, SEM_FN_NAME ( frvbf
, smass
) },
28190 { FRVBF_INSN_SMSSS
, SEM_FN_NAME ( frvbf
, smsss
) },
28191 { FRVBF_INSN_SLL
, SEM_FN_NAME ( frvbf
, sll
) },
28192 { FRVBF_INSN_SRL
, SEM_FN_NAME ( frvbf
, srl
) },
28193 { FRVBF_INSN_SRA
, SEM_FN_NAME ( frvbf
, sra
) },
28194 { FRVBF_INSN_SLASS
, SEM_FN_NAME ( frvbf
, slass
) },
28195 { FRVBF_INSN_SCUTSS
, SEM_FN_NAME ( frvbf
, scutss
) },
28196 { FRVBF_INSN_SCAN
, SEM_FN_NAME ( frvbf
, scan
) },
28197 { FRVBF_INSN_CADD
, SEM_FN_NAME ( frvbf
, cadd
) },
28198 { FRVBF_INSN_CSUB
, SEM_FN_NAME ( frvbf
, csub
) },
28199 { FRVBF_INSN_CAND
, SEM_FN_NAME ( frvbf
, cand
) },
28200 { FRVBF_INSN_COR
, SEM_FN_NAME ( frvbf
, cor
) },
28201 { FRVBF_INSN_CXOR
, SEM_FN_NAME ( frvbf
, cxor
) },
28202 { FRVBF_INSN_CNOT
, SEM_FN_NAME ( frvbf
, cnot
) },
28203 { FRVBF_INSN_CSMUL
, SEM_FN_NAME ( frvbf
, csmul
) },
28204 { FRVBF_INSN_CSDIV
, SEM_FN_NAME ( frvbf
, csdiv
) },
28205 { FRVBF_INSN_CUDIV
, SEM_FN_NAME ( frvbf
, cudiv
) },
28206 { FRVBF_INSN_CSLL
, SEM_FN_NAME ( frvbf
, csll
) },
28207 { FRVBF_INSN_CSRL
, SEM_FN_NAME ( frvbf
, csrl
) },
28208 { FRVBF_INSN_CSRA
, SEM_FN_NAME ( frvbf
, csra
) },
28209 { FRVBF_INSN_CSCAN
, SEM_FN_NAME ( frvbf
, cscan
) },
28210 { FRVBF_INSN_ADDCC
, SEM_FN_NAME ( frvbf
, addcc
) },
28211 { FRVBF_INSN_SUBCC
, SEM_FN_NAME ( frvbf
, subcc
) },
28212 { FRVBF_INSN_ANDCC
, SEM_FN_NAME ( frvbf
, andcc
) },
28213 { FRVBF_INSN_ORCC
, SEM_FN_NAME ( frvbf
, orcc
) },
28214 { FRVBF_INSN_XORCC
, SEM_FN_NAME ( frvbf
, xorcc
) },
28215 { FRVBF_INSN_SLLCC
, SEM_FN_NAME ( frvbf
, sllcc
) },
28216 { FRVBF_INSN_SRLCC
, SEM_FN_NAME ( frvbf
, srlcc
) },
28217 { FRVBF_INSN_SRACC
, SEM_FN_NAME ( frvbf
, sracc
) },
28218 { FRVBF_INSN_SMULCC
, SEM_FN_NAME ( frvbf
, smulcc
) },
28219 { FRVBF_INSN_UMULCC
, SEM_FN_NAME ( frvbf
, umulcc
) },
28220 { FRVBF_INSN_CADDCC
, SEM_FN_NAME ( frvbf
, caddcc
) },
28221 { FRVBF_INSN_CSUBCC
, SEM_FN_NAME ( frvbf
, csubcc
) },
28222 { FRVBF_INSN_CSMULCC
, SEM_FN_NAME ( frvbf
, csmulcc
) },
28223 { FRVBF_INSN_CANDCC
, SEM_FN_NAME ( frvbf
, candcc
) },
28224 { FRVBF_INSN_CORCC
, SEM_FN_NAME ( frvbf
, corcc
) },
28225 { FRVBF_INSN_CXORCC
, SEM_FN_NAME ( frvbf
, cxorcc
) },
28226 { FRVBF_INSN_CSLLCC
, SEM_FN_NAME ( frvbf
, csllcc
) },
28227 { FRVBF_INSN_CSRLCC
, SEM_FN_NAME ( frvbf
, csrlcc
) },
28228 { FRVBF_INSN_CSRACC
, SEM_FN_NAME ( frvbf
, csracc
) },
28229 { FRVBF_INSN_ADDX
, SEM_FN_NAME ( frvbf
, addx
) },
28230 { FRVBF_INSN_SUBX
, SEM_FN_NAME ( frvbf
, subx
) },
28231 { FRVBF_INSN_ADDXCC
, SEM_FN_NAME ( frvbf
, addxcc
) },
28232 { FRVBF_INSN_SUBXCC
, SEM_FN_NAME ( frvbf
, subxcc
) },
28233 { FRVBF_INSN_ADDSS
, SEM_FN_NAME ( frvbf
, addss
) },
28234 { FRVBF_INSN_SUBSS
, SEM_FN_NAME ( frvbf
, subss
) },
28235 { FRVBF_INSN_ADDI
, SEM_FN_NAME ( frvbf
, addi
) },
28236 { FRVBF_INSN_SUBI
, SEM_FN_NAME ( frvbf
, subi
) },
28237 { FRVBF_INSN_ANDI
, SEM_FN_NAME ( frvbf
, andi
) },
28238 { FRVBF_INSN_ORI
, SEM_FN_NAME ( frvbf
, ori
) },
28239 { FRVBF_INSN_XORI
, SEM_FN_NAME ( frvbf
, xori
) },
28240 { FRVBF_INSN_SDIVI
, SEM_FN_NAME ( frvbf
, sdivi
) },
28241 { FRVBF_INSN_NSDIVI
, SEM_FN_NAME ( frvbf
, nsdivi
) },
28242 { FRVBF_INSN_UDIVI
, SEM_FN_NAME ( frvbf
, udivi
) },
28243 { FRVBF_INSN_NUDIVI
, SEM_FN_NAME ( frvbf
, nudivi
) },
28244 { FRVBF_INSN_SMULI
, SEM_FN_NAME ( frvbf
, smuli
) },
28245 { FRVBF_INSN_UMULI
, SEM_FN_NAME ( frvbf
, umuli
) },
28246 { FRVBF_INSN_SLLI
, SEM_FN_NAME ( frvbf
, slli
) },
28247 { FRVBF_INSN_SRLI
, SEM_FN_NAME ( frvbf
, srli
) },
28248 { FRVBF_INSN_SRAI
, SEM_FN_NAME ( frvbf
, srai
) },
28249 { FRVBF_INSN_SCANI
, SEM_FN_NAME ( frvbf
, scani
) },
28250 { FRVBF_INSN_ADDICC
, SEM_FN_NAME ( frvbf
, addicc
) },
28251 { FRVBF_INSN_SUBICC
, SEM_FN_NAME ( frvbf
, subicc
) },
28252 { FRVBF_INSN_ANDICC
, SEM_FN_NAME ( frvbf
, andicc
) },
28253 { FRVBF_INSN_ORICC
, SEM_FN_NAME ( frvbf
, oricc
) },
28254 { FRVBF_INSN_XORICC
, SEM_FN_NAME ( frvbf
, xoricc
) },
28255 { FRVBF_INSN_SMULICC
, SEM_FN_NAME ( frvbf
, smulicc
) },
28256 { FRVBF_INSN_UMULICC
, SEM_FN_NAME ( frvbf
, umulicc
) },
28257 { FRVBF_INSN_SLLICC
, SEM_FN_NAME ( frvbf
, sllicc
) },
28258 { FRVBF_INSN_SRLICC
, SEM_FN_NAME ( frvbf
, srlicc
) },
28259 { FRVBF_INSN_SRAICC
, SEM_FN_NAME ( frvbf
, sraicc
) },
28260 { FRVBF_INSN_ADDXI
, SEM_FN_NAME ( frvbf
, addxi
) },
28261 { FRVBF_INSN_SUBXI
, SEM_FN_NAME ( frvbf
, subxi
) },
28262 { FRVBF_INSN_ADDXICC
, SEM_FN_NAME ( frvbf
, addxicc
) },
28263 { FRVBF_INSN_SUBXICC
, SEM_FN_NAME ( frvbf
, subxicc
) },
28264 { FRVBF_INSN_CMPB
, SEM_FN_NAME ( frvbf
, cmpb
) },
28265 { FRVBF_INSN_CMPBA
, SEM_FN_NAME ( frvbf
, cmpba
) },
28266 { FRVBF_INSN_SETLO
, SEM_FN_NAME ( frvbf
, setlo
) },
28267 { FRVBF_INSN_SETHI
, SEM_FN_NAME ( frvbf
, sethi
) },
28268 { FRVBF_INSN_SETLOS
, SEM_FN_NAME ( frvbf
, setlos
) },
28269 { FRVBF_INSN_LDSB
, SEM_FN_NAME ( frvbf
, ldsb
) },
28270 { FRVBF_INSN_LDUB
, SEM_FN_NAME ( frvbf
, ldub
) },
28271 { FRVBF_INSN_LDSH
, SEM_FN_NAME ( frvbf
, ldsh
) },
28272 { FRVBF_INSN_LDUH
, SEM_FN_NAME ( frvbf
, lduh
) },
28273 { FRVBF_INSN_LD
, SEM_FN_NAME ( frvbf
, ld
) },
28274 { FRVBF_INSN_LDBF
, SEM_FN_NAME ( frvbf
, ldbf
) },
28275 { FRVBF_INSN_LDHF
, SEM_FN_NAME ( frvbf
, ldhf
) },
28276 { FRVBF_INSN_LDF
, SEM_FN_NAME ( frvbf
, ldf
) },
28277 { FRVBF_INSN_LDC
, SEM_FN_NAME ( frvbf
, ldc
) },
28278 { FRVBF_INSN_NLDSB
, SEM_FN_NAME ( frvbf
, nldsb
) },
28279 { FRVBF_INSN_NLDUB
, SEM_FN_NAME ( frvbf
, nldub
) },
28280 { FRVBF_INSN_NLDSH
, SEM_FN_NAME ( frvbf
, nldsh
) },
28281 { FRVBF_INSN_NLDUH
, SEM_FN_NAME ( frvbf
, nlduh
) },
28282 { FRVBF_INSN_NLD
, SEM_FN_NAME ( frvbf
, nld
) },
28283 { FRVBF_INSN_NLDBF
, SEM_FN_NAME ( frvbf
, nldbf
) },
28284 { FRVBF_INSN_NLDHF
, SEM_FN_NAME ( frvbf
, nldhf
) },
28285 { FRVBF_INSN_NLDF
, SEM_FN_NAME ( frvbf
, nldf
) },
28286 { FRVBF_INSN_LDD
, SEM_FN_NAME ( frvbf
, ldd
) },
28287 { FRVBF_INSN_LDDF
, SEM_FN_NAME ( frvbf
, lddf
) },
28288 { FRVBF_INSN_LDDC
, SEM_FN_NAME ( frvbf
, lddc
) },
28289 { FRVBF_INSN_NLDD
, SEM_FN_NAME ( frvbf
, nldd
) },
28290 { FRVBF_INSN_NLDDF
, SEM_FN_NAME ( frvbf
, nlddf
) },
28291 { FRVBF_INSN_LDQ
, SEM_FN_NAME ( frvbf
, ldq
) },
28292 { FRVBF_INSN_LDQF
, SEM_FN_NAME ( frvbf
, ldqf
) },
28293 { FRVBF_INSN_LDQC
, SEM_FN_NAME ( frvbf
, ldqc
) },
28294 { FRVBF_INSN_NLDQ
, SEM_FN_NAME ( frvbf
, nldq
) },
28295 { FRVBF_INSN_NLDQF
, SEM_FN_NAME ( frvbf
, nldqf
) },
28296 { FRVBF_INSN_LDSBU
, SEM_FN_NAME ( frvbf
, ldsbu
) },
28297 { FRVBF_INSN_LDUBU
, SEM_FN_NAME ( frvbf
, ldubu
) },
28298 { FRVBF_INSN_LDSHU
, SEM_FN_NAME ( frvbf
, ldshu
) },
28299 { FRVBF_INSN_LDUHU
, SEM_FN_NAME ( frvbf
, lduhu
) },
28300 { FRVBF_INSN_LDU
, SEM_FN_NAME ( frvbf
, ldu
) },
28301 { FRVBF_INSN_NLDSBU
, SEM_FN_NAME ( frvbf
, nldsbu
) },
28302 { FRVBF_INSN_NLDUBU
, SEM_FN_NAME ( frvbf
, nldubu
) },
28303 { FRVBF_INSN_NLDSHU
, SEM_FN_NAME ( frvbf
, nldshu
) },
28304 { FRVBF_INSN_NLDUHU
, SEM_FN_NAME ( frvbf
, nlduhu
) },
28305 { FRVBF_INSN_NLDU
, SEM_FN_NAME ( frvbf
, nldu
) },
28306 { FRVBF_INSN_LDBFU
, SEM_FN_NAME ( frvbf
, ldbfu
) },
28307 { FRVBF_INSN_LDHFU
, SEM_FN_NAME ( frvbf
, ldhfu
) },
28308 { FRVBF_INSN_LDFU
, SEM_FN_NAME ( frvbf
, ldfu
) },
28309 { FRVBF_INSN_LDCU
, SEM_FN_NAME ( frvbf
, ldcu
) },
28310 { FRVBF_INSN_NLDBFU
, SEM_FN_NAME ( frvbf
, nldbfu
) },
28311 { FRVBF_INSN_NLDHFU
, SEM_FN_NAME ( frvbf
, nldhfu
) },
28312 { FRVBF_INSN_NLDFU
, SEM_FN_NAME ( frvbf
, nldfu
) },
28313 { FRVBF_INSN_LDDU
, SEM_FN_NAME ( frvbf
, lddu
) },
28314 { FRVBF_INSN_NLDDU
, SEM_FN_NAME ( frvbf
, nlddu
) },
28315 { FRVBF_INSN_LDDFU
, SEM_FN_NAME ( frvbf
, lddfu
) },
28316 { FRVBF_INSN_LDDCU
, SEM_FN_NAME ( frvbf
, lddcu
) },
28317 { FRVBF_INSN_NLDDFU
, SEM_FN_NAME ( frvbf
, nlddfu
) },
28318 { FRVBF_INSN_LDQU
, SEM_FN_NAME ( frvbf
, ldqu
) },
28319 { FRVBF_INSN_NLDQU
, SEM_FN_NAME ( frvbf
, nldqu
) },
28320 { FRVBF_INSN_LDQFU
, SEM_FN_NAME ( frvbf
, ldqfu
) },
28321 { FRVBF_INSN_LDQCU
, SEM_FN_NAME ( frvbf
, ldqcu
) },
28322 { FRVBF_INSN_NLDQFU
, SEM_FN_NAME ( frvbf
, nldqfu
) },
28323 { FRVBF_INSN_LDSBI
, SEM_FN_NAME ( frvbf
, ldsbi
) },
28324 { FRVBF_INSN_LDSHI
, SEM_FN_NAME ( frvbf
, ldshi
) },
28325 { FRVBF_INSN_LDI
, SEM_FN_NAME ( frvbf
, ldi
) },
28326 { FRVBF_INSN_LDUBI
, SEM_FN_NAME ( frvbf
, ldubi
) },
28327 { FRVBF_INSN_LDUHI
, SEM_FN_NAME ( frvbf
, lduhi
) },
28328 { FRVBF_INSN_LDBFI
, SEM_FN_NAME ( frvbf
, ldbfi
) },
28329 { FRVBF_INSN_LDHFI
, SEM_FN_NAME ( frvbf
, ldhfi
) },
28330 { FRVBF_INSN_LDFI
, SEM_FN_NAME ( frvbf
, ldfi
) },
28331 { FRVBF_INSN_NLDSBI
, SEM_FN_NAME ( frvbf
, nldsbi
) },
28332 { FRVBF_INSN_NLDUBI
, SEM_FN_NAME ( frvbf
, nldubi
) },
28333 { FRVBF_INSN_NLDSHI
, SEM_FN_NAME ( frvbf
, nldshi
) },
28334 { FRVBF_INSN_NLDUHI
, SEM_FN_NAME ( frvbf
, nlduhi
) },
28335 { FRVBF_INSN_NLDI
, SEM_FN_NAME ( frvbf
, nldi
) },
28336 { FRVBF_INSN_NLDBFI
, SEM_FN_NAME ( frvbf
, nldbfi
) },
28337 { FRVBF_INSN_NLDHFI
, SEM_FN_NAME ( frvbf
, nldhfi
) },
28338 { FRVBF_INSN_NLDFI
, SEM_FN_NAME ( frvbf
, nldfi
) },
28339 { FRVBF_INSN_LDDI
, SEM_FN_NAME ( frvbf
, lddi
) },
28340 { FRVBF_INSN_LDDFI
, SEM_FN_NAME ( frvbf
, lddfi
) },
28341 { FRVBF_INSN_NLDDI
, SEM_FN_NAME ( frvbf
, nlddi
) },
28342 { FRVBF_INSN_NLDDFI
, SEM_FN_NAME ( frvbf
, nlddfi
) },
28343 { FRVBF_INSN_LDQI
, SEM_FN_NAME ( frvbf
, ldqi
) },
28344 { FRVBF_INSN_LDQFI
, SEM_FN_NAME ( frvbf
, ldqfi
) },
28345 { FRVBF_INSN_NLDQFI
, SEM_FN_NAME ( frvbf
, nldqfi
) },
28346 { FRVBF_INSN_STB
, SEM_FN_NAME ( frvbf
, stb
) },
28347 { FRVBF_INSN_STH
, SEM_FN_NAME ( frvbf
, sth
) },
28348 { FRVBF_INSN_ST
, SEM_FN_NAME ( frvbf
, st
) },
28349 { FRVBF_INSN_STBF
, SEM_FN_NAME ( frvbf
, stbf
) },
28350 { FRVBF_INSN_STHF
, SEM_FN_NAME ( frvbf
, sthf
) },
28351 { FRVBF_INSN_STF
, SEM_FN_NAME ( frvbf
, stf
) },
28352 { FRVBF_INSN_STC
, SEM_FN_NAME ( frvbf
, stc
) },
28353 { FRVBF_INSN_STD
, SEM_FN_NAME ( frvbf
, std
) },
28354 { FRVBF_INSN_STDF
, SEM_FN_NAME ( frvbf
, stdf
) },
28355 { FRVBF_INSN_STDC
, SEM_FN_NAME ( frvbf
, stdc
) },
28356 { FRVBF_INSN_STQ
, SEM_FN_NAME ( frvbf
, stq
) },
28357 { FRVBF_INSN_STQF
, SEM_FN_NAME ( frvbf
, stqf
) },
28358 { FRVBF_INSN_STQC
, SEM_FN_NAME ( frvbf
, stqc
) },
28359 { FRVBF_INSN_STBU
, SEM_FN_NAME ( frvbf
, stbu
) },
28360 { FRVBF_INSN_STHU
, SEM_FN_NAME ( frvbf
, sthu
) },
28361 { FRVBF_INSN_STU
, SEM_FN_NAME ( frvbf
, stu
) },
28362 { FRVBF_INSN_STBFU
, SEM_FN_NAME ( frvbf
, stbfu
) },
28363 { FRVBF_INSN_STHFU
, SEM_FN_NAME ( frvbf
, sthfu
) },
28364 { FRVBF_INSN_STFU
, SEM_FN_NAME ( frvbf
, stfu
) },
28365 { FRVBF_INSN_STCU
, SEM_FN_NAME ( frvbf
, stcu
) },
28366 { FRVBF_INSN_STDU
, SEM_FN_NAME ( frvbf
, stdu
) },
28367 { FRVBF_INSN_STDFU
, SEM_FN_NAME ( frvbf
, stdfu
) },
28368 { FRVBF_INSN_STDCU
, SEM_FN_NAME ( frvbf
, stdcu
) },
28369 { FRVBF_INSN_STQU
, SEM_FN_NAME ( frvbf
, stqu
) },
28370 { FRVBF_INSN_STQFU
, SEM_FN_NAME ( frvbf
, stqfu
) },
28371 { FRVBF_INSN_STQCU
, SEM_FN_NAME ( frvbf
, stqcu
) },
28372 { FRVBF_INSN_CLDSB
, SEM_FN_NAME ( frvbf
, cldsb
) },
28373 { FRVBF_INSN_CLDUB
, SEM_FN_NAME ( frvbf
, cldub
) },
28374 { FRVBF_INSN_CLDSH
, SEM_FN_NAME ( frvbf
, cldsh
) },
28375 { FRVBF_INSN_CLDUH
, SEM_FN_NAME ( frvbf
, clduh
) },
28376 { FRVBF_INSN_CLD
, SEM_FN_NAME ( frvbf
, cld
) },
28377 { FRVBF_INSN_CLDBF
, SEM_FN_NAME ( frvbf
, cldbf
) },
28378 { FRVBF_INSN_CLDHF
, SEM_FN_NAME ( frvbf
, cldhf
) },
28379 { FRVBF_INSN_CLDF
, SEM_FN_NAME ( frvbf
, cldf
) },
28380 { FRVBF_INSN_CLDD
, SEM_FN_NAME ( frvbf
, cldd
) },
28381 { FRVBF_INSN_CLDDF
, SEM_FN_NAME ( frvbf
, clddf
) },
28382 { FRVBF_INSN_CLDQ
, SEM_FN_NAME ( frvbf
, cldq
) },
28383 { FRVBF_INSN_CLDSBU
, SEM_FN_NAME ( frvbf
, cldsbu
) },
28384 { FRVBF_INSN_CLDUBU
, SEM_FN_NAME ( frvbf
, cldubu
) },
28385 { FRVBF_INSN_CLDSHU
, SEM_FN_NAME ( frvbf
, cldshu
) },
28386 { FRVBF_INSN_CLDUHU
, SEM_FN_NAME ( frvbf
, clduhu
) },
28387 { FRVBF_INSN_CLDU
, SEM_FN_NAME ( frvbf
, cldu
) },
28388 { FRVBF_INSN_CLDBFU
, SEM_FN_NAME ( frvbf
, cldbfu
) },
28389 { FRVBF_INSN_CLDHFU
, SEM_FN_NAME ( frvbf
, cldhfu
) },
28390 { FRVBF_INSN_CLDFU
, SEM_FN_NAME ( frvbf
, cldfu
) },
28391 { FRVBF_INSN_CLDDU
, SEM_FN_NAME ( frvbf
, clddu
) },
28392 { FRVBF_INSN_CLDDFU
, SEM_FN_NAME ( frvbf
, clddfu
) },
28393 { FRVBF_INSN_CLDQU
, SEM_FN_NAME ( frvbf
, cldqu
) },
28394 { FRVBF_INSN_CSTB
, SEM_FN_NAME ( frvbf
, cstb
) },
28395 { FRVBF_INSN_CSTH
, SEM_FN_NAME ( frvbf
, csth
) },
28396 { FRVBF_INSN_CST
, SEM_FN_NAME ( frvbf
, cst
) },
28397 { FRVBF_INSN_CSTBF
, SEM_FN_NAME ( frvbf
, cstbf
) },
28398 { FRVBF_INSN_CSTHF
, SEM_FN_NAME ( frvbf
, csthf
) },
28399 { FRVBF_INSN_CSTF
, SEM_FN_NAME ( frvbf
, cstf
) },
28400 { FRVBF_INSN_CSTD
, SEM_FN_NAME ( frvbf
, cstd
) },
28401 { FRVBF_INSN_CSTDF
, SEM_FN_NAME ( frvbf
, cstdf
) },
28402 { FRVBF_INSN_CSTQ
, SEM_FN_NAME ( frvbf
, cstq
) },
28403 { FRVBF_INSN_CSTBU
, SEM_FN_NAME ( frvbf
, cstbu
) },
28404 { FRVBF_INSN_CSTHU
, SEM_FN_NAME ( frvbf
, csthu
) },
28405 { FRVBF_INSN_CSTU
, SEM_FN_NAME ( frvbf
, cstu
) },
28406 { FRVBF_INSN_CSTBFU
, SEM_FN_NAME ( frvbf
, cstbfu
) },
28407 { FRVBF_INSN_CSTHFU
, SEM_FN_NAME ( frvbf
, csthfu
) },
28408 { FRVBF_INSN_CSTFU
, SEM_FN_NAME ( frvbf
, cstfu
) },
28409 { FRVBF_INSN_CSTDU
, SEM_FN_NAME ( frvbf
, cstdu
) },
28410 { FRVBF_INSN_CSTDFU
, SEM_FN_NAME ( frvbf
, cstdfu
) },
28411 { FRVBF_INSN_STBI
, SEM_FN_NAME ( frvbf
, stbi
) },
28412 { FRVBF_INSN_STHI
, SEM_FN_NAME ( frvbf
, sthi
) },
28413 { FRVBF_INSN_STI
, SEM_FN_NAME ( frvbf
, sti
) },
28414 { FRVBF_INSN_STBFI
, SEM_FN_NAME ( frvbf
, stbfi
) },
28415 { FRVBF_INSN_STHFI
, SEM_FN_NAME ( frvbf
, sthfi
) },
28416 { FRVBF_INSN_STFI
, SEM_FN_NAME ( frvbf
, stfi
) },
28417 { FRVBF_INSN_STDI
, SEM_FN_NAME ( frvbf
, stdi
) },
28418 { FRVBF_INSN_STDFI
, SEM_FN_NAME ( frvbf
, stdfi
) },
28419 { FRVBF_INSN_STQI
, SEM_FN_NAME ( frvbf
, stqi
) },
28420 { FRVBF_INSN_STQFI
, SEM_FN_NAME ( frvbf
, stqfi
) },
28421 { FRVBF_INSN_SWAP
, SEM_FN_NAME ( frvbf
, swap
) },
28422 { FRVBF_INSN_SWAPI
, SEM_FN_NAME ( frvbf
, swapi
) },
28423 { FRVBF_INSN_CSWAP
, SEM_FN_NAME ( frvbf
, cswap
) },
28424 { FRVBF_INSN_MOVGF
, SEM_FN_NAME ( frvbf
, movgf
) },
28425 { FRVBF_INSN_MOVFG
, SEM_FN_NAME ( frvbf
, movfg
) },
28426 { FRVBF_INSN_MOVGFD
, SEM_FN_NAME ( frvbf
, movgfd
) },
28427 { FRVBF_INSN_MOVFGD
, SEM_FN_NAME ( frvbf
, movfgd
) },
28428 { FRVBF_INSN_MOVGFQ
, SEM_FN_NAME ( frvbf
, movgfq
) },
28429 { FRVBF_INSN_MOVFGQ
, SEM_FN_NAME ( frvbf
, movfgq
) },
28430 { FRVBF_INSN_CMOVGF
, SEM_FN_NAME ( frvbf
, cmovgf
) },
28431 { FRVBF_INSN_CMOVFG
, SEM_FN_NAME ( frvbf
, cmovfg
) },
28432 { FRVBF_INSN_CMOVGFD
, SEM_FN_NAME ( frvbf
, cmovgfd
) },
28433 { FRVBF_INSN_CMOVFGD
, SEM_FN_NAME ( frvbf
, cmovfgd
) },
28434 { FRVBF_INSN_MOVGS
, SEM_FN_NAME ( frvbf
, movgs
) },
28435 { FRVBF_INSN_MOVSG
, SEM_FN_NAME ( frvbf
, movsg
) },
28436 { FRVBF_INSN_BRA
, SEM_FN_NAME ( frvbf
, bra
) },
28437 { FRVBF_INSN_BNO
, SEM_FN_NAME ( frvbf
, bno
) },
28438 { FRVBF_INSN_BEQ
, SEM_FN_NAME ( frvbf
, beq
) },
28439 { FRVBF_INSN_BNE
, SEM_FN_NAME ( frvbf
, bne
) },
28440 { FRVBF_INSN_BLE
, SEM_FN_NAME ( frvbf
, ble
) },
28441 { FRVBF_INSN_BGT
, SEM_FN_NAME ( frvbf
, bgt
) },
28442 { FRVBF_INSN_BLT
, SEM_FN_NAME ( frvbf
, blt
) },
28443 { FRVBF_INSN_BGE
, SEM_FN_NAME ( frvbf
, bge
) },
28444 { FRVBF_INSN_BLS
, SEM_FN_NAME ( frvbf
, bls
) },
28445 { FRVBF_INSN_BHI
, SEM_FN_NAME ( frvbf
, bhi
) },
28446 { FRVBF_INSN_BC
, SEM_FN_NAME ( frvbf
, bc
) },
28447 { FRVBF_INSN_BNC
, SEM_FN_NAME ( frvbf
, bnc
) },
28448 { FRVBF_INSN_BN
, SEM_FN_NAME ( frvbf
, bn
) },
28449 { FRVBF_INSN_BP
, SEM_FN_NAME ( frvbf
, bp
) },
28450 { FRVBF_INSN_BV
, SEM_FN_NAME ( frvbf
, bv
) },
28451 { FRVBF_INSN_BNV
, SEM_FN_NAME ( frvbf
, bnv
) },
28452 { FRVBF_INSN_FBRA
, SEM_FN_NAME ( frvbf
, fbra
) },
28453 { FRVBF_INSN_FBNO
, SEM_FN_NAME ( frvbf
, fbno
) },
28454 { FRVBF_INSN_FBNE
, SEM_FN_NAME ( frvbf
, fbne
) },
28455 { FRVBF_INSN_FBEQ
, SEM_FN_NAME ( frvbf
, fbeq
) },
28456 { FRVBF_INSN_FBLG
, SEM_FN_NAME ( frvbf
, fblg
) },
28457 { FRVBF_INSN_FBUE
, SEM_FN_NAME ( frvbf
, fbue
) },
28458 { FRVBF_INSN_FBUL
, SEM_FN_NAME ( frvbf
, fbul
) },
28459 { FRVBF_INSN_FBGE
, SEM_FN_NAME ( frvbf
, fbge
) },
28460 { FRVBF_INSN_FBLT
, SEM_FN_NAME ( frvbf
, fblt
) },
28461 { FRVBF_INSN_FBUGE
, SEM_FN_NAME ( frvbf
, fbuge
) },
28462 { FRVBF_INSN_FBUG
, SEM_FN_NAME ( frvbf
, fbug
) },
28463 { FRVBF_INSN_FBLE
, SEM_FN_NAME ( frvbf
, fble
) },
28464 { FRVBF_INSN_FBGT
, SEM_FN_NAME ( frvbf
, fbgt
) },
28465 { FRVBF_INSN_FBULE
, SEM_FN_NAME ( frvbf
, fbule
) },
28466 { FRVBF_INSN_FBU
, SEM_FN_NAME ( frvbf
, fbu
) },
28467 { FRVBF_INSN_FBO
, SEM_FN_NAME ( frvbf
, fbo
) },
28468 { FRVBF_INSN_BCTRLR
, SEM_FN_NAME ( frvbf
, bctrlr
) },
28469 { FRVBF_INSN_BRALR
, SEM_FN_NAME ( frvbf
, bralr
) },
28470 { FRVBF_INSN_BNOLR
, SEM_FN_NAME ( frvbf
, bnolr
) },
28471 { FRVBF_INSN_BEQLR
, SEM_FN_NAME ( frvbf
, beqlr
) },
28472 { FRVBF_INSN_BNELR
, SEM_FN_NAME ( frvbf
, bnelr
) },
28473 { FRVBF_INSN_BLELR
, SEM_FN_NAME ( frvbf
, blelr
) },
28474 { FRVBF_INSN_BGTLR
, SEM_FN_NAME ( frvbf
, bgtlr
) },
28475 { FRVBF_INSN_BLTLR
, SEM_FN_NAME ( frvbf
, bltlr
) },
28476 { FRVBF_INSN_BGELR
, SEM_FN_NAME ( frvbf
, bgelr
) },
28477 { FRVBF_INSN_BLSLR
, SEM_FN_NAME ( frvbf
, blslr
) },
28478 { FRVBF_INSN_BHILR
, SEM_FN_NAME ( frvbf
, bhilr
) },
28479 { FRVBF_INSN_BCLR
, SEM_FN_NAME ( frvbf
, bclr
) },
28480 { FRVBF_INSN_BNCLR
, SEM_FN_NAME ( frvbf
, bnclr
) },
28481 { FRVBF_INSN_BNLR
, SEM_FN_NAME ( frvbf
, bnlr
) },
28482 { FRVBF_INSN_BPLR
, SEM_FN_NAME ( frvbf
, bplr
) },
28483 { FRVBF_INSN_BVLR
, SEM_FN_NAME ( frvbf
, bvlr
) },
28484 { FRVBF_INSN_BNVLR
, SEM_FN_NAME ( frvbf
, bnvlr
) },
28485 { FRVBF_INSN_FBRALR
, SEM_FN_NAME ( frvbf
, fbralr
) },
28486 { FRVBF_INSN_FBNOLR
, SEM_FN_NAME ( frvbf
, fbnolr
) },
28487 { FRVBF_INSN_FBEQLR
, SEM_FN_NAME ( frvbf
, fbeqlr
) },
28488 { FRVBF_INSN_FBNELR
, SEM_FN_NAME ( frvbf
, fbnelr
) },
28489 { FRVBF_INSN_FBLGLR
, SEM_FN_NAME ( frvbf
, fblglr
) },
28490 { FRVBF_INSN_FBUELR
, SEM_FN_NAME ( frvbf
, fbuelr
) },
28491 { FRVBF_INSN_FBULLR
, SEM_FN_NAME ( frvbf
, fbullr
) },
28492 { FRVBF_INSN_FBGELR
, SEM_FN_NAME ( frvbf
, fbgelr
) },
28493 { FRVBF_INSN_FBLTLR
, SEM_FN_NAME ( frvbf
, fbltlr
) },
28494 { FRVBF_INSN_FBUGELR
, SEM_FN_NAME ( frvbf
, fbugelr
) },
28495 { FRVBF_INSN_FBUGLR
, SEM_FN_NAME ( frvbf
, fbuglr
) },
28496 { FRVBF_INSN_FBLELR
, SEM_FN_NAME ( frvbf
, fblelr
) },
28497 { FRVBF_INSN_FBGTLR
, SEM_FN_NAME ( frvbf
, fbgtlr
) },
28498 { FRVBF_INSN_FBULELR
, SEM_FN_NAME ( frvbf
, fbulelr
) },
28499 { FRVBF_INSN_FBULR
, SEM_FN_NAME ( frvbf
, fbulr
) },
28500 { FRVBF_INSN_FBOLR
, SEM_FN_NAME ( frvbf
, fbolr
) },
28501 { FRVBF_INSN_BCRALR
, SEM_FN_NAME ( frvbf
, bcralr
) },
28502 { FRVBF_INSN_BCNOLR
, SEM_FN_NAME ( frvbf
, bcnolr
) },
28503 { FRVBF_INSN_BCEQLR
, SEM_FN_NAME ( frvbf
, bceqlr
) },
28504 { FRVBF_INSN_BCNELR
, SEM_FN_NAME ( frvbf
, bcnelr
) },
28505 { FRVBF_INSN_BCLELR
, SEM_FN_NAME ( frvbf
, bclelr
) },
28506 { FRVBF_INSN_BCGTLR
, SEM_FN_NAME ( frvbf
, bcgtlr
) },
28507 { FRVBF_INSN_BCLTLR
, SEM_FN_NAME ( frvbf
, bcltlr
) },
28508 { FRVBF_INSN_BCGELR
, SEM_FN_NAME ( frvbf
, bcgelr
) },
28509 { FRVBF_INSN_BCLSLR
, SEM_FN_NAME ( frvbf
, bclslr
) },
28510 { FRVBF_INSN_BCHILR
, SEM_FN_NAME ( frvbf
, bchilr
) },
28511 { FRVBF_INSN_BCCLR
, SEM_FN_NAME ( frvbf
, bcclr
) },
28512 { FRVBF_INSN_BCNCLR
, SEM_FN_NAME ( frvbf
, bcnclr
) },
28513 { FRVBF_INSN_BCNLR
, SEM_FN_NAME ( frvbf
, bcnlr
) },
28514 { FRVBF_INSN_BCPLR
, SEM_FN_NAME ( frvbf
, bcplr
) },
28515 { FRVBF_INSN_BCVLR
, SEM_FN_NAME ( frvbf
, bcvlr
) },
28516 { FRVBF_INSN_BCNVLR
, SEM_FN_NAME ( frvbf
, bcnvlr
) },
28517 { FRVBF_INSN_FCBRALR
, SEM_FN_NAME ( frvbf
, fcbralr
) },
28518 { FRVBF_INSN_FCBNOLR
, SEM_FN_NAME ( frvbf
, fcbnolr
) },
28519 { FRVBF_INSN_FCBEQLR
, SEM_FN_NAME ( frvbf
, fcbeqlr
) },
28520 { FRVBF_INSN_FCBNELR
, SEM_FN_NAME ( frvbf
, fcbnelr
) },
28521 { FRVBF_INSN_FCBLGLR
, SEM_FN_NAME ( frvbf
, fcblglr
) },
28522 { FRVBF_INSN_FCBUELR
, SEM_FN_NAME ( frvbf
, fcbuelr
) },
28523 { FRVBF_INSN_FCBULLR
, SEM_FN_NAME ( frvbf
, fcbullr
) },
28524 { FRVBF_INSN_FCBGELR
, SEM_FN_NAME ( frvbf
, fcbgelr
) },
28525 { FRVBF_INSN_FCBLTLR
, SEM_FN_NAME ( frvbf
, fcbltlr
) },
28526 { FRVBF_INSN_FCBUGELR
, SEM_FN_NAME ( frvbf
, fcbugelr
) },
28527 { FRVBF_INSN_FCBUGLR
, SEM_FN_NAME ( frvbf
, fcbuglr
) },
28528 { FRVBF_INSN_FCBLELR
, SEM_FN_NAME ( frvbf
, fcblelr
) },
28529 { FRVBF_INSN_FCBGTLR
, SEM_FN_NAME ( frvbf
, fcbgtlr
) },
28530 { FRVBF_INSN_FCBULELR
, SEM_FN_NAME ( frvbf
, fcbulelr
) },
28531 { FRVBF_INSN_FCBULR
, SEM_FN_NAME ( frvbf
, fcbulr
) },
28532 { FRVBF_INSN_FCBOLR
, SEM_FN_NAME ( frvbf
, fcbolr
) },
28533 { FRVBF_INSN_JMPL
, SEM_FN_NAME ( frvbf
, jmpl
) },
28534 { FRVBF_INSN_CALLL
, SEM_FN_NAME ( frvbf
, calll
) },
28535 { FRVBF_INSN_JMPIL
, SEM_FN_NAME ( frvbf
, jmpil
) },
28536 { FRVBF_INSN_CALLIL
, SEM_FN_NAME ( frvbf
, callil
) },
28537 { FRVBF_INSN_CALL
, SEM_FN_NAME ( frvbf
, call
) },
28538 { FRVBF_INSN_RETT
, SEM_FN_NAME ( frvbf
, rett
) },
28539 { FRVBF_INSN_REI
, SEM_FN_NAME ( frvbf
, rei
) },
28540 { FRVBF_INSN_TRA
, SEM_FN_NAME ( frvbf
, tra
) },
28541 { FRVBF_INSN_TNO
, SEM_FN_NAME ( frvbf
, tno
) },
28542 { FRVBF_INSN_TEQ
, SEM_FN_NAME ( frvbf
, teq
) },
28543 { FRVBF_INSN_TNE
, SEM_FN_NAME ( frvbf
, tne
) },
28544 { FRVBF_INSN_TLE
, SEM_FN_NAME ( frvbf
, tle
) },
28545 { FRVBF_INSN_TGT
, SEM_FN_NAME ( frvbf
, tgt
) },
28546 { FRVBF_INSN_TLT
, SEM_FN_NAME ( frvbf
, tlt
) },
28547 { FRVBF_INSN_TGE
, SEM_FN_NAME ( frvbf
, tge
) },
28548 { FRVBF_INSN_TLS
, SEM_FN_NAME ( frvbf
, tls
) },
28549 { FRVBF_INSN_THI
, SEM_FN_NAME ( frvbf
, thi
) },
28550 { FRVBF_INSN_TC
, SEM_FN_NAME ( frvbf
, tc
) },
28551 { FRVBF_INSN_TNC
, SEM_FN_NAME ( frvbf
, tnc
) },
28552 { FRVBF_INSN_TN
, SEM_FN_NAME ( frvbf
, tn
) },
28553 { FRVBF_INSN_TP
, SEM_FN_NAME ( frvbf
, tp
) },
28554 { FRVBF_INSN_TV
, SEM_FN_NAME ( frvbf
, tv
) },
28555 { FRVBF_INSN_TNV
, SEM_FN_NAME ( frvbf
, tnv
) },
28556 { FRVBF_INSN_FTRA
, SEM_FN_NAME ( frvbf
, ftra
) },
28557 { FRVBF_INSN_FTNO
, SEM_FN_NAME ( frvbf
, ftno
) },
28558 { FRVBF_INSN_FTNE
, SEM_FN_NAME ( frvbf
, ftne
) },
28559 { FRVBF_INSN_FTEQ
, SEM_FN_NAME ( frvbf
, fteq
) },
28560 { FRVBF_INSN_FTLG
, SEM_FN_NAME ( frvbf
, ftlg
) },
28561 { FRVBF_INSN_FTUE
, SEM_FN_NAME ( frvbf
, ftue
) },
28562 { FRVBF_INSN_FTUL
, SEM_FN_NAME ( frvbf
, ftul
) },
28563 { FRVBF_INSN_FTGE
, SEM_FN_NAME ( frvbf
, ftge
) },
28564 { FRVBF_INSN_FTLT
, SEM_FN_NAME ( frvbf
, ftlt
) },
28565 { FRVBF_INSN_FTUGE
, SEM_FN_NAME ( frvbf
, ftuge
) },
28566 { FRVBF_INSN_FTUG
, SEM_FN_NAME ( frvbf
, ftug
) },
28567 { FRVBF_INSN_FTLE
, SEM_FN_NAME ( frvbf
, ftle
) },
28568 { FRVBF_INSN_FTGT
, SEM_FN_NAME ( frvbf
, ftgt
) },
28569 { FRVBF_INSN_FTULE
, SEM_FN_NAME ( frvbf
, ftule
) },
28570 { FRVBF_INSN_FTU
, SEM_FN_NAME ( frvbf
, ftu
) },
28571 { FRVBF_INSN_FTO
, SEM_FN_NAME ( frvbf
, fto
) },
28572 { FRVBF_INSN_TIRA
, SEM_FN_NAME ( frvbf
, tira
) },
28573 { FRVBF_INSN_TINO
, SEM_FN_NAME ( frvbf
, tino
) },
28574 { FRVBF_INSN_TIEQ
, SEM_FN_NAME ( frvbf
, tieq
) },
28575 { FRVBF_INSN_TINE
, SEM_FN_NAME ( frvbf
, tine
) },
28576 { FRVBF_INSN_TILE
, SEM_FN_NAME ( frvbf
, tile
) },
28577 { FRVBF_INSN_TIGT
, SEM_FN_NAME ( frvbf
, tigt
) },
28578 { FRVBF_INSN_TILT
, SEM_FN_NAME ( frvbf
, tilt
) },
28579 { FRVBF_INSN_TIGE
, SEM_FN_NAME ( frvbf
, tige
) },
28580 { FRVBF_INSN_TILS
, SEM_FN_NAME ( frvbf
, tils
) },
28581 { FRVBF_INSN_TIHI
, SEM_FN_NAME ( frvbf
, tihi
) },
28582 { FRVBF_INSN_TIC
, SEM_FN_NAME ( frvbf
, tic
) },
28583 { FRVBF_INSN_TINC
, SEM_FN_NAME ( frvbf
, tinc
) },
28584 { FRVBF_INSN_TIN
, SEM_FN_NAME ( frvbf
, tin
) },
28585 { FRVBF_INSN_TIP
, SEM_FN_NAME ( frvbf
, tip
) },
28586 { FRVBF_INSN_TIV
, SEM_FN_NAME ( frvbf
, tiv
) },
28587 { FRVBF_INSN_TINV
, SEM_FN_NAME ( frvbf
, tinv
) },
28588 { FRVBF_INSN_FTIRA
, SEM_FN_NAME ( frvbf
, ftira
) },
28589 { FRVBF_INSN_FTINO
, SEM_FN_NAME ( frvbf
, ftino
) },
28590 { FRVBF_INSN_FTINE
, SEM_FN_NAME ( frvbf
, ftine
) },
28591 { FRVBF_INSN_FTIEQ
, SEM_FN_NAME ( frvbf
, ftieq
) },
28592 { FRVBF_INSN_FTILG
, SEM_FN_NAME ( frvbf
, ftilg
) },
28593 { FRVBF_INSN_FTIUE
, SEM_FN_NAME ( frvbf
, ftiue
) },
28594 { FRVBF_INSN_FTIUL
, SEM_FN_NAME ( frvbf
, ftiul
) },
28595 { FRVBF_INSN_FTIGE
, SEM_FN_NAME ( frvbf
, ftige
) },
28596 { FRVBF_INSN_FTILT
, SEM_FN_NAME ( frvbf
, ftilt
) },
28597 { FRVBF_INSN_FTIUGE
, SEM_FN_NAME ( frvbf
, ftiuge
) },
28598 { FRVBF_INSN_FTIUG
, SEM_FN_NAME ( frvbf
, ftiug
) },
28599 { FRVBF_INSN_FTILE
, SEM_FN_NAME ( frvbf
, ftile
) },
28600 { FRVBF_INSN_FTIGT
, SEM_FN_NAME ( frvbf
, ftigt
) },
28601 { FRVBF_INSN_FTIULE
, SEM_FN_NAME ( frvbf
, ftiule
) },
28602 { FRVBF_INSN_FTIU
, SEM_FN_NAME ( frvbf
, ftiu
) },
28603 { FRVBF_INSN_FTIO
, SEM_FN_NAME ( frvbf
, ftio
) },
28604 { FRVBF_INSN_BREAK
, SEM_FN_NAME ( frvbf
, break ) },
28605 { FRVBF_INSN_MTRAP
, SEM_FN_NAME ( frvbf
, mtrap
) },
28606 { FRVBF_INSN_ANDCR
, SEM_FN_NAME ( frvbf
, andcr
) },
28607 { FRVBF_INSN_ORCR
, SEM_FN_NAME ( frvbf
, orcr
) },
28608 { FRVBF_INSN_XORCR
, SEM_FN_NAME ( frvbf
, xorcr
) },
28609 { FRVBF_INSN_NANDCR
, SEM_FN_NAME ( frvbf
, nandcr
) },
28610 { FRVBF_INSN_NORCR
, SEM_FN_NAME ( frvbf
, norcr
) },
28611 { FRVBF_INSN_ANDNCR
, SEM_FN_NAME ( frvbf
, andncr
) },
28612 { FRVBF_INSN_ORNCR
, SEM_FN_NAME ( frvbf
, orncr
) },
28613 { FRVBF_INSN_NANDNCR
, SEM_FN_NAME ( frvbf
, nandncr
) },
28614 { FRVBF_INSN_NORNCR
, SEM_FN_NAME ( frvbf
, norncr
) },
28615 { FRVBF_INSN_NOTCR
, SEM_FN_NAME ( frvbf
, notcr
) },
28616 { FRVBF_INSN_CKRA
, SEM_FN_NAME ( frvbf
, ckra
) },
28617 { FRVBF_INSN_CKNO
, SEM_FN_NAME ( frvbf
, ckno
) },
28618 { FRVBF_INSN_CKEQ
, SEM_FN_NAME ( frvbf
, ckeq
) },
28619 { FRVBF_INSN_CKNE
, SEM_FN_NAME ( frvbf
, ckne
) },
28620 { FRVBF_INSN_CKLE
, SEM_FN_NAME ( frvbf
, ckle
) },
28621 { FRVBF_INSN_CKGT
, SEM_FN_NAME ( frvbf
, ckgt
) },
28622 { FRVBF_INSN_CKLT
, SEM_FN_NAME ( frvbf
, cklt
) },
28623 { FRVBF_INSN_CKGE
, SEM_FN_NAME ( frvbf
, ckge
) },
28624 { FRVBF_INSN_CKLS
, SEM_FN_NAME ( frvbf
, ckls
) },
28625 { FRVBF_INSN_CKHI
, SEM_FN_NAME ( frvbf
, ckhi
) },
28626 { FRVBF_INSN_CKC
, SEM_FN_NAME ( frvbf
, ckc
) },
28627 { FRVBF_INSN_CKNC
, SEM_FN_NAME ( frvbf
, cknc
) },
28628 { FRVBF_INSN_CKN
, SEM_FN_NAME ( frvbf
, ckn
) },
28629 { FRVBF_INSN_CKP
, SEM_FN_NAME ( frvbf
, ckp
) },
28630 { FRVBF_INSN_CKV
, SEM_FN_NAME ( frvbf
, ckv
) },
28631 { FRVBF_INSN_CKNV
, SEM_FN_NAME ( frvbf
, cknv
) },
28632 { FRVBF_INSN_FCKRA
, SEM_FN_NAME ( frvbf
, fckra
) },
28633 { FRVBF_INSN_FCKNO
, SEM_FN_NAME ( frvbf
, fckno
) },
28634 { FRVBF_INSN_FCKNE
, SEM_FN_NAME ( frvbf
, fckne
) },
28635 { FRVBF_INSN_FCKEQ
, SEM_FN_NAME ( frvbf
, fckeq
) },
28636 { FRVBF_INSN_FCKLG
, SEM_FN_NAME ( frvbf
, fcklg
) },
28637 { FRVBF_INSN_FCKUE
, SEM_FN_NAME ( frvbf
, fckue
) },
28638 { FRVBF_INSN_FCKUL
, SEM_FN_NAME ( frvbf
, fckul
) },
28639 { FRVBF_INSN_FCKGE
, SEM_FN_NAME ( frvbf
, fckge
) },
28640 { FRVBF_INSN_FCKLT
, SEM_FN_NAME ( frvbf
, fcklt
) },
28641 { FRVBF_INSN_FCKUGE
, SEM_FN_NAME ( frvbf
, fckuge
) },
28642 { FRVBF_INSN_FCKUG
, SEM_FN_NAME ( frvbf
, fckug
) },
28643 { FRVBF_INSN_FCKLE
, SEM_FN_NAME ( frvbf
, fckle
) },
28644 { FRVBF_INSN_FCKGT
, SEM_FN_NAME ( frvbf
, fckgt
) },
28645 { FRVBF_INSN_FCKULE
, SEM_FN_NAME ( frvbf
, fckule
) },
28646 { FRVBF_INSN_FCKU
, SEM_FN_NAME ( frvbf
, fcku
) },
28647 { FRVBF_INSN_FCKO
, SEM_FN_NAME ( frvbf
, fcko
) },
28648 { FRVBF_INSN_CCKRA
, SEM_FN_NAME ( frvbf
, cckra
) },
28649 { FRVBF_INSN_CCKNO
, SEM_FN_NAME ( frvbf
, cckno
) },
28650 { FRVBF_INSN_CCKEQ
, SEM_FN_NAME ( frvbf
, cckeq
) },
28651 { FRVBF_INSN_CCKNE
, SEM_FN_NAME ( frvbf
, cckne
) },
28652 { FRVBF_INSN_CCKLE
, SEM_FN_NAME ( frvbf
, cckle
) },
28653 { FRVBF_INSN_CCKGT
, SEM_FN_NAME ( frvbf
, cckgt
) },
28654 { FRVBF_INSN_CCKLT
, SEM_FN_NAME ( frvbf
, ccklt
) },
28655 { FRVBF_INSN_CCKGE
, SEM_FN_NAME ( frvbf
, cckge
) },
28656 { FRVBF_INSN_CCKLS
, SEM_FN_NAME ( frvbf
, cckls
) },
28657 { FRVBF_INSN_CCKHI
, SEM_FN_NAME ( frvbf
, cckhi
) },
28658 { FRVBF_INSN_CCKC
, SEM_FN_NAME ( frvbf
, cckc
) },
28659 { FRVBF_INSN_CCKNC
, SEM_FN_NAME ( frvbf
, ccknc
) },
28660 { FRVBF_INSN_CCKN
, SEM_FN_NAME ( frvbf
, cckn
) },
28661 { FRVBF_INSN_CCKP
, SEM_FN_NAME ( frvbf
, cckp
) },
28662 { FRVBF_INSN_CCKV
, SEM_FN_NAME ( frvbf
, cckv
) },
28663 { FRVBF_INSN_CCKNV
, SEM_FN_NAME ( frvbf
, ccknv
) },
28664 { FRVBF_INSN_CFCKRA
, SEM_FN_NAME ( frvbf
, cfckra
) },
28665 { FRVBF_INSN_CFCKNO
, SEM_FN_NAME ( frvbf
, cfckno
) },
28666 { FRVBF_INSN_CFCKNE
, SEM_FN_NAME ( frvbf
, cfckne
) },
28667 { FRVBF_INSN_CFCKEQ
, SEM_FN_NAME ( frvbf
, cfckeq
) },
28668 { FRVBF_INSN_CFCKLG
, SEM_FN_NAME ( frvbf
, cfcklg
) },
28669 { FRVBF_INSN_CFCKUE
, SEM_FN_NAME ( frvbf
, cfckue
) },
28670 { FRVBF_INSN_CFCKUL
, SEM_FN_NAME ( frvbf
, cfckul
) },
28671 { FRVBF_INSN_CFCKGE
, SEM_FN_NAME ( frvbf
, cfckge
) },
28672 { FRVBF_INSN_CFCKLT
, SEM_FN_NAME ( frvbf
, cfcklt
) },
28673 { FRVBF_INSN_CFCKUGE
, SEM_FN_NAME ( frvbf
, cfckuge
) },
28674 { FRVBF_INSN_CFCKUG
, SEM_FN_NAME ( frvbf
, cfckug
) },
28675 { FRVBF_INSN_CFCKLE
, SEM_FN_NAME ( frvbf
, cfckle
) },
28676 { FRVBF_INSN_CFCKGT
, SEM_FN_NAME ( frvbf
, cfckgt
) },
28677 { FRVBF_INSN_CFCKULE
, SEM_FN_NAME ( frvbf
, cfckule
) },
28678 { FRVBF_INSN_CFCKU
, SEM_FN_NAME ( frvbf
, cfcku
) },
28679 { FRVBF_INSN_CFCKO
, SEM_FN_NAME ( frvbf
, cfcko
) },
28680 { FRVBF_INSN_CJMPL
, SEM_FN_NAME ( frvbf
, cjmpl
) },
28681 { FRVBF_INSN_CCALLL
, SEM_FN_NAME ( frvbf
, ccalll
) },
28682 { FRVBF_INSN_ICI
, SEM_FN_NAME ( frvbf
, ici
) },
28683 { FRVBF_INSN_DCI
, SEM_FN_NAME ( frvbf
, dci
) },
28684 { FRVBF_INSN_ICEI
, SEM_FN_NAME ( frvbf
, icei
) },
28685 { FRVBF_INSN_DCEI
, SEM_FN_NAME ( frvbf
, dcei
) },
28686 { FRVBF_INSN_DCF
, SEM_FN_NAME ( frvbf
, dcf
) },
28687 { FRVBF_INSN_DCEF
, SEM_FN_NAME ( frvbf
, dcef
) },
28688 { FRVBF_INSN_WITLB
, SEM_FN_NAME ( frvbf
, witlb
) },
28689 { FRVBF_INSN_WDTLB
, SEM_FN_NAME ( frvbf
, wdtlb
) },
28690 { FRVBF_INSN_ITLBI
, SEM_FN_NAME ( frvbf
, itlbi
) },
28691 { FRVBF_INSN_DTLBI
, SEM_FN_NAME ( frvbf
, dtlbi
) },
28692 { FRVBF_INSN_ICPL
, SEM_FN_NAME ( frvbf
, icpl
) },
28693 { FRVBF_INSN_DCPL
, SEM_FN_NAME ( frvbf
, dcpl
) },
28694 { FRVBF_INSN_ICUL
, SEM_FN_NAME ( frvbf
, icul
) },
28695 { FRVBF_INSN_DCUL
, SEM_FN_NAME ( frvbf
, dcul
) },
28696 { FRVBF_INSN_BAR
, SEM_FN_NAME ( frvbf
, bar
) },
28697 { FRVBF_INSN_MEMBAR
, SEM_FN_NAME ( frvbf
, membar
) },
28698 { FRVBF_INSN_LRAI
, SEM_FN_NAME ( frvbf
, lrai
) },
28699 { FRVBF_INSN_LRAD
, SEM_FN_NAME ( frvbf
, lrad
) },
28700 { FRVBF_INSN_TLBPR
, SEM_FN_NAME ( frvbf
, tlbpr
) },
28701 { FRVBF_INSN_COP1
, SEM_FN_NAME ( frvbf
, cop1
) },
28702 { FRVBF_INSN_COP2
, SEM_FN_NAME ( frvbf
, cop2
) },
28703 { FRVBF_INSN_CLRGR
, SEM_FN_NAME ( frvbf
, clrgr
) },
28704 { FRVBF_INSN_CLRFR
, SEM_FN_NAME ( frvbf
, clrfr
) },
28705 { FRVBF_INSN_CLRGA
, SEM_FN_NAME ( frvbf
, clrga
) },
28706 { FRVBF_INSN_CLRFA
, SEM_FN_NAME ( frvbf
, clrfa
) },
28707 { FRVBF_INSN_COMMITGR
, SEM_FN_NAME ( frvbf
, commitgr
) },
28708 { FRVBF_INSN_COMMITFR
, SEM_FN_NAME ( frvbf
, commitfr
) },
28709 { FRVBF_INSN_COMMITGA
, SEM_FN_NAME ( frvbf
, commitga
) },
28710 { FRVBF_INSN_COMMITFA
, SEM_FN_NAME ( frvbf
, commitfa
) },
28711 { FRVBF_INSN_FITOS
, SEM_FN_NAME ( frvbf
, fitos
) },
28712 { FRVBF_INSN_FSTOI
, SEM_FN_NAME ( frvbf
, fstoi
) },
28713 { FRVBF_INSN_FITOD
, SEM_FN_NAME ( frvbf
, fitod
) },
28714 { FRVBF_INSN_FDTOI
, SEM_FN_NAME ( frvbf
, fdtoi
) },
28715 { FRVBF_INSN_FDITOS
, SEM_FN_NAME ( frvbf
, fditos
) },
28716 { FRVBF_INSN_FDSTOI
, SEM_FN_NAME ( frvbf
, fdstoi
) },
28717 { FRVBF_INSN_NFDITOS
, SEM_FN_NAME ( frvbf
, nfditos
) },
28718 { FRVBF_INSN_NFDSTOI
, SEM_FN_NAME ( frvbf
, nfdstoi
) },
28719 { FRVBF_INSN_CFITOS
, SEM_FN_NAME ( frvbf
, cfitos
) },
28720 { FRVBF_INSN_CFSTOI
, SEM_FN_NAME ( frvbf
, cfstoi
) },
28721 { FRVBF_INSN_NFITOS
, SEM_FN_NAME ( frvbf
, nfitos
) },
28722 { FRVBF_INSN_NFSTOI
, SEM_FN_NAME ( frvbf
, nfstoi
) },
28723 { FRVBF_INSN_FMOVS
, SEM_FN_NAME ( frvbf
, fmovs
) },
28724 { FRVBF_INSN_FMOVD
, SEM_FN_NAME ( frvbf
, fmovd
) },
28725 { FRVBF_INSN_FDMOVS
, SEM_FN_NAME ( frvbf
, fdmovs
) },
28726 { FRVBF_INSN_CFMOVS
, SEM_FN_NAME ( frvbf
, cfmovs
) },
28727 { FRVBF_INSN_FNEGS
, SEM_FN_NAME ( frvbf
, fnegs
) },
28728 { FRVBF_INSN_FNEGD
, SEM_FN_NAME ( frvbf
, fnegd
) },
28729 { FRVBF_INSN_FDNEGS
, SEM_FN_NAME ( frvbf
, fdnegs
) },
28730 { FRVBF_INSN_CFNEGS
, SEM_FN_NAME ( frvbf
, cfnegs
) },
28731 { FRVBF_INSN_FABSS
, SEM_FN_NAME ( frvbf
, fabss
) },
28732 { FRVBF_INSN_FABSD
, SEM_FN_NAME ( frvbf
, fabsd
) },
28733 { FRVBF_INSN_FDABSS
, SEM_FN_NAME ( frvbf
, fdabss
) },
28734 { FRVBF_INSN_CFABSS
, SEM_FN_NAME ( frvbf
, cfabss
) },
28735 { FRVBF_INSN_FSQRTS
, SEM_FN_NAME ( frvbf
, fsqrts
) },
28736 { FRVBF_INSN_FDSQRTS
, SEM_FN_NAME ( frvbf
, fdsqrts
) },
28737 { FRVBF_INSN_NFDSQRTS
, SEM_FN_NAME ( frvbf
, nfdsqrts
) },
28738 { FRVBF_INSN_FSQRTD
, SEM_FN_NAME ( frvbf
, fsqrtd
) },
28739 { FRVBF_INSN_CFSQRTS
, SEM_FN_NAME ( frvbf
, cfsqrts
) },
28740 { FRVBF_INSN_NFSQRTS
, SEM_FN_NAME ( frvbf
, nfsqrts
) },
28741 { FRVBF_INSN_FADDS
, SEM_FN_NAME ( frvbf
, fadds
) },
28742 { FRVBF_INSN_FSUBS
, SEM_FN_NAME ( frvbf
, fsubs
) },
28743 { FRVBF_INSN_FMULS
, SEM_FN_NAME ( frvbf
, fmuls
) },
28744 { FRVBF_INSN_FDIVS
, SEM_FN_NAME ( frvbf
, fdivs
) },
28745 { FRVBF_INSN_FADDD
, SEM_FN_NAME ( frvbf
, faddd
) },
28746 { FRVBF_INSN_FSUBD
, SEM_FN_NAME ( frvbf
, fsubd
) },
28747 { FRVBF_INSN_FMULD
, SEM_FN_NAME ( frvbf
, fmuld
) },
28748 { FRVBF_INSN_FDIVD
, SEM_FN_NAME ( frvbf
, fdivd
) },
28749 { FRVBF_INSN_CFADDS
, SEM_FN_NAME ( frvbf
, cfadds
) },
28750 { FRVBF_INSN_CFSUBS
, SEM_FN_NAME ( frvbf
, cfsubs
) },
28751 { FRVBF_INSN_CFMULS
, SEM_FN_NAME ( frvbf
, cfmuls
) },
28752 { FRVBF_INSN_CFDIVS
, SEM_FN_NAME ( frvbf
, cfdivs
) },
28753 { FRVBF_INSN_NFADDS
, SEM_FN_NAME ( frvbf
, nfadds
) },
28754 { FRVBF_INSN_NFSUBS
, SEM_FN_NAME ( frvbf
, nfsubs
) },
28755 { FRVBF_INSN_NFMULS
, SEM_FN_NAME ( frvbf
, nfmuls
) },
28756 { FRVBF_INSN_NFDIVS
, SEM_FN_NAME ( frvbf
, nfdivs
) },
28757 { FRVBF_INSN_FCMPS
, SEM_FN_NAME ( frvbf
, fcmps
) },
28758 { FRVBF_INSN_FCMPD
, SEM_FN_NAME ( frvbf
, fcmpd
) },
28759 { FRVBF_INSN_CFCMPS
, SEM_FN_NAME ( frvbf
, cfcmps
) },
28760 { FRVBF_INSN_FDCMPS
, SEM_FN_NAME ( frvbf
, fdcmps
) },
28761 { FRVBF_INSN_FMADDS
, SEM_FN_NAME ( frvbf
, fmadds
) },
28762 { FRVBF_INSN_FMSUBS
, SEM_FN_NAME ( frvbf
, fmsubs
) },
28763 { FRVBF_INSN_FMADDD
, SEM_FN_NAME ( frvbf
, fmaddd
) },
28764 { FRVBF_INSN_FMSUBD
, SEM_FN_NAME ( frvbf
, fmsubd
) },
28765 { FRVBF_INSN_FDMADDS
, SEM_FN_NAME ( frvbf
, fdmadds
) },
28766 { FRVBF_INSN_NFDMADDS
, SEM_FN_NAME ( frvbf
, nfdmadds
) },
28767 { FRVBF_INSN_CFMADDS
, SEM_FN_NAME ( frvbf
, cfmadds
) },
28768 { FRVBF_INSN_CFMSUBS
, SEM_FN_NAME ( frvbf
, cfmsubs
) },
28769 { FRVBF_INSN_NFMADDS
, SEM_FN_NAME ( frvbf
, nfmadds
) },
28770 { FRVBF_INSN_NFMSUBS
, SEM_FN_NAME ( frvbf
, nfmsubs
) },
28771 { FRVBF_INSN_FMAS
, SEM_FN_NAME ( frvbf
, fmas
) },
28772 { FRVBF_INSN_FMSS
, SEM_FN_NAME ( frvbf
, fmss
) },
28773 { FRVBF_INSN_FDMAS
, SEM_FN_NAME ( frvbf
, fdmas
) },
28774 { FRVBF_INSN_FDMSS
, SEM_FN_NAME ( frvbf
, fdmss
) },
28775 { FRVBF_INSN_NFDMAS
, SEM_FN_NAME ( frvbf
, nfdmas
) },
28776 { FRVBF_INSN_NFDMSS
, SEM_FN_NAME ( frvbf
, nfdmss
) },
28777 { FRVBF_INSN_CFMAS
, SEM_FN_NAME ( frvbf
, cfmas
) },
28778 { FRVBF_INSN_CFMSS
, SEM_FN_NAME ( frvbf
, cfmss
) },
28779 { FRVBF_INSN_FMAD
, SEM_FN_NAME ( frvbf
, fmad
) },
28780 { FRVBF_INSN_FMSD
, SEM_FN_NAME ( frvbf
, fmsd
) },
28781 { FRVBF_INSN_NFMAS
, SEM_FN_NAME ( frvbf
, nfmas
) },
28782 { FRVBF_INSN_NFMSS
, SEM_FN_NAME ( frvbf
, nfmss
) },
28783 { FRVBF_INSN_FDADDS
, SEM_FN_NAME ( frvbf
, fdadds
) },
28784 { FRVBF_INSN_FDSUBS
, SEM_FN_NAME ( frvbf
, fdsubs
) },
28785 { FRVBF_INSN_FDMULS
, SEM_FN_NAME ( frvbf
, fdmuls
) },
28786 { FRVBF_INSN_FDDIVS
, SEM_FN_NAME ( frvbf
, fddivs
) },
28787 { FRVBF_INSN_FDSADS
, SEM_FN_NAME ( frvbf
, fdsads
) },
28788 { FRVBF_INSN_FDMULCS
, SEM_FN_NAME ( frvbf
, fdmulcs
) },
28789 { FRVBF_INSN_NFDMULCS
, SEM_FN_NAME ( frvbf
, nfdmulcs
) },
28790 { FRVBF_INSN_NFDADDS
, SEM_FN_NAME ( frvbf
, nfdadds
) },
28791 { FRVBF_INSN_NFDSUBS
, SEM_FN_NAME ( frvbf
, nfdsubs
) },
28792 { FRVBF_INSN_NFDMULS
, SEM_FN_NAME ( frvbf
, nfdmuls
) },
28793 { FRVBF_INSN_NFDDIVS
, SEM_FN_NAME ( frvbf
, nfddivs
) },
28794 { FRVBF_INSN_NFDSADS
, SEM_FN_NAME ( frvbf
, nfdsads
) },
28795 { FRVBF_INSN_NFDCMPS
, SEM_FN_NAME ( frvbf
, nfdcmps
) },
28796 { FRVBF_INSN_MHSETLOS
, SEM_FN_NAME ( frvbf
, mhsetlos
) },
28797 { FRVBF_INSN_MHSETHIS
, SEM_FN_NAME ( frvbf
, mhsethis
) },
28798 { FRVBF_INSN_MHDSETS
, SEM_FN_NAME ( frvbf
, mhdsets
) },
28799 { FRVBF_INSN_MHSETLOH
, SEM_FN_NAME ( frvbf
, mhsetloh
) },
28800 { FRVBF_INSN_MHSETHIH
, SEM_FN_NAME ( frvbf
, mhsethih
) },
28801 { FRVBF_INSN_MHDSETH
, SEM_FN_NAME ( frvbf
, mhdseth
) },
28802 { FRVBF_INSN_MAND
, SEM_FN_NAME ( frvbf
, mand
) },
28803 { FRVBF_INSN_MOR
, SEM_FN_NAME ( frvbf
, mor
) },
28804 { FRVBF_INSN_MXOR
, SEM_FN_NAME ( frvbf
, mxor
) },
28805 { FRVBF_INSN_CMAND
, SEM_FN_NAME ( frvbf
, cmand
) },
28806 { FRVBF_INSN_CMOR
, SEM_FN_NAME ( frvbf
, cmor
) },
28807 { FRVBF_INSN_CMXOR
, SEM_FN_NAME ( frvbf
, cmxor
) },
28808 { FRVBF_INSN_MNOT
, SEM_FN_NAME ( frvbf
, mnot
) },
28809 { FRVBF_INSN_CMNOT
, SEM_FN_NAME ( frvbf
, cmnot
) },
28810 { FRVBF_INSN_MROTLI
, SEM_FN_NAME ( frvbf
, mrotli
) },
28811 { FRVBF_INSN_MROTRI
, SEM_FN_NAME ( frvbf
, mrotri
) },
28812 { FRVBF_INSN_MWCUT
, SEM_FN_NAME ( frvbf
, mwcut
) },
28813 { FRVBF_INSN_MWCUTI
, SEM_FN_NAME ( frvbf
, mwcuti
) },
28814 { FRVBF_INSN_MCUT
, SEM_FN_NAME ( frvbf
, mcut
) },
28815 { FRVBF_INSN_MCUTI
, SEM_FN_NAME ( frvbf
, mcuti
) },
28816 { FRVBF_INSN_MCUTSS
, SEM_FN_NAME ( frvbf
, mcutss
) },
28817 { FRVBF_INSN_MCUTSSI
, SEM_FN_NAME ( frvbf
, mcutssi
) },
28818 { FRVBF_INSN_MDCUTSSI
, SEM_FN_NAME ( frvbf
, mdcutssi
) },
28819 { FRVBF_INSN_MAVEH
, SEM_FN_NAME ( frvbf
, maveh
) },
28820 { FRVBF_INSN_MSLLHI
, SEM_FN_NAME ( frvbf
, msllhi
) },
28821 { FRVBF_INSN_MSRLHI
, SEM_FN_NAME ( frvbf
, msrlhi
) },
28822 { FRVBF_INSN_MSRAHI
, SEM_FN_NAME ( frvbf
, msrahi
) },
28823 { FRVBF_INSN_MDROTLI
, SEM_FN_NAME ( frvbf
, mdrotli
) },
28824 { FRVBF_INSN_MCPLHI
, SEM_FN_NAME ( frvbf
, mcplhi
) },
28825 { FRVBF_INSN_MCPLI
, SEM_FN_NAME ( frvbf
, mcpli
) },
28826 { FRVBF_INSN_MSATHS
, SEM_FN_NAME ( frvbf
, msaths
) },
28827 { FRVBF_INSN_MQSATHS
, SEM_FN_NAME ( frvbf
, mqsaths
) },
28828 { FRVBF_INSN_MSATHU
, SEM_FN_NAME ( frvbf
, msathu
) },
28829 { FRVBF_INSN_MCMPSH
, SEM_FN_NAME ( frvbf
, mcmpsh
) },
28830 { FRVBF_INSN_MCMPUH
, SEM_FN_NAME ( frvbf
, mcmpuh
) },
28831 { FRVBF_INSN_MABSHS
, SEM_FN_NAME ( frvbf
, mabshs
) },
28832 { FRVBF_INSN_MADDHSS
, SEM_FN_NAME ( frvbf
, maddhss
) },
28833 { FRVBF_INSN_MADDHUS
, SEM_FN_NAME ( frvbf
, maddhus
) },
28834 { FRVBF_INSN_MSUBHSS
, SEM_FN_NAME ( frvbf
, msubhss
) },
28835 { FRVBF_INSN_MSUBHUS
, SEM_FN_NAME ( frvbf
, msubhus
) },
28836 { FRVBF_INSN_CMADDHSS
, SEM_FN_NAME ( frvbf
, cmaddhss
) },
28837 { FRVBF_INSN_CMADDHUS
, SEM_FN_NAME ( frvbf
, cmaddhus
) },
28838 { FRVBF_INSN_CMSUBHSS
, SEM_FN_NAME ( frvbf
, cmsubhss
) },
28839 { FRVBF_INSN_CMSUBHUS
, SEM_FN_NAME ( frvbf
, cmsubhus
) },
28840 { FRVBF_INSN_MQADDHSS
, SEM_FN_NAME ( frvbf
, mqaddhss
) },
28841 { FRVBF_INSN_MQADDHUS
, SEM_FN_NAME ( frvbf
, mqaddhus
) },
28842 { FRVBF_INSN_MQSUBHSS
, SEM_FN_NAME ( frvbf
, mqsubhss
) },
28843 { FRVBF_INSN_MQSUBHUS
, SEM_FN_NAME ( frvbf
, mqsubhus
) },
28844 { FRVBF_INSN_CMQADDHSS
, SEM_FN_NAME ( frvbf
, cmqaddhss
) },
28845 { FRVBF_INSN_CMQADDHUS
, SEM_FN_NAME ( frvbf
, cmqaddhus
) },
28846 { FRVBF_INSN_CMQSUBHSS
, SEM_FN_NAME ( frvbf
, cmqsubhss
) },
28847 { FRVBF_INSN_CMQSUBHUS
, SEM_FN_NAME ( frvbf
, cmqsubhus
) },
28848 { FRVBF_INSN_MQLCLRHS
, SEM_FN_NAME ( frvbf
, mqlclrhs
) },
28849 { FRVBF_INSN_MQLMTHS
, SEM_FN_NAME ( frvbf
, mqlmths
) },
28850 { FRVBF_INSN_MQSLLHI
, SEM_FN_NAME ( frvbf
, mqsllhi
) },
28851 { FRVBF_INSN_MQSRAHI
, SEM_FN_NAME ( frvbf
, mqsrahi
) },
28852 { FRVBF_INSN_MADDACCS
, SEM_FN_NAME ( frvbf
, maddaccs
) },
28853 { FRVBF_INSN_MSUBACCS
, SEM_FN_NAME ( frvbf
, msubaccs
) },
28854 { FRVBF_INSN_MDADDACCS
, SEM_FN_NAME ( frvbf
, mdaddaccs
) },
28855 { FRVBF_INSN_MDSUBACCS
, SEM_FN_NAME ( frvbf
, mdsubaccs
) },
28856 { FRVBF_INSN_MASACCS
, SEM_FN_NAME ( frvbf
, masaccs
) },
28857 { FRVBF_INSN_MDASACCS
, SEM_FN_NAME ( frvbf
, mdasaccs
) },
28858 { FRVBF_INSN_MMULHS
, SEM_FN_NAME ( frvbf
, mmulhs
) },
28859 { FRVBF_INSN_MMULHU
, SEM_FN_NAME ( frvbf
, mmulhu
) },
28860 { FRVBF_INSN_MMULXHS
, SEM_FN_NAME ( frvbf
, mmulxhs
) },
28861 { FRVBF_INSN_MMULXHU
, SEM_FN_NAME ( frvbf
, mmulxhu
) },
28862 { FRVBF_INSN_CMMULHS
, SEM_FN_NAME ( frvbf
, cmmulhs
) },
28863 { FRVBF_INSN_CMMULHU
, SEM_FN_NAME ( frvbf
, cmmulhu
) },
28864 { FRVBF_INSN_MQMULHS
, SEM_FN_NAME ( frvbf
, mqmulhs
) },
28865 { FRVBF_INSN_MQMULHU
, SEM_FN_NAME ( frvbf
, mqmulhu
) },
28866 { FRVBF_INSN_MQMULXHS
, SEM_FN_NAME ( frvbf
, mqmulxhs
) },
28867 { FRVBF_INSN_MQMULXHU
, SEM_FN_NAME ( frvbf
, mqmulxhu
) },
28868 { FRVBF_INSN_CMQMULHS
, SEM_FN_NAME ( frvbf
, cmqmulhs
) },
28869 { FRVBF_INSN_CMQMULHU
, SEM_FN_NAME ( frvbf
, cmqmulhu
) },
28870 { FRVBF_INSN_MMACHS
, SEM_FN_NAME ( frvbf
, mmachs
) },
28871 { FRVBF_INSN_MMACHU
, SEM_FN_NAME ( frvbf
, mmachu
) },
28872 { FRVBF_INSN_MMRDHS
, SEM_FN_NAME ( frvbf
, mmrdhs
) },
28873 { FRVBF_INSN_MMRDHU
, SEM_FN_NAME ( frvbf
, mmrdhu
) },
28874 { FRVBF_INSN_CMMACHS
, SEM_FN_NAME ( frvbf
, cmmachs
) },
28875 { FRVBF_INSN_CMMACHU
, SEM_FN_NAME ( frvbf
, cmmachu
) },
28876 { FRVBF_INSN_MQMACHS
, SEM_FN_NAME ( frvbf
, mqmachs
) },
28877 { FRVBF_INSN_MQMACHU
, SEM_FN_NAME ( frvbf
, mqmachu
) },
28878 { FRVBF_INSN_CMQMACHS
, SEM_FN_NAME ( frvbf
, cmqmachs
) },
28879 { FRVBF_INSN_CMQMACHU
, SEM_FN_NAME ( frvbf
, cmqmachu
) },
28880 { FRVBF_INSN_MQXMACHS
, SEM_FN_NAME ( frvbf
, mqxmachs
) },
28881 { FRVBF_INSN_MQXMACXHS
, SEM_FN_NAME ( frvbf
, mqxmacxhs
) },
28882 { FRVBF_INSN_MQMACXHS
, SEM_FN_NAME ( frvbf
, mqmacxhs
) },
28883 { FRVBF_INSN_MCPXRS
, SEM_FN_NAME ( frvbf
, mcpxrs
) },
28884 { FRVBF_INSN_MCPXRU
, SEM_FN_NAME ( frvbf
, mcpxru
) },
28885 { FRVBF_INSN_MCPXIS
, SEM_FN_NAME ( frvbf
, mcpxis
) },
28886 { FRVBF_INSN_MCPXIU
, SEM_FN_NAME ( frvbf
, mcpxiu
) },
28887 { FRVBF_INSN_CMCPXRS
, SEM_FN_NAME ( frvbf
, cmcpxrs
) },
28888 { FRVBF_INSN_CMCPXRU
, SEM_FN_NAME ( frvbf
, cmcpxru
) },
28889 { FRVBF_INSN_CMCPXIS
, SEM_FN_NAME ( frvbf
, cmcpxis
) },
28890 { FRVBF_INSN_CMCPXIU
, SEM_FN_NAME ( frvbf
, cmcpxiu
) },
28891 { FRVBF_INSN_MQCPXRS
, SEM_FN_NAME ( frvbf
, mqcpxrs
) },
28892 { FRVBF_INSN_MQCPXRU
, SEM_FN_NAME ( frvbf
, mqcpxru
) },
28893 { FRVBF_INSN_MQCPXIS
, SEM_FN_NAME ( frvbf
, mqcpxis
) },
28894 { FRVBF_INSN_MQCPXIU
, SEM_FN_NAME ( frvbf
, mqcpxiu
) },
28895 { FRVBF_INSN_MEXPDHW
, SEM_FN_NAME ( frvbf
, mexpdhw
) },
28896 { FRVBF_INSN_CMEXPDHW
, SEM_FN_NAME ( frvbf
, cmexpdhw
) },
28897 { FRVBF_INSN_MEXPDHD
, SEM_FN_NAME ( frvbf
, mexpdhd
) },
28898 { FRVBF_INSN_CMEXPDHD
, SEM_FN_NAME ( frvbf
, cmexpdhd
) },
28899 { FRVBF_INSN_MPACKH
, SEM_FN_NAME ( frvbf
, mpackh
) },
28900 { FRVBF_INSN_MDPACKH
, SEM_FN_NAME ( frvbf
, mdpackh
) },
28901 { FRVBF_INSN_MUNPACKH
, SEM_FN_NAME ( frvbf
, munpackh
) },
28902 { FRVBF_INSN_MDUNPACKH
, SEM_FN_NAME ( frvbf
, mdunpackh
) },
28903 { FRVBF_INSN_MBTOH
, SEM_FN_NAME ( frvbf
, mbtoh
) },
28904 { FRVBF_INSN_CMBTOH
, SEM_FN_NAME ( frvbf
, cmbtoh
) },
28905 { FRVBF_INSN_MHTOB
, SEM_FN_NAME ( frvbf
, mhtob
) },
28906 { FRVBF_INSN_CMHTOB
, SEM_FN_NAME ( frvbf
, cmhtob
) },
28907 { FRVBF_INSN_MBTOHE
, SEM_FN_NAME ( frvbf
, mbtohe
) },
28908 { FRVBF_INSN_CMBTOHE
, SEM_FN_NAME ( frvbf
, cmbtohe
) },
28909 { FRVBF_INSN_MNOP
, SEM_FN_NAME ( frvbf
, mnop
) },
28910 { FRVBF_INSN_MCLRACC_0
, SEM_FN_NAME ( frvbf
, mclracc_0
) },
28911 { FRVBF_INSN_MCLRACC_1
, SEM_FN_NAME ( frvbf
, mclracc_1
) },
28912 { FRVBF_INSN_MRDACC
, SEM_FN_NAME ( frvbf
, mrdacc
) },
28913 { FRVBF_INSN_MRDACCG
, SEM_FN_NAME ( frvbf
, mrdaccg
) },
28914 { FRVBF_INSN_MWTACC
, SEM_FN_NAME ( frvbf
, mwtacc
) },
28915 { FRVBF_INSN_MWTACCG
, SEM_FN_NAME ( frvbf
, mwtaccg
) },
28916 { FRVBF_INSN_MCOP1
, SEM_FN_NAME ( frvbf
, mcop1
) },
28917 { FRVBF_INSN_MCOP2
, SEM_FN_NAME ( frvbf
, mcop2
) },
28918 { FRVBF_INSN_FNOP
, SEM_FN_NAME ( frvbf
, fnop
) },
28922 /* Add the semantic fns to IDESC_TABLE. */
28925 SEM_FN_NAME ( frvbf
, init_idesc_table
) ( SIM_CPU
* current_cpu
)
28927 IDESC
* idesc_table
= CPU_IDESC ( current_cpu
);
28928 const struct sem_fn_desc
* sf
;
28929 int mach_num
= MACH_NUM ( CPU_MACH ( current_cpu
));
28931 for ( sf
= & sem_fns
[ 0 ]; sf
-> fn
!= 0 ; ++ sf
)
28933 const CGEN_INSN
* insn
= idesc_table
[ sf
-> index
]. idata
;
28934 int valid_p
= ( CGEN_INSN_VIRTUAL_P ( insn
)
28935 || CGEN_INSN_MACH_HAS_P ( insn
, mach_num
));
28938 idesc_table
[ sf
-> index
]. sem_fast
= sf
-> fn
;
28940 idesc_table
[ sf
-> index
]. sem_fast
= SEM_FN_NAME ( frvbf
, x_invalid
);
28943 idesc_table
[ sf
-> index
]. sem_full
= sf
-> fn
;
28945 idesc_table
[ sf
-> index
]. sem_full
= SEM_FN_NAME ( frvbf
, x_invalid
);