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
);
This page took 0.76069 seconds and 4 git commands to generate.