1 /* Simulator instruction semantics for frvbf.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996-2010 Free Software Foundation, Inc.
7 This file is part of the GNU simulators.
9 This file is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 3, or (at your option)
14 It is distributed in the hope that it will be useful, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17 License for more details.
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
25 #define WANT_CPU frvbf
26 #define WANT_CPU_FRVBF
33 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
35 /* This is used so that we can compile two copies of the semantic code,
36 one with full feature support and one without that runs fast(er).
37 FAST_P, when desired, is defined on the command line, -DFAST_P=1. */
39 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_semf_,fn)
41 #define TRACE_RESULT(cpu, abuf, name, type, val)
43 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_sem_,fn)
46 /* x-invalid: --invalid-- */
49 SEM_FN_NAME (frvbf
,x_invalid
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
51 #define FLD(f) abuf->fields.sfmt_empty.f
52 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
53 int UNUSED written
= 0;
54 IADDR UNUSED pc
= abuf
->addr
;
55 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
58 /* Update the recorded pc in the cpu state struct.
59 Only necessary for WITH_SCACHE case, but to avoid the
60 conditional compilation .... */
62 /* Virtual insns have zero size. Overwrite vpc with address of next insn
63 using the default-insn-bitsize spec. When executing insns in parallel
64 we may want to queue the fault and continue execution. */
65 vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
66 vpc
= sim_engine_invalid_insn (current_cpu
, pc
, vpc
);
73 /* x-after: --after-- */
76 SEM_FN_NAME (frvbf
,x_after
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
78 #define FLD(f) abuf->fields.sfmt_empty.f
79 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
80 int UNUSED written
= 0;
81 IADDR UNUSED pc
= abuf
->addr
;
82 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
85 #if WITH_SCACHE_PBB_FRVBF
86 frvbf_pbb_after (current_cpu
, sem_arg
);
94 /* x-before: --before-- */
97 SEM_FN_NAME (frvbf
,x_before
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
99 #define FLD(f) abuf->fields.sfmt_empty.f
100 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
101 int UNUSED written
= 0;
102 IADDR UNUSED pc
= abuf
->addr
;
103 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
106 #if WITH_SCACHE_PBB_FRVBF
107 frvbf_pbb_before (current_cpu
, sem_arg
);
115 /* x-cti-chain: --cti-chain-- */
118 SEM_FN_NAME (frvbf
,x_cti_chain
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
120 #define FLD(f) abuf->fields.sfmt_empty.f
121 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
122 int UNUSED written
= 0;
123 IADDR UNUSED pc
= abuf
->addr
;
124 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
127 #if WITH_SCACHE_PBB_FRVBF
129 vpc
= frvbf_pbb_cti_chain (current_cpu
, sem_arg
,
130 pbb_br_type
, pbb_br_npc
);
133 /* FIXME: Allow provision of explicit ifmt spec in insn spec. */
134 vpc
= frvbf_pbb_cti_chain (current_cpu
, sem_arg
,
135 CPU_PBB_BR_TYPE (current_cpu
),
136 CPU_PBB_BR_NPC (current_cpu
));
145 /* x-chain: --chain-- */
148 SEM_FN_NAME (frvbf
,x_chain
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
150 #define FLD(f) abuf->fields.sfmt_empty.f
151 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
152 int UNUSED written
= 0;
153 IADDR UNUSED pc
= abuf
->addr
;
154 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
157 #if WITH_SCACHE_PBB_FRVBF
158 vpc
= frvbf_pbb_chain (current_cpu
, sem_arg
);
169 /* x-begin: --begin-- */
172 SEM_FN_NAME (frvbf
,x_begin
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
174 #define FLD(f) abuf->fields.sfmt_empty.f
175 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
176 int UNUSED written
= 0;
177 IADDR UNUSED pc
= abuf
->addr
;
178 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
181 #if WITH_SCACHE_PBB_FRVBF
182 #if defined DEFINE_SWITCH || defined FAST_P
183 /* In the switch case FAST_P is a constant, allowing several optimizations
184 in any called inline functions. */
185 vpc
= frvbf_pbb_begin (current_cpu
, FAST_P
);
187 #if 0 /* cgen engine can't handle dynamic fast/full switching yet. */
188 vpc
= frvbf_pbb_begin (current_cpu
, STATE_RUN_FAST_P (CPU_STATE (current_cpu
)));
190 vpc
= frvbf_pbb_begin (current_cpu
, 0);
200 /* add: add$pack $GRi,$GRj,$GRk */
203 SEM_FN_NAME (frvbf
,add
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
205 #define FLD(f) abuf->fields.sfmt_addcc.f
206 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
207 int UNUSED written
= 0;
208 IADDR UNUSED pc
= abuf
->addr
;
209 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
212 SI opval
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
213 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
214 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
221 /* sub: sub$pack $GRi,$GRj,$GRk */
224 SEM_FN_NAME (frvbf
,sub
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
226 #define FLD(f) abuf->fields.sfmt_addcc.f
227 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
228 int UNUSED written
= 0;
229 IADDR UNUSED pc
= abuf
->addr
;
230 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
233 SI opval
= SUBSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
234 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
235 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
242 /* and: and$pack $GRi,$GRj,$GRk */
245 SEM_FN_NAME (frvbf
,and) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
247 #define FLD(f) abuf->fields.sfmt_addcc.f
248 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
249 int UNUSED written
= 0;
250 IADDR UNUSED pc
= abuf
->addr
;
251 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
254 SI opval
= ANDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
255 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
256 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
263 /* or: or$pack $GRi,$GRj,$GRk */
266 SEM_FN_NAME (frvbf
,or) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
268 #define FLD(f) abuf->fields.sfmt_addcc.f
269 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
270 int UNUSED written
= 0;
271 IADDR UNUSED pc
= abuf
->addr
;
272 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
275 SI opval
= ORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
276 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
277 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
284 /* xor: xor$pack $GRi,$GRj,$GRk */
287 SEM_FN_NAME (frvbf
,xor) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
289 #define FLD(f) abuf->fields.sfmt_addcc.f
290 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
291 int UNUSED written
= 0;
292 IADDR UNUSED pc
= abuf
->addr
;
293 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
296 SI opval
= XORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
297 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
298 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
305 /* not: not$pack $GRj,$GRk */
308 SEM_FN_NAME (frvbf
,not) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
310 #define FLD(f) abuf->fields.sfmt_scutss.f
311 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
312 int UNUSED written
= 0;
313 IADDR UNUSED pc
= abuf
->addr
;
314 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
317 SI opval
= INVSI (GET_H_GR (FLD (f_GRj
)));
318 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
319 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
326 /* sdiv: sdiv$pack $GRi,$GRj,$GRk */
329 SEM_FN_NAME (frvbf
,sdiv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
331 #define FLD(f) abuf->fields.sfmt_addcc.f
332 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
333 int UNUSED written
= 0;
334 IADDR UNUSED pc
= abuf
->addr
;
335 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
338 frvbf_signed_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_GRk
), 0);
346 /* nsdiv: nsdiv$pack $GRi,$GRj,$GRk */
349 SEM_FN_NAME (frvbf
,nsdiv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
351 #define FLD(f) abuf->fields.sfmt_addcc.f
352 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
353 int UNUSED written
= 0;
354 IADDR UNUSED pc
= abuf
->addr
;
355 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
358 frvbf_signed_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_GRk
), 1);
366 /* udiv: udiv$pack $GRi,$GRj,$GRk */
369 SEM_FN_NAME (frvbf
,udiv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
371 #define FLD(f) abuf->fields.sfmt_addcc.f
372 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
373 int UNUSED written
= 0;
374 IADDR UNUSED pc
= abuf
->addr
;
375 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
378 frvbf_unsigned_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_GRk
), 0);
386 /* nudiv: nudiv$pack $GRi,$GRj,$GRk */
389 SEM_FN_NAME (frvbf
,nudiv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
391 #define FLD(f) abuf->fields.sfmt_addcc.f
392 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
393 int UNUSED written
= 0;
394 IADDR UNUSED pc
= abuf
->addr
;
395 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
398 frvbf_unsigned_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_GRk
), 1);
406 /* smul: smul$pack $GRi,$GRj,$GRdoublek */
409 SEM_FN_NAME (frvbf
,smul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
411 #define FLD(f) abuf->fields.sfmt_smulcc.f
412 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
413 int UNUSED written
= 0;
414 IADDR UNUSED pc
= abuf
->addr
;
415 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
418 DI opval
= MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))));
419 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
420 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
427 /* umul: umul$pack $GRi,$GRj,$GRdoublek */
430 SEM_FN_NAME (frvbf
,umul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
432 #define FLD(f) abuf->fields.sfmt_smulcc.f
433 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
434 int UNUSED written
= 0;
435 IADDR UNUSED pc
= abuf
->addr
;
436 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
439 DI opval
= MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi
))), ZEXTSIDI (GET_H_GR (FLD (f_GRj
))));
440 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
441 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
448 /* smu: smu$pack $GRi,$GRj */
451 SEM_FN_NAME (frvbf
,smu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
453 #define FLD(f) abuf->fields.sfmt_smass.f
454 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
455 int UNUSED written
= 0;
456 IADDR UNUSED pc
= abuf
->addr
;
457 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
460 DI opval
= MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))));
461 sim_queue_fn_di_write (current_cpu
, frvbf_h_iacc0_set
, ((UINT
) 0), opval
);
462 TRACE_RESULT (current_cpu
, abuf
, "iacc0", 'D', opval
);
469 /* smass: smass$pack $GRi,$GRj */
472 SEM_FN_NAME (frvbf
,smass
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
474 #define FLD(f) abuf->fields.sfmt_smass.f
475 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
476 int UNUSED written
= 0;
477 IADDR UNUSED pc
= abuf
->addr
;
478 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
481 DI opval
= (ANDIF (ANDIF (GTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
)))), 0), GTDI (GET_H_IACC0 (((UINT
) 0)), 0)), LTDI (SUBDI (MAKEDI (2147483647, 0xffffffff), MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))))), GET_H_IACC0 (((UINT
) 0))))) ? (MAKEDI (2147483647, 0xffffffff)) : (ANDIF (ANDIF (LTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
)))), 0), LTDI (GET_H_IACC0 (((UINT
) 0)), 0)), GTDI (SUBDI (MAKEDI (0x80000000, 0), MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))))), GET_H_IACC0 (((UINT
) 0))))) ? (MAKEDI (0x80000000, 0)) : (ADDDI (GET_H_IACC0 (((UINT
) 0)), MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))))));
482 sim_queue_fn_di_write (current_cpu
, frvbf_h_iacc0_set
, ((UINT
) 0), opval
);
483 TRACE_RESULT (current_cpu
, abuf
, "iacc0", 'D', opval
);
490 /* smsss: smsss$pack $GRi,$GRj */
493 SEM_FN_NAME (frvbf
,smsss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
495 #define FLD(f) abuf->fields.sfmt_smass.f
496 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
497 int UNUSED written
= 0;
498 IADDR UNUSED pc
= abuf
->addr
;
499 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
502 DI opval
= (ANDIF (ANDIF (LTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
)))), 0), GTDI (GET_H_IACC0 (((UINT
) 0)), 0)), LTDI (ADDDI (MAKEDI (2147483647, 0xffffffff), MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))))), GET_H_IACC0 (((UINT
) 0))))) ? (MAKEDI (2147483647, 0xffffffff)) : (ANDIF (ANDIF (GTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
)))), 0), LTDI (GET_H_IACC0 (((UINT
) 0)), 0)), GTDI (ADDDI (MAKEDI (0x80000000, 0), MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))))), GET_H_IACC0 (((UINT
) 0))))) ? (MAKEDI (0x80000000, 0)) : (SUBDI (GET_H_IACC0 (((UINT
) 0)), MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))))));
503 sim_queue_fn_di_write (current_cpu
, frvbf_h_iacc0_set
, ((UINT
) 0), opval
);
504 TRACE_RESULT (current_cpu
, abuf
, "iacc0", 'D', opval
);
511 /* sll: sll$pack $GRi,$GRj,$GRk */
514 SEM_FN_NAME (frvbf
,sll
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
516 #define FLD(f) abuf->fields.sfmt_addcc.f
517 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
518 int UNUSED written
= 0;
519 IADDR UNUSED pc
= abuf
->addr
;
520 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
523 SI opval
= SLLSI (GET_H_GR (FLD (f_GRi
)), ANDSI (GET_H_GR (FLD (f_GRj
)), 31));
524 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
525 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
532 /* srl: srl$pack $GRi,$GRj,$GRk */
535 SEM_FN_NAME (frvbf
,srl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
537 #define FLD(f) abuf->fields.sfmt_addcc.f
538 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
539 int UNUSED written
= 0;
540 IADDR UNUSED pc
= abuf
->addr
;
541 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
544 SI opval
= SRLSI (GET_H_GR (FLD (f_GRi
)), ANDSI (GET_H_GR (FLD (f_GRj
)), 31));
545 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
546 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
553 /* sra: sra$pack $GRi,$GRj,$GRk */
556 SEM_FN_NAME (frvbf
,sra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
558 #define FLD(f) abuf->fields.sfmt_addcc.f
559 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
560 int UNUSED written
= 0;
561 IADDR UNUSED pc
= abuf
->addr
;
562 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
565 SI opval
= SRASI (GET_H_GR (FLD (f_GRi
)), ANDSI (GET_H_GR (FLD (f_GRj
)), 31));
566 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
567 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
574 /* slass: slass$pack $GRi,$GRj,$GRk */
577 SEM_FN_NAME (frvbf
,slass
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
579 #define FLD(f) abuf->fields.sfmt_addcc.f
580 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
581 int UNUSED written
= 0;
582 IADDR UNUSED pc
= abuf
->addr
;
583 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
586 SI opval
= frvbf_shift_left_arith_saturate (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
587 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
588 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
595 /* scutss: scutss$pack $GRj,$GRk */
598 SEM_FN_NAME (frvbf
,scutss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
600 #define FLD(f) abuf->fields.sfmt_scutss.f
601 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
602 int UNUSED written
= 0;
603 IADDR UNUSED pc
= abuf
->addr
;
604 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
607 SI opval
= frvbf_iacc_cut (current_cpu
, GET_H_IACC0 (((UINT
) 0)), GET_H_GR (FLD (f_GRj
)));
608 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
609 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
616 /* scan: scan$pack $GRi,$GRj,$GRk */
619 SEM_FN_NAME (frvbf
,scan
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
621 #define FLD(f) abuf->fields.sfmt_addcc.f
622 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
623 int UNUSED written
= 0;
624 IADDR UNUSED pc
= abuf
->addr
;
625 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
630 tmp_tmp1
= GET_H_GR (FLD (f_GRi
));
631 tmp_tmp2
= SRASI (GET_H_GR (FLD (f_GRj
)), 1);
633 SI opval
= frvbf_scan_result (current_cpu
, XORSI (tmp_tmp1
, tmp_tmp2
));
634 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
635 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
643 /* cadd: cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */
646 SEM_FN_NAME (frvbf
,cadd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
648 #define FLD(f) abuf->fields.sfmt_cswap.f
649 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
650 int UNUSED written
= 0;
651 IADDR UNUSED pc
= abuf
->addr
;
652 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
654 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
656 SI opval
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
657 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
659 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
663 abuf
->written
= written
;
668 /* csub: csub$pack $GRi,$GRj,$GRk,$CCi,$cond */
671 SEM_FN_NAME (frvbf
,csub
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
673 #define FLD(f) abuf->fields.sfmt_cswap.f
674 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
675 int UNUSED written
= 0;
676 IADDR UNUSED pc
= abuf
->addr
;
677 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
679 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
681 SI opval
= SUBSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
682 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
684 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
688 abuf
->written
= written
;
693 /* cand: cand$pack $GRi,$GRj,$GRk,$CCi,$cond */
696 SEM_FN_NAME (frvbf
,cand
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
698 #define FLD(f) abuf->fields.sfmt_cswap.f
699 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
700 int UNUSED written
= 0;
701 IADDR UNUSED pc
= abuf
->addr
;
702 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
704 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
706 SI opval
= ANDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
707 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
709 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
713 abuf
->written
= written
;
718 /* cor: cor$pack $GRi,$GRj,$GRk,$CCi,$cond */
721 SEM_FN_NAME (frvbf
,cor
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
723 #define FLD(f) abuf->fields.sfmt_cswap.f
724 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
725 int UNUSED written
= 0;
726 IADDR UNUSED pc
= abuf
->addr
;
727 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
729 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
731 SI opval
= ORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
732 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
734 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
738 abuf
->written
= written
;
743 /* cxor: cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */
746 SEM_FN_NAME (frvbf
,cxor
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
748 #define FLD(f) abuf->fields.sfmt_cswap.f
749 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
750 int UNUSED written
= 0;
751 IADDR UNUSED pc
= abuf
->addr
;
752 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
754 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
756 SI opval
= XORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
757 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
759 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
763 abuf
->written
= written
;
768 /* cnot: cnot$pack $GRj,$GRk,$CCi,$cond */
771 SEM_FN_NAME (frvbf
,cnot
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
773 #define FLD(f) abuf->fields.sfmt_cswap.f
774 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
775 int UNUSED written
= 0;
776 IADDR UNUSED pc
= abuf
->addr
;
777 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
779 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
781 SI opval
= INVSI (GET_H_GR (FLD (f_GRj
)));
782 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
784 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
788 abuf
->written
= written
;
793 /* csmul: csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
796 SEM_FN_NAME (frvbf
,csmul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
798 #define FLD(f) abuf->fields.sfmt_clddu.f
799 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
800 int UNUSED written
= 0;
801 IADDR UNUSED pc
= abuf
->addr
;
802 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
804 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
806 DI opval
= MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))));
807 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
809 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
813 abuf
->written
= written
;
818 /* csdiv: csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
821 SEM_FN_NAME (frvbf
,csdiv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
823 #define FLD(f) abuf->fields.sfmt_cswap.f
824 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
825 int UNUSED written
= 0;
826 IADDR UNUSED pc
= abuf
->addr
;
827 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
829 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
831 frvbf_signed_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_GRk
), 0);
836 abuf
->written
= written
;
841 /* cudiv: cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
844 SEM_FN_NAME (frvbf
,cudiv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
846 #define FLD(f) abuf->fields.sfmt_cswap.f
847 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
848 int UNUSED written
= 0;
849 IADDR UNUSED pc
= abuf
->addr
;
850 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
852 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
854 frvbf_unsigned_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_GRk
), 0);
859 abuf
->written
= written
;
864 /* csll: csll$pack $GRi,$GRj,$GRk,$CCi,$cond */
867 SEM_FN_NAME (frvbf
,csll
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
869 #define FLD(f) abuf->fields.sfmt_cswap.f
870 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
871 int UNUSED written
= 0;
872 IADDR UNUSED pc
= abuf
->addr
;
873 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
875 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
877 SI opval
= SLLSI (GET_H_GR (FLD (f_GRi
)), ANDSI (GET_H_GR (FLD (f_GRj
)), 31));
878 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
880 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
884 abuf
->written
= written
;
889 /* csrl: csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */
892 SEM_FN_NAME (frvbf
,csrl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
894 #define FLD(f) abuf->fields.sfmt_cswap.f
895 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
896 int UNUSED written
= 0;
897 IADDR UNUSED pc
= abuf
->addr
;
898 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
900 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
902 SI opval
= SRLSI (GET_H_GR (FLD (f_GRi
)), ANDSI (GET_H_GR (FLD (f_GRj
)), 31));
903 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
905 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
909 abuf
->written
= written
;
914 /* csra: csra$pack $GRi,$GRj,$GRk,$CCi,$cond */
917 SEM_FN_NAME (frvbf
,csra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
919 #define FLD(f) abuf->fields.sfmt_cswap.f
920 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
921 int UNUSED written
= 0;
922 IADDR UNUSED pc
= abuf
->addr
;
923 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
925 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
927 SI opval
= SRASI (GET_H_GR (FLD (f_GRi
)), ANDSI (GET_H_GR (FLD (f_GRj
)), 31));
928 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
930 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
934 abuf
->written
= written
;
939 /* cscan: cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */
942 SEM_FN_NAME (frvbf
,cscan
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
944 #define FLD(f) abuf->fields.sfmt_cswap.f
945 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
946 int UNUSED written
= 0;
947 IADDR UNUSED pc
= abuf
->addr
;
948 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
950 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
954 tmp_tmp1
= GET_H_GR (FLD (f_GRi
));
955 tmp_tmp2
= SRASI (GET_H_GR (FLD (f_GRj
)), 1);
957 SI opval
= frvbf_scan_result (current_cpu
, XORSI (tmp_tmp1
, tmp_tmp2
));
958 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
960 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
965 abuf
->written
= written
;
970 /* addcc: addcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
973 SEM_FN_NAME (frvbf
,addcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
975 #define FLD(f) abuf->fields.sfmt_addcc.f
976 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
977 int UNUSED written
= 0;
978 IADDR UNUSED pc
= abuf
->addr
;
979 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
985 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
986 tmp_tmp
= ADDOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
987 if (EQBI (tmp_tmp
, 0)) {
988 tmp_cc
= ANDQI (tmp_cc
, 13);
990 tmp_cc
= ORQI (tmp_cc
, 2);
992 tmp_tmp
= ADDCFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
993 if (EQBI (tmp_tmp
, 0)) {
994 tmp_cc
= ANDQI (tmp_cc
, 14);
996 tmp_cc
= ORQI (tmp_cc
, 1);
998 tmp_result
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
999 if (EQSI (tmp_result
, 0)) {
1000 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1002 if (LTSI (tmp_result
, 0)) {
1003 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1005 tmp_cc
= ANDQI (tmp_cc
, 3);
1009 SI opval
= tmp_result
;
1010 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1011 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1015 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1016 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1024 /* subcc: subcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1027 SEM_FN_NAME (frvbf
,subcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1029 #define FLD(f) abuf->fields.sfmt_addcc.f
1030 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1031 int UNUSED written
= 0;
1032 IADDR UNUSED pc
= abuf
->addr
;
1033 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1039 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
1040 tmp_tmp
= SUBOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
1041 if (EQBI (tmp_tmp
, 0)) {
1042 tmp_cc
= ANDQI (tmp_cc
, 13);
1044 tmp_cc
= ORQI (tmp_cc
, 2);
1046 tmp_tmp
= SUBCFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
1047 if (EQBI (tmp_tmp
, 0)) {
1048 tmp_cc
= ANDQI (tmp_cc
, 14);
1050 tmp_cc
= ORQI (tmp_cc
, 1);
1052 tmp_result
= SUBSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1053 if (EQSI (tmp_result
, 0)) {
1054 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1056 if (LTSI (tmp_result
, 0)) {
1057 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1059 tmp_cc
= ANDQI (tmp_cc
, 3);
1063 SI opval
= tmp_result
;
1064 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1065 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1069 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1070 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1078 /* andcc: andcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1081 SEM_FN_NAME (frvbf
,andcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1083 #define FLD(f) abuf->fields.sfmt_addcc.f
1084 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1085 int UNUSED written
= 0;
1086 IADDR UNUSED pc
= abuf
->addr
;
1087 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1091 tmp_tmp
= ANDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1094 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1095 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1097 if (EQSI (tmp_tmp
, 0)) {
1099 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 7), 4);
1100 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1101 written
|= (1 << 4);
1102 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1105 if (LTSI (tmp_tmp
, 0)) {
1107 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 11), 8);
1108 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1109 written
|= (1 << 4);
1110 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1114 UQI opval
= ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 3);
1115 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1116 written
|= (1 << 4);
1117 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1123 abuf
->written
= written
;
1128 /* orcc: orcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1131 SEM_FN_NAME (frvbf
,orcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1133 #define FLD(f) abuf->fields.sfmt_addcc.f
1134 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1135 int UNUSED written
= 0;
1136 IADDR UNUSED pc
= abuf
->addr
;
1137 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1141 tmp_tmp
= ORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1144 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1145 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1147 if (EQSI (tmp_tmp
, 0)) {
1149 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 7), 4);
1150 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1151 written
|= (1 << 4);
1152 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1155 if (LTSI (tmp_tmp
, 0)) {
1157 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 11), 8);
1158 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1159 written
|= (1 << 4);
1160 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1164 UQI opval
= ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 3);
1165 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1166 written
|= (1 << 4);
1167 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1173 abuf
->written
= written
;
1178 /* xorcc: xorcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1181 SEM_FN_NAME (frvbf
,xorcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1183 #define FLD(f) abuf->fields.sfmt_addcc.f
1184 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1185 int UNUSED written
= 0;
1186 IADDR UNUSED pc
= abuf
->addr
;
1187 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1191 tmp_tmp
= XORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1194 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1195 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1197 if (EQSI (tmp_tmp
, 0)) {
1199 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 7), 4);
1200 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1201 written
|= (1 << 4);
1202 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1205 if (LTSI (tmp_tmp
, 0)) {
1207 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 11), 8);
1208 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1209 written
|= (1 << 4);
1210 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1214 UQI opval
= ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 3);
1215 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1216 written
|= (1 << 4);
1217 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1223 abuf
->written
= written
;
1228 /* sllcc: sllcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1231 SEM_FN_NAME (frvbf
,sllcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1233 #define FLD(f) abuf->fields.sfmt_addcc.f
1234 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1235 int UNUSED written
= 0;
1236 IADDR UNUSED pc
= abuf
->addr
;
1237 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1243 tmp_shift
= ANDSI (GET_H_GR (FLD (f_GRj
)), 31);
1244 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
)]));
1245 tmp_tmp
= SLLSI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
1248 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1249 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1251 if (EQSI (tmp_tmp
, 0)) {
1252 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1254 if (LTSI (tmp_tmp
, 0)) {
1255 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1257 tmp_cc
= ANDQI (tmp_cc
, 3);
1262 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1263 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1271 /* srlcc: srlcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1274 SEM_FN_NAME (frvbf
,srlcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1276 #define FLD(f) abuf->fields.sfmt_addcc.f
1277 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1278 int UNUSED written
= 0;
1279 IADDR UNUSED pc
= abuf
->addr
;
1280 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1286 tmp_shift
= ANDSI (GET_H_GR (FLD (f_GRj
)), 31);
1287 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
)]));
1288 tmp_tmp
= SRLSI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
1291 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1292 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1294 if (EQSI (tmp_tmp
, 0)) {
1295 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1297 if (LTSI (tmp_tmp
, 0)) {
1298 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1300 tmp_cc
= ANDQI (tmp_cc
, 3);
1305 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1306 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1314 /* sracc: sracc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1317 SEM_FN_NAME (frvbf
,sracc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1319 #define FLD(f) abuf->fields.sfmt_addcc.f
1320 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1321 int UNUSED written
= 0;
1322 IADDR UNUSED pc
= abuf
->addr
;
1323 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1329 tmp_shift
= ANDSI (GET_H_GR (FLD (f_GRj
)), 31);
1330 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
)]));
1331 tmp_tmp
= SRASI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
1334 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1335 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1337 if (EQSI (tmp_tmp
, 0)) {
1338 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1340 if (LTSI (tmp_tmp
, 0)) {
1341 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1343 tmp_cc
= ANDQI (tmp_cc
, 3);
1348 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1349 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1357 /* smulcc: smulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1360 SEM_FN_NAME (frvbf
,smulcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1362 #define FLD(f) abuf->fields.sfmt_smulcc.f
1363 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1364 int UNUSED written
= 0;
1365 IADDR UNUSED pc
= abuf
->addr
;
1366 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1371 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
1372 tmp_tmp
= MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))));
1373 if (EQDI (SRLDI (tmp_tmp
, 63), 0)) {
1374 tmp_cc
= ANDQI (tmp_cc
, 7);
1376 tmp_cc
= ORQI (tmp_cc
, 8);
1378 if (EQBI (EQDI (tmp_tmp
, 0), 0)) {
1379 tmp_cc
= ANDQI (tmp_cc
, 11);
1381 tmp_cc
= ORQI (tmp_cc
, 4);
1385 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
1386 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
1390 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1391 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1399 /* umulcc: umulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1402 SEM_FN_NAME (frvbf
,umulcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1404 #define FLD(f) abuf->fields.sfmt_smulcc.f
1405 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1406 int UNUSED written
= 0;
1407 IADDR UNUSED pc
= abuf
->addr
;
1408 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1413 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
1414 tmp_tmp
= MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi
))), ZEXTSIDI (GET_H_GR (FLD (f_GRj
))));
1415 if (EQDI (SRLDI (tmp_tmp
, 63), 0)) {
1416 tmp_cc
= ANDQI (tmp_cc
, 7);
1418 tmp_cc
= ORQI (tmp_cc
, 8);
1420 if (EQBI (EQDI (tmp_tmp
, 0), 0)) {
1421 tmp_cc
= ANDQI (tmp_cc
, 11);
1423 tmp_cc
= ORQI (tmp_cc
, 4);
1427 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
1428 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
1432 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1433 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1441 /* caddcc: caddcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1444 SEM_FN_NAME (frvbf
,caddcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1446 #define FLD(f) abuf->fields.sfmt_caddcc.f
1447 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1448 int UNUSED written
= 0;
1449 IADDR UNUSED pc
= abuf
->addr
;
1450 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1452 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1457 tmp_cc
= CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]);
1458 tmp_tmp
= ADDOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
1459 if (EQBI (tmp_tmp
, 0)) {
1460 tmp_cc
= ANDQI (tmp_cc
, 13);
1462 tmp_cc
= ORQI (tmp_cc
, 2);
1464 tmp_tmp
= ADDCFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
1465 if (EQBI (tmp_tmp
, 0)) {
1466 tmp_cc
= ANDQI (tmp_cc
, 14);
1468 tmp_cc
= ORQI (tmp_cc
, 1);
1470 tmp_result
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1471 if (EQSI (tmp_result
, 0)) {
1472 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1474 if (LTSI (tmp_result
, 0)) {
1475 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1477 tmp_cc
= ANDQI (tmp_cc
, 3);
1481 SI opval
= tmp_result
;
1482 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1483 written
|= (1 << 6);
1484 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1488 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), opval
);
1489 written
|= (1 << 7);
1490 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1495 abuf
->written
= written
;
1500 /* csubcc: csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1503 SEM_FN_NAME (frvbf
,csubcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1505 #define FLD(f) abuf->fields.sfmt_caddcc.f
1506 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1507 int UNUSED written
= 0;
1508 IADDR UNUSED pc
= abuf
->addr
;
1509 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1511 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1516 tmp_cc
= CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]);
1517 tmp_tmp
= SUBOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
1518 if (EQBI (tmp_tmp
, 0)) {
1519 tmp_cc
= ANDQI (tmp_cc
, 13);
1521 tmp_cc
= ORQI (tmp_cc
, 2);
1523 tmp_tmp
= SUBCFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
1524 if (EQBI (tmp_tmp
, 0)) {
1525 tmp_cc
= ANDQI (tmp_cc
, 14);
1527 tmp_cc
= ORQI (tmp_cc
, 1);
1529 tmp_result
= SUBSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1530 if (EQSI (tmp_result
, 0)) {
1531 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1533 if (LTSI (tmp_result
, 0)) {
1534 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1536 tmp_cc
= ANDQI (tmp_cc
, 3);
1540 SI opval
= tmp_result
;
1541 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1542 written
|= (1 << 6);
1543 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1547 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), opval
);
1548 written
|= (1 << 7);
1549 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1554 abuf
->written
= written
;
1559 /* csmulcc: csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
1562 SEM_FN_NAME (frvbf
,csmulcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1564 #define FLD(f) abuf->fields.sfmt_csmulcc.f
1565 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1566 int UNUSED written
= 0;
1567 IADDR UNUSED pc
= abuf
->addr
;
1568 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1570 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1574 tmp_cc
= CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]);
1575 tmp_tmp
= MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))));
1576 if (EQDI (SRLDI (tmp_tmp
, 63), 0)) {
1577 tmp_cc
= ANDQI (tmp_cc
, 7);
1579 tmp_cc
= ORQI (tmp_cc
, 8);
1581 if (EQBI (EQDI (tmp_tmp
, 0), 0)) {
1582 tmp_cc
= ANDQI (tmp_cc
, 11);
1584 tmp_cc
= ORQI (tmp_cc
, 4);
1588 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
1589 written
|= (1 << 6);
1590 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
1594 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), opval
);
1595 written
|= (1 << 7);
1596 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1601 abuf
->written
= written
;
1606 /* candcc: candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1609 SEM_FN_NAME (frvbf
,candcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1611 #define FLD(f) abuf->fields.sfmt_caddcc.f
1612 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1613 int UNUSED written
= 0;
1614 IADDR UNUSED pc
= abuf
->addr
;
1615 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1617 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1620 tmp_tmp
= ANDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1623 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1624 written
|= (1 << 6);
1625 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1627 if (EQSI (tmp_tmp
, 0)) {
1629 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), 7), 4);
1630 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), opval
);
1631 written
|= (1 << 7);
1632 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1635 if (LTSI (tmp_tmp
, 0)) {
1637 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), 11), 8);
1638 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), opval
);
1639 written
|= (1 << 7);
1640 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1644 UQI opval
= ANDQI (CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), 3);
1645 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), opval
);
1646 written
|= (1 << 7);
1647 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1654 abuf
->written
= written
;
1659 /* corcc: corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1662 SEM_FN_NAME (frvbf
,corcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1664 #define FLD(f) abuf->fields.sfmt_caddcc.f
1665 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1666 int UNUSED written
= 0;
1667 IADDR UNUSED pc
= abuf
->addr
;
1668 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1670 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1673 tmp_tmp
= ORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1676 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1677 written
|= (1 << 6);
1678 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1680 if (EQSI (tmp_tmp
, 0)) {
1682 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), 7), 4);
1683 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), opval
);
1684 written
|= (1 << 7);
1685 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1688 if (LTSI (tmp_tmp
, 0)) {
1690 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), 11), 8);
1691 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), opval
);
1692 written
|= (1 << 7);
1693 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1697 UQI opval
= ANDQI (CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), 3);
1698 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), opval
);
1699 written
|= (1 << 7);
1700 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1707 abuf
->written
= written
;
1712 /* cxorcc: cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1715 SEM_FN_NAME (frvbf
,cxorcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1717 #define FLD(f) abuf->fields.sfmt_caddcc.f
1718 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1719 int UNUSED written
= 0;
1720 IADDR UNUSED pc
= abuf
->addr
;
1721 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1723 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1726 tmp_tmp
= XORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1729 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1730 written
|= (1 << 6);
1731 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1733 if (EQSI (tmp_tmp
, 0)) {
1735 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), 7), 4);
1736 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), opval
);
1737 written
|= (1 << 7);
1738 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1741 if (LTSI (tmp_tmp
, 0)) {
1743 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), 11), 8);
1744 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), opval
);
1745 written
|= (1 << 7);
1746 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1750 UQI opval
= ANDQI (CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), 3);
1751 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), opval
);
1752 written
|= (1 << 7);
1753 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1760 abuf
->written
= written
;
1765 /* csllcc: csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1768 SEM_FN_NAME (frvbf
,csllcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1770 #define FLD(f) abuf->fields.sfmt_caddcc.f
1771 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1772 int UNUSED written
= 0;
1773 IADDR UNUSED pc
= abuf
->addr
;
1774 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1776 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1781 tmp_shift
= ANDSI (GET_H_GR (FLD (f_GRj
)), 31);
1782 tmp_cc
= frvbf_set_icc_for_shift_left (current_cpu
, GET_H_GR (FLD (f_GRi
)), tmp_shift
, CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]));
1783 tmp_tmp
= SLLSI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
1786 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1787 written
|= (1 << 6);
1788 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1790 if (EQSI (tmp_tmp
, 0)) {
1791 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1793 if (LTSI (tmp_tmp
, 0)) {
1794 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1796 tmp_cc
= ANDQI (tmp_cc
, 3);
1801 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), opval
);
1802 written
|= (1 << 7);
1803 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1808 abuf
->written
= written
;
1813 /* csrlcc: csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1816 SEM_FN_NAME (frvbf
,csrlcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1818 #define FLD(f) abuf->fields.sfmt_caddcc.f
1819 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1820 int UNUSED written
= 0;
1821 IADDR UNUSED pc
= abuf
->addr
;
1822 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1824 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1829 tmp_shift
= ANDSI (GET_H_GR (FLD (f_GRj
)), 31);
1830 tmp_cc
= frvbf_set_icc_for_shift_right (current_cpu
, GET_H_GR (FLD (f_GRi
)), tmp_shift
, CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]));
1831 tmp_tmp
= SRLSI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
1834 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1835 written
|= (1 << 6);
1836 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1838 if (EQSI (tmp_tmp
, 0)) {
1839 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1841 if (LTSI (tmp_tmp
, 0)) {
1842 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1844 tmp_cc
= ANDQI (tmp_cc
, 3);
1849 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), opval
);
1850 written
|= (1 << 7);
1851 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1856 abuf
->written
= written
;
1861 /* csracc: csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1864 SEM_FN_NAME (frvbf
,csracc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1866 #define FLD(f) abuf->fields.sfmt_caddcc.f
1867 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1868 int UNUSED written
= 0;
1869 IADDR UNUSED pc
= abuf
->addr
;
1870 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1872 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1877 tmp_shift
= ANDSI (GET_H_GR (FLD (f_GRj
)), 31);
1878 tmp_cc
= frvbf_set_icc_for_shift_right (current_cpu
, GET_H_GR (FLD (f_GRi
)), tmp_shift
, CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]));
1879 tmp_tmp
= SRASI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
1882 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1883 written
|= (1 << 6);
1884 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1886 if (EQSI (tmp_tmp
, 0)) {
1887 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1889 if (LTSI (tmp_tmp
, 0)) {
1890 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1892 tmp_cc
= ANDQI (tmp_cc
, 3);
1897 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[ANDSI (FLD (f_CCi
), 3)]), opval
);
1898 written
|= (1 << 7);
1899 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1904 abuf
->written
= written
;
1909 /* addx: addx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1912 SEM_FN_NAME (frvbf
,addx
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1914 #define FLD(f) abuf->fields.sfmt_addcc.f
1915 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1916 int UNUSED written
= 0;
1917 IADDR UNUSED pc
= abuf
->addr
;
1918 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1921 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)));
1922 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1923 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1930 /* subx: subx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1933 SEM_FN_NAME (frvbf
,subx
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1935 #define FLD(f) abuf->fields.sfmt_addcc.f
1936 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1937 int UNUSED written
= 0;
1938 IADDR UNUSED pc
= abuf
->addr
;
1939 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1942 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)));
1943 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1944 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1951 /* addxcc: addxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1954 SEM_FN_NAME (frvbf
,addxcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1956 #define FLD(f) abuf->fields.sfmt_addcc.f
1957 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1958 int UNUSED written
= 0;
1959 IADDR UNUSED pc
= abuf
->addr
;
1960 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1965 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
1966 tmp_tmp
= ADDCSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (tmp_cc
, 1)));
1967 if (EQBI (ADDOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
1968 tmp_cc
= ANDQI (tmp_cc
, 13);
1970 tmp_cc
= ORQI (tmp_cc
, 2);
1972 if (EQBI (ADDCFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
1973 tmp_cc
= ANDQI (tmp_cc
, 14);
1975 tmp_cc
= ORQI (tmp_cc
, 1);
1977 if (EQSI (tmp_tmp
, 0)) {
1978 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1980 if (LTSI (tmp_tmp
, 0)) {
1981 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1983 tmp_cc
= ANDQI (tmp_cc
, 3);
1988 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1989 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1993 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1994 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2002 /* subxcc: subxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
2005 SEM_FN_NAME (frvbf
,subxcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2007 #define FLD(f) abuf->fields.sfmt_addcc.f
2008 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2009 int UNUSED written
= 0;
2010 IADDR UNUSED pc
= abuf
->addr
;
2011 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2016 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
2017 tmp_tmp
= SUBCSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (tmp_cc
, 1)));
2018 if (EQBI (SUBOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
2019 tmp_cc
= ANDQI (tmp_cc
, 13);
2021 tmp_cc
= ORQI (tmp_cc
, 2);
2023 if (EQBI (SUBCFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
2024 tmp_cc
= ANDQI (tmp_cc
, 14);
2026 tmp_cc
= ORQI (tmp_cc
, 1);
2028 if (EQSI (tmp_tmp
, 0)) {
2029 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
2031 if (LTSI (tmp_tmp
, 0)) {
2032 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
2034 tmp_cc
= ANDQI (tmp_cc
, 3);
2039 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2040 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2044 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2045 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2053 /* addss: addss$pack $GRi,$GRj,$GRk */
2056 SEM_FN_NAME (frvbf
,addss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2058 #define FLD(f) abuf->fields.sfmt_addcc.f
2059 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2060 int UNUSED written
= 0;
2061 IADDR UNUSED pc
= abuf
->addr
;
2062 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2066 SI opval
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
2067 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2068 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2070 if (ADDOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0)) {
2072 SI opval
= (GTSI (GET_H_GR (FLD (f_GRi
)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi
)), 0)) ? (0x80000000) : (0);
2073 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2074 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2083 /* subss: subss$pack $GRi,$GRj,$GRk */
2086 SEM_FN_NAME (frvbf
,subss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2088 #define FLD(f) abuf->fields.sfmt_addcc.f
2089 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2090 int UNUSED written
= 0;
2091 IADDR UNUSED pc
= abuf
->addr
;
2092 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2096 SI opval
= SUBSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
2097 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2098 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2100 if (SUBOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0)) {
2102 SI opval
= (GTSI (GET_H_GR (FLD (f_GRi
)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi
)), 0)) ? (0x80000000) : (0);
2103 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2104 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2113 /* addi: addi$pack $GRi,$s12,$GRk */
2116 SEM_FN_NAME (frvbf
,addi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2118 #define FLD(f) abuf->fields.sfmt_swapi.f
2119 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2120 int UNUSED written
= 0;
2121 IADDR UNUSED pc
= abuf
->addr
;
2122 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2125 SI opval
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
2126 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2127 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2134 /* subi: subi$pack $GRi,$s12,$GRk */
2137 SEM_FN_NAME (frvbf
,subi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2139 #define FLD(f) abuf->fields.sfmt_swapi.f
2140 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2141 int UNUSED written
= 0;
2142 IADDR UNUSED pc
= abuf
->addr
;
2143 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2146 SI opval
= SUBSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
2147 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2148 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2155 /* andi: andi$pack $GRi,$s12,$GRk */
2158 SEM_FN_NAME (frvbf
,andi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2160 #define FLD(f) abuf->fields.sfmt_swapi.f
2161 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2162 int UNUSED written
= 0;
2163 IADDR UNUSED pc
= abuf
->addr
;
2164 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2167 SI opval
= ANDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
2168 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2169 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2176 /* ori: ori$pack $GRi,$s12,$GRk */
2179 SEM_FN_NAME (frvbf
,ori
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2181 #define FLD(f) abuf->fields.sfmt_swapi.f
2182 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2183 int UNUSED written
= 0;
2184 IADDR UNUSED pc
= abuf
->addr
;
2185 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2188 SI opval
= ORSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
2189 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2190 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2197 /* xori: xori$pack $GRi,$s12,$GRk */
2200 SEM_FN_NAME (frvbf
,xori
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2202 #define FLD(f) abuf->fields.sfmt_swapi.f
2203 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2204 int UNUSED written
= 0;
2205 IADDR UNUSED pc
= abuf
->addr
;
2206 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2209 SI opval
= XORSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
2210 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2211 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2218 /* sdivi: sdivi$pack $GRi,$s12,$GRk */
2221 SEM_FN_NAME (frvbf
,sdivi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2223 #define FLD(f) abuf->fields.sfmt_swapi.f
2224 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2225 int UNUSED written
= 0;
2226 IADDR UNUSED pc
= abuf
->addr
;
2227 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2230 frvbf_signed_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
), FLD (f_GRk
), 0);
2238 /* nsdivi: nsdivi$pack $GRi,$s12,$GRk */
2241 SEM_FN_NAME (frvbf
,nsdivi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2243 #define FLD(f) abuf->fields.sfmt_swapi.f
2244 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2245 int UNUSED written
= 0;
2246 IADDR UNUSED pc
= abuf
->addr
;
2247 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2250 frvbf_signed_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
), FLD (f_GRk
), 1);
2258 /* udivi: udivi$pack $GRi,$s12,$GRk */
2261 SEM_FN_NAME (frvbf
,udivi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2263 #define FLD(f) abuf->fields.sfmt_swapi.f
2264 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2265 int UNUSED written
= 0;
2266 IADDR UNUSED pc
= abuf
->addr
;
2267 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2270 frvbf_unsigned_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
), FLD (f_GRk
), 0);
2278 /* nudivi: nudivi$pack $GRi,$s12,$GRk */
2281 SEM_FN_NAME (frvbf
,nudivi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2283 #define FLD(f) abuf->fields.sfmt_swapi.f
2284 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2285 int UNUSED written
= 0;
2286 IADDR UNUSED pc
= abuf
->addr
;
2287 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2290 frvbf_unsigned_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
), FLD (f_GRk
), 1);
2298 /* smuli: smuli$pack $GRi,$s12,$GRdoublek */
2301 SEM_FN_NAME (frvbf
,smuli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2303 #define FLD(f) abuf->fields.sfmt_smuli.f
2304 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2305 int UNUSED written
= 0;
2306 IADDR UNUSED pc
= abuf
->addr
;
2307 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2310 DI opval
= MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (FLD (f_d12
)));
2311 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
2312 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
2319 /* umuli: umuli$pack $GRi,$s12,$GRdoublek */
2322 SEM_FN_NAME (frvbf
,umuli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2324 #define FLD(f) abuf->fields.sfmt_smuli.f
2325 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2326 int UNUSED written
= 0;
2327 IADDR UNUSED pc
= abuf
->addr
;
2328 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2331 DI opval
= MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi
))), ZEXTSIDI (FLD (f_d12
)));
2332 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
2333 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
2340 /* slli: slli$pack $GRi,$s12,$GRk */
2343 SEM_FN_NAME (frvbf
,slli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2345 #define FLD(f) abuf->fields.sfmt_swapi.f
2346 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2347 int UNUSED written
= 0;
2348 IADDR UNUSED pc
= abuf
->addr
;
2349 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2352 SI opval
= SLLSI (GET_H_GR (FLD (f_GRi
)), ANDSI (FLD (f_d12
), 31));
2353 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2354 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2361 /* srli: srli$pack $GRi,$s12,$GRk */
2364 SEM_FN_NAME (frvbf
,srli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2366 #define FLD(f) abuf->fields.sfmt_swapi.f
2367 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2368 int UNUSED written
= 0;
2369 IADDR UNUSED pc
= abuf
->addr
;
2370 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2373 SI opval
= SRLSI (GET_H_GR (FLD (f_GRi
)), ANDSI (FLD (f_d12
), 31));
2374 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2375 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2382 /* srai: srai$pack $GRi,$s12,$GRk */
2385 SEM_FN_NAME (frvbf
,srai
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2387 #define FLD(f) abuf->fields.sfmt_swapi.f
2388 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2389 int UNUSED written
= 0;
2390 IADDR UNUSED pc
= abuf
->addr
;
2391 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2394 SI opval
= SRASI (GET_H_GR (FLD (f_GRi
)), ANDSI (FLD (f_d12
), 31));
2395 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2396 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2403 /* scani: scani$pack $GRi,$s12,$GRk */
2406 SEM_FN_NAME (frvbf
,scani
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2408 #define FLD(f) abuf->fields.sfmt_swapi.f
2409 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2410 int UNUSED written
= 0;
2411 IADDR UNUSED pc
= abuf
->addr
;
2412 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2417 tmp_tmp1
= GET_H_GR (FLD (f_GRi
));
2418 tmp_tmp2
= SRASI (FLD (f_d12
), 1);
2420 SI opval
= frvbf_scan_result (current_cpu
, XORSI (tmp_tmp1
, tmp_tmp2
));
2421 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2422 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2430 /* addicc: addicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2433 SEM_FN_NAME (frvbf
,addicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2435 #define FLD(f) abuf->fields.sfmt_addicc.f
2436 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2437 int UNUSED written
= 0;
2438 IADDR UNUSED pc
= abuf
->addr
;
2439 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2445 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
2446 tmp_tmp
= ADDOFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), 0);
2447 if (EQBI (tmp_tmp
, 0)) {
2448 tmp_cc
= ANDQI (tmp_cc
, 13);
2450 tmp_cc
= ORQI (tmp_cc
, 2);
2452 tmp_tmp
= ADDCFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), 0);
2453 if (EQBI (tmp_tmp
, 0)) {
2454 tmp_cc
= ANDQI (tmp_cc
, 14);
2456 tmp_cc
= ORQI (tmp_cc
, 1);
2458 tmp_result
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
));
2459 if (EQSI (tmp_result
, 0)) {
2460 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
2462 if (LTSI (tmp_result
, 0)) {
2463 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
2465 tmp_cc
= ANDQI (tmp_cc
, 3);
2469 SI opval
= tmp_result
;
2470 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2471 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2475 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2476 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2484 /* subicc: subicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2487 SEM_FN_NAME (frvbf
,subicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2489 #define FLD(f) abuf->fields.sfmt_addicc.f
2490 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2491 int UNUSED written
= 0;
2492 IADDR UNUSED pc
= abuf
->addr
;
2493 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2499 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
2500 tmp_tmp
= SUBOFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), 0);
2501 if (EQBI (tmp_tmp
, 0)) {
2502 tmp_cc
= ANDQI (tmp_cc
, 13);
2504 tmp_cc
= ORQI (tmp_cc
, 2);
2506 tmp_tmp
= SUBCFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), 0);
2507 if (EQBI (tmp_tmp
, 0)) {
2508 tmp_cc
= ANDQI (tmp_cc
, 14);
2510 tmp_cc
= ORQI (tmp_cc
, 1);
2512 tmp_result
= SUBSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
));
2513 if (EQSI (tmp_result
, 0)) {
2514 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
2516 if (LTSI (tmp_result
, 0)) {
2517 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
2519 tmp_cc
= ANDQI (tmp_cc
, 3);
2523 SI opval
= tmp_result
;
2524 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2525 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2529 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2530 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2538 /* andicc: andicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2541 SEM_FN_NAME (frvbf
,andicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2543 #define FLD(f) abuf->fields.sfmt_addicc.f
2544 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2545 int UNUSED written
= 0;
2546 IADDR UNUSED pc
= abuf
->addr
;
2547 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2551 tmp_tmp
= ANDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
));
2554 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2555 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2557 if (EQSI (tmp_tmp
, 0)) {
2559 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 7), 4);
2560 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2561 written
|= (1 << 4);
2562 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2565 if (LTSI (tmp_tmp
, 0)) {
2567 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 11), 8);
2568 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2569 written
|= (1 << 4);
2570 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2574 UQI opval
= ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 3);
2575 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2576 written
|= (1 << 4);
2577 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2583 abuf
->written
= written
;
2588 /* oricc: oricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2591 SEM_FN_NAME (frvbf
,oricc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2593 #define FLD(f) abuf->fields.sfmt_addicc.f
2594 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2595 int UNUSED written
= 0;
2596 IADDR UNUSED pc
= abuf
->addr
;
2597 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2601 tmp_tmp
= ORSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
));
2604 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2605 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2607 if (EQSI (tmp_tmp
, 0)) {
2609 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 7), 4);
2610 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2611 written
|= (1 << 4);
2612 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2615 if (LTSI (tmp_tmp
, 0)) {
2617 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 11), 8);
2618 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2619 written
|= (1 << 4);
2620 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2624 UQI opval
= ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 3);
2625 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2626 written
|= (1 << 4);
2627 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2633 abuf
->written
= written
;
2638 /* xoricc: xoricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2641 SEM_FN_NAME (frvbf
,xoricc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2643 #define FLD(f) abuf->fields.sfmt_addicc.f
2644 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2645 int UNUSED written
= 0;
2646 IADDR UNUSED pc
= abuf
->addr
;
2647 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2651 tmp_tmp
= XORSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
));
2654 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2655 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2657 if (EQSI (tmp_tmp
, 0)) {
2659 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 7), 4);
2660 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2661 written
|= (1 << 4);
2662 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2665 if (LTSI (tmp_tmp
, 0)) {
2667 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 11), 8);
2668 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2669 written
|= (1 << 4);
2670 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2674 UQI opval
= ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 3);
2675 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2676 written
|= (1 << 4);
2677 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2683 abuf
->written
= written
;
2688 /* smulicc: smulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2691 SEM_FN_NAME (frvbf
,smulicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2693 #define FLD(f) abuf->fields.sfmt_smulicc.f
2694 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2695 int UNUSED written
= 0;
2696 IADDR UNUSED pc
= abuf
->addr
;
2697 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2702 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
2703 tmp_tmp
= MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (FLD (f_s10
)));
2704 if (EQDI (SRLDI (tmp_tmp
, 63), 0)) {
2705 tmp_cc
= ANDQI (tmp_cc
, 7);
2707 tmp_cc
= ORQI (tmp_cc
, 8);
2709 if (EQBI (EQDI (tmp_tmp
, 0), 0)) {
2710 tmp_cc
= ANDQI (tmp_cc
, 11);
2712 tmp_cc
= ORQI (tmp_cc
, 4);
2716 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
2717 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
2721 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2722 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2730 /* umulicc: umulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2733 SEM_FN_NAME (frvbf
,umulicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2735 #define FLD(f) abuf->fields.sfmt_smulicc.f
2736 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2737 int UNUSED written
= 0;
2738 IADDR UNUSED pc
= abuf
->addr
;
2739 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2744 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
2745 tmp_tmp
= MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi
))), ZEXTSIDI (FLD (f_s10
)));
2746 if (EQDI (SRLDI (tmp_tmp
, 63), 0)) {
2747 tmp_cc
= ANDQI (tmp_cc
, 7);
2749 tmp_cc
= ORQI (tmp_cc
, 8);
2751 if (EQBI (EQDI (tmp_tmp
, 0), 0)) {
2752 tmp_cc
= ANDQI (tmp_cc
, 11);
2754 tmp_cc
= ORQI (tmp_cc
, 4);
2758 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
2759 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
2763 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2764 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2772 /* sllicc: sllicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2775 SEM_FN_NAME (frvbf
,sllicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2777 #define FLD(f) abuf->fields.sfmt_addicc.f
2778 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2779 int UNUSED written
= 0;
2780 IADDR UNUSED pc
= abuf
->addr
;
2781 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2787 tmp_shift
= ANDSI (FLD (f_s10
), 31);
2788 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
)]));
2789 tmp_tmp
= SLLSI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
2792 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2793 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2795 if (EQSI (tmp_tmp
, 0)) {
2796 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
2798 if (LTSI (tmp_tmp
, 0)) {
2799 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
2801 tmp_cc
= ANDQI (tmp_cc
, 3);
2806 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2807 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2815 /* srlicc: srlicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2818 SEM_FN_NAME (frvbf
,srlicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2820 #define FLD(f) abuf->fields.sfmt_addicc.f
2821 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2822 int UNUSED written
= 0;
2823 IADDR UNUSED pc
= abuf
->addr
;
2824 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2830 tmp_shift
= ANDSI (FLD (f_s10
), 31);
2831 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
)]));
2832 tmp_tmp
= SRLSI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
2835 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2836 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2838 if (EQSI (tmp_tmp
, 0)) {
2839 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
2841 if (LTSI (tmp_tmp
, 0)) {
2842 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
2844 tmp_cc
= ANDQI (tmp_cc
, 3);
2849 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2850 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2858 /* sraicc: sraicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2861 SEM_FN_NAME (frvbf
,sraicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2863 #define FLD(f) abuf->fields.sfmt_addicc.f
2864 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2865 int UNUSED written
= 0;
2866 IADDR UNUSED pc
= abuf
->addr
;
2867 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2873 tmp_shift
= ANDSI (FLD (f_s10
), 31);
2874 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
)]));
2875 tmp_tmp
= SRASI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
2878 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2879 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2881 if (EQSI (tmp_tmp
, 0)) {
2882 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
2884 if (LTSI (tmp_tmp
, 0)) {
2885 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
2887 tmp_cc
= ANDQI (tmp_cc
, 3);
2892 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2893 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2901 /* addxi: addxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2904 SEM_FN_NAME (frvbf
,addxi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2906 #define FLD(f) abuf->fields.sfmt_addicc.f
2907 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2908 int UNUSED written
= 0;
2909 IADDR UNUSED pc
= abuf
->addr
;
2910 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2913 SI opval
= ADDCSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 1)));
2914 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2915 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2922 /* subxi: subxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2925 SEM_FN_NAME (frvbf
,subxi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2927 #define FLD(f) abuf->fields.sfmt_addicc.f
2928 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2929 int UNUSED written
= 0;
2930 IADDR UNUSED pc
= abuf
->addr
;
2931 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2934 SI opval
= SUBCSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 1)));
2935 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2936 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2943 /* addxicc: addxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2946 SEM_FN_NAME (frvbf
,addxicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2948 #define FLD(f) abuf->fields.sfmt_addicc.f
2949 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2950 int UNUSED written
= 0;
2951 IADDR UNUSED pc
= abuf
->addr
;
2952 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2957 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
2958 tmp_tmp
= ADDCSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (tmp_cc
, 1)));
2959 if (EQBI (ADDOFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
2960 tmp_cc
= ANDQI (tmp_cc
, 13);
2962 tmp_cc
= ORQI (tmp_cc
, 2);
2964 if (EQBI (ADDCFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
2965 tmp_cc
= ANDQI (tmp_cc
, 14);
2967 tmp_cc
= ORQI (tmp_cc
, 1);
2969 if (EQSI (tmp_tmp
, 0)) {
2970 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
2972 if (LTSI (tmp_tmp
, 0)) {
2973 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
2975 tmp_cc
= ANDQI (tmp_cc
, 3);
2980 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2981 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2985 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2986 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2994 /* subxicc: subxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2997 SEM_FN_NAME (frvbf
,subxicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2999 #define FLD(f) abuf->fields.sfmt_addicc.f
3000 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3001 int UNUSED written
= 0;
3002 IADDR UNUSED pc
= abuf
->addr
;
3003 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3008 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
3009 tmp_tmp
= SUBCSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (tmp_cc
, 1)));
3010 if (EQBI (SUBOFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
3011 tmp_cc
= ANDQI (tmp_cc
, 13);
3013 tmp_cc
= ORQI (tmp_cc
, 2);
3015 if (EQBI (SUBCFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
3016 tmp_cc
= ANDQI (tmp_cc
, 14);
3018 tmp_cc
= ORQI (tmp_cc
, 1);
3020 if (EQSI (tmp_tmp
, 0)) {
3021 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
3023 if (LTSI (tmp_tmp
, 0)) {
3024 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
3026 tmp_cc
= ANDQI (tmp_cc
, 3);
3031 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3032 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3036 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
3037 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
3045 /* cmpb: cmpb$pack $GRi,$GRj,$ICCi_1 */
3048 SEM_FN_NAME (frvbf
,cmpb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3050 #define FLD(f) abuf->fields.sfmt_smulcc.f
3051 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3052 int UNUSED written
= 0;
3053 IADDR UNUSED pc
= abuf
->addr
;
3054 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3058 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi
)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj
)), 0xff000000)), 0)) {
3059 tmp_cc
= ANDQI (tmp_cc
, 7);
3061 tmp_cc
= ORQI (tmp_cc
, 8);
3063 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi
)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj
)), 16711680)), 0)) {
3064 tmp_cc
= ANDQI (tmp_cc
, 11);
3066 tmp_cc
= ORQI (tmp_cc
, 4);
3068 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi
)), 65280), ANDSI (GET_H_GR (FLD (f_GRj
)), 65280)), 0)) {
3069 tmp_cc
= ANDQI (tmp_cc
, 13);
3071 tmp_cc
= ORQI (tmp_cc
, 2);
3073 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi
)), 255), ANDSI (GET_H_GR (FLD (f_GRj
)), 255)), 0)) {
3074 tmp_cc
= ANDQI (tmp_cc
, 14);
3076 tmp_cc
= ORQI (tmp_cc
, 1);
3080 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
3081 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
3089 /* cmpba: cmpba$pack $GRi,$GRj,$ICCi_1 */
3092 SEM_FN_NAME (frvbf
,cmpba
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3094 #define FLD(f) abuf->fields.sfmt_smulcc.f
3095 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3096 int UNUSED written
= 0;
3097 IADDR UNUSED pc
= abuf
->addr
;
3098 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3103 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)) {
3104 tmp_cc
= ANDQI (tmp_cc
, 14);
3106 tmp_cc
= ORQI (tmp_cc
, 1);
3110 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
3111 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
3119 /* setlo: setlo$pack $ulo16,$GRklo */
3122 SEM_FN_NAME (frvbf
,setlo
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3124 #define FLD(f) abuf->fields.sfmt_setlo.f
3125 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3126 int UNUSED written
= 0;
3127 IADDR UNUSED pc
= abuf
->addr
;
3128 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3131 UHI opval
= FLD (f_u16
);
3132 sim_queue_fn_hi_write (current_cpu
, frvbf_h_gr_lo_set
, FLD (f_GRk
), opval
);
3133 TRACE_RESULT (current_cpu
, abuf
, "gr_lo", 'x', opval
);
3140 /* sethi: sethi$pack $uhi16,$GRkhi */
3143 SEM_FN_NAME (frvbf
,sethi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3145 #define FLD(f) abuf->fields.sfmt_sethi.f
3146 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3147 int UNUSED written
= 0;
3148 IADDR UNUSED pc
= abuf
->addr
;
3149 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3152 UHI opval
= FLD (f_u16
);
3153 sim_queue_fn_hi_write (current_cpu
, frvbf_h_gr_hi_set
, FLD (f_GRk
), opval
);
3154 TRACE_RESULT (current_cpu
, abuf
, "gr_hi", 'x', opval
);
3161 /* setlos: setlos$pack $slo16,$GRk */
3164 SEM_FN_NAME (frvbf
,setlos
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3166 #define FLD(f) abuf->fields.sfmt_setlos.f
3167 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3168 int UNUSED written
= 0;
3169 IADDR UNUSED pc
= abuf
->addr
;
3170 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3173 SI opval
= FLD (f_s16
);
3174 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3175 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3182 /* ldsb: ldsb$pack @($GRi,$GRj),$GRk */
3185 SEM_FN_NAME (frvbf
,ldsb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3187 #define FLD(f) abuf->fields.sfmt_addcc.f
3188 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3189 int UNUSED written
= 0;
3190 IADDR UNUSED pc
= abuf
->addr
;
3191 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3194 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3195 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3196 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3203 /* ldub: ldub$pack @($GRi,$GRj),$GRk */
3206 SEM_FN_NAME (frvbf
,ldub
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3208 #define FLD(f) abuf->fields.sfmt_addcc.f
3209 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3210 int UNUSED written
= 0;
3211 IADDR UNUSED pc
= abuf
->addr
;
3212 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3215 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3216 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3217 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3224 /* ldsh: ldsh$pack @($GRi,$GRj),$GRk */
3227 SEM_FN_NAME (frvbf
,ldsh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3229 #define FLD(f) abuf->fields.sfmt_addcc.f
3230 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3231 int UNUSED written
= 0;
3232 IADDR UNUSED pc
= abuf
->addr
;
3233 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3236 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3237 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3238 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3245 /* lduh: lduh$pack @($GRi,$GRj),$GRk */
3248 SEM_FN_NAME (frvbf
,lduh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3250 #define FLD(f) abuf->fields.sfmt_addcc.f
3251 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3252 int UNUSED written
= 0;
3253 IADDR UNUSED pc
= abuf
->addr
;
3254 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3257 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3258 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3259 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3266 /* ld: ld$pack $ldann($GRi,$GRj),$GRk */
3269 SEM_FN_NAME (frvbf
,ld
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3271 #define FLD(f) abuf->fields.sfmt_addcc.f
3272 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3273 int UNUSED written
= 0;
3274 IADDR UNUSED pc
= abuf
->addr
;
3275 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3278 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3279 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3280 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3287 /* ldbf: ldbf$pack @($GRi,$GRj),$FRintk */
3290 SEM_FN_NAME (frvbf
,ldbf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3292 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3293 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3294 int UNUSED written
= 0;
3295 IADDR UNUSED pc
= abuf
->addr
;
3296 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3299 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3300 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
3301 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
3308 /* ldhf: ldhf$pack @($GRi,$GRj),$FRintk */
3311 SEM_FN_NAME (frvbf
,ldhf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3313 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3314 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3315 int UNUSED written
= 0;
3316 IADDR UNUSED pc
= abuf
->addr
;
3317 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3320 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3321 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
3322 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
3329 /* ldf: ldf$pack @($GRi,$GRj),$FRintk */
3332 SEM_FN_NAME (frvbf
,ldf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3334 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3335 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3336 int UNUSED written
= 0;
3337 IADDR UNUSED pc
= abuf
->addr
;
3338 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3341 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3342 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
3343 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
3350 /* ldc: ldc$pack @($GRi,$GRj),$CPRk */
3353 SEM_FN_NAME (frvbf
,ldc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3355 #define FLD(f) abuf->fields.sfmt_ldcu.f
3356 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3357 int UNUSED written
= 0;
3358 IADDR UNUSED pc
= abuf
->addr
;
3359 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3362 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3363 sim_queue_si_write (current_cpu
, & CPU (h_cpr
[FLD (f_CPRk
)]), opval
);
3364 TRACE_RESULT (current_cpu
, abuf
, "cpr", 'x', opval
);
3371 /* nldsb: nldsb$pack @($GRi,$GRj),$GRk */
3374 SEM_FN_NAME (frvbf
,nldsb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3376 #define FLD(f) abuf->fields.sfmt_addcc.f
3377 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3378 int UNUSED written
= 0;
3379 IADDR UNUSED pc
= abuf
->addr
;
3380 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3384 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 1, 0);
3387 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3388 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3389 written
|= (1 << 6);
3390 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3395 abuf
->written
= written
;
3400 /* nldub: nldub$pack @($GRi,$GRj),$GRk */
3403 SEM_FN_NAME (frvbf
,nldub
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3405 #define FLD(f) abuf->fields.sfmt_addcc.f
3406 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3407 int UNUSED written
= 0;
3408 IADDR UNUSED pc
= abuf
->addr
;
3409 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3413 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 0, 0);
3416 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3417 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3418 written
|= (1 << 6);
3419 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3424 abuf
->written
= written
;
3429 /* nldsh: nldsh$pack @($GRi,$GRj),$GRk */
3432 SEM_FN_NAME (frvbf
,nldsh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3434 #define FLD(f) abuf->fields.sfmt_addcc.f
3435 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3436 int UNUSED written
= 0;
3437 IADDR UNUSED pc
= abuf
->addr
;
3438 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3442 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 3, 0);
3445 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3446 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3447 written
|= (1 << 6);
3448 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3453 abuf
->written
= written
;
3458 /* nlduh: nlduh$pack @($GRi,$GRj),$GRk */
3461 SEM_FN_NAME (frvbf
,nlduh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3463 #define FLD(f) abuf->fields.sfmt_addcc.f
3464 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3465 int UNUSED written
= 0;
3466 IADDR UNUSED pc
= abuf
->addr
;
3467 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3471 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 2, 0);
3474 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3475 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3476 written
|= (1 << 6);
3477 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3482 abuf
->written
= written
;
3487 /* nld: nld$pack @($GRi,$GRj),$GRk */
3490 SEM_FN_NAME (frvbf
,nld
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3492 #define FLD(f) abuf->fields.sfmt_addcc.f
3493 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3494 int UNUSED written
= 0;
3495 IADDR UNUSED pc
= abuf
->addr
;
3496 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3500 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 4, 0);
3503 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3504 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3505 written
|= (1 << 6);
3506 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3511 abuf
->written
= written
;
3516 /* nldbf: nldbf$pack @($GRi,$GRj),$FRintk */
3519 SEM_FN_NAME (frvbf
,nldbf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3521 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3522 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3523 int UNUSED written
= 0;
3524 IADDR UNUSED pc
= abuf
->addr
;
3525 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3529 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 0, 1);
3532 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3533 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
3534 written
|= (1 << 6);
3535 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
3540 abuf
->written
= written
;
3545 /* nldhf: nldhf$pack @($GRi,$GRj),$FRintk */
3548 SEM_FN_NAME (frvbf
,nldhf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3550 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3551 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3552 int UNUSED written
= 0;
3553 IADDR UNUSED pc
= abuf
->addr
;
3554 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3558 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 2, 1);
3561 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3562 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
3563 written
|= (1 << 6);
3564 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
3569 abuf
->written
= written
;
3574 /* nldf: nldf$pack @($GRi,$GRj),$FRintk */
3577 SEM_FN_NAME (frvbf
,nldf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3579 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3580 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3581 int UNUSED written
= 0;
3582 IADDR UNUSED pc
= abuf
->addr
;
3583 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3587 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 4, 1);
3590 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3591 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
3592 written
|= (1 << 6);
3593 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
3598 abuf
->written
= written
;
3603 /* ldd: ldd$pack $lddann($GRi,$GRj),$GRdoublek */
3606 SEM_FN_NAME (frvbf
,ldd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3608 #define FLD(f) abuf->fields.sfmt_smulcc.f
3609 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3610 int UNUSED written
= 0;
3611 IADDR UNUSED pc
= abuf
->addr
;
3612 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3616 if (NESI (FLD (f_GRk
), 0)) {
3618 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3620 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
3621 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
3622 written
|= (1 << 4);
3623 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
3629 abuf
->written
= written
;
3634 /* lddf: lddf$pack @($GRi,$GRj),$FRdoublek */
3637 SEM_FN_NAME (frvbf
,lddf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3639 #define FLD(f) abuf->fields.sfmt_clddfu.f
3640 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3641 int UNUSED written
= 0;
3642 IADDR UNUSED pc
= abuf
->addr
;
3643 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3648 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3650 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
3651 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
3652 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
3661 /* lddc: lddc$pack @($GRi,$GRj),$CPRdoublek */
3664 SEM_FN_NAME (frvbf
,lddc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3666 #define FLD(f) abuf->fields.sfmt_lddcu.f
3667 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3668 int UNUSED written
= 0;
3669 IADDR UNUSED pc
= abuf
->addr
;
3670 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3675 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3677 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
3678 sim_queue_fn_di_write (current_cpu
, frvbf_h_cpr_double_set
, FLD (f_CPRk
), opval
);
3679 TRACE_RESULT (current_cpu
, abuf
, "cpr_double", 'D', opval
);
3688 /* nldd: nldd$pack @($GRi,$GRj),$GRdoublek */
3691 SEM_FN_NAME (frvbf
,nldd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3693 #define FLD(f) abuf->fields.sfmt_smulcc.f
3694 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3695 int UNUSED written
= 0;
3696 IADDR UNUSED pc
= abuf
->addr
;
3697 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3703 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 5, 0);
3705 if (NESI (FLD (f_GRk
), 0)) {
3707 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3709 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
3710 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
3711 written
|= (1 << 6);
3712 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
3720 abuf
->written
= written
;
3725 /* nlddf: nlddf$pack @($GRi,$GRj),$FRdoublek */
3728 SEM_FN_NAME (frvbf
,nlddf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3730 #define FLD(f) abuf->fields.sfmt_clddfu.f
3731 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3732 int UNUSED written
= 0;
3733 IADDR UNUSED pc
= abuf
->addr
;
3734 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3740 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 5, 1);
3743 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3745 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
3746 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
3747 written
|= (1 << 6);
3748 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
3755 abuf
->written
= written
;
3760 /* ldq: ldq$pack @($GRi,$GRj),$GRk */
3763 SEM_FN_NAME (frvbf
,ldq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3765 #define FLD(f) abuf->fields.sfmt_smulcc.f
3766 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3767 int UNUSED written
= 0;
3768 IADDR UNUSED pc
= abuf
->addr
;
3769 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3774 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3775 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
3783 /* ldqf: ldqf$pack @($GRi,$GRj),$FRintk */
3786 SEM_FN_NAME (frvbf
,ldqf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3788 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3789 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3790 int UNUSED written
= 0;
3791 IADDR UNUSED pc
= abuf
->addr
;
3792 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3797 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3798 frvbf_load_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
3806 /* ldqc: ldqc$pack @($GRi,$GRj),$CPRk */
3809 SEM_FN_NAME (frvbf
,ldqc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3811 #define FLD(f) abuf->fields.sfmt_stdcu.f
3812 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3813 int UNUSED written
= 0;
3814 IADDR UNUSED pc
= abuf
->addr
;
3815 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3820 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3821 frvbf_load_quad_CPR (current_cpu
, pc
, tmp_address
, FLD (f_CPRk
));
3829 /* nldq: nldq$pack @($GRi,$GRj),$GRk */
3832 SEM_FN_NAME (frvbf
,nldq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3834 #define FLD(f) abuf->fields.sfmt_smulcc.f
3835 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3836 int UNUSED written
= 0;
3837 IADDR UNUSED pc
= abuf
->addr
;
3838 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3844 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 6, 0);
3847 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3848 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
3858 /* nldqf: nldqf$pack @($GRi,$GRj),$FRintk */
3861 SEM_FN_NAME (frvbf
,nldqf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3863 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3864 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3865 int UNUSED written
= 0;
3866 IADDR UNUSED pc
= abuf
->addr
;
3867 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3873 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 6, 1);
3876 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3877 frvbf_load_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
3887 /* ldsbu: ldsbu$pack @($GRi,$GRj),$GRk */
3890 SEM_FN_NAME (frvbf
,ldsbu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3892 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3893 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3894 int UNUSED written
= 0;
3895 IADDR UNUSED pc
= abuf
->addr
;
3896 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3900 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3902 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, tmp_address
);
3903 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3904 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3906 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
3909 SI opval
= tmp_address
;
3910 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
3911 written
|= (1 << 5);
3912 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3914 frvbf_force_update (current_cpu
);
3919 abuf
->written
= written
;
3924 /* ldubu: ldubu$pack @($GRi,$GRj),$GRk */
3927 SEM_FN_NAME (frvbf
,ldubu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3929 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3930 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3931 int UNUSED written
= 0;
3932 IADDR UNUSED pc
= abuf
->addr
;
3933 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3937 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3939 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, tmp_address
);
3940 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3941 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3943 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
3946 SI opval
= tmp_address
;
3947 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
3948 written
|= (1 << 5);
3949 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3951 frvbf_force_update (current_cpu
);
3956 abuf
->written
= written
;
3961 /* ldshu: ldshu$pack @($GRi,$GRj),$GRk */
3964 SEM_FN_NAME (frvbf
,ldshu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3966 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3967 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3968 int UNUSED written
= 0;
3969 IADDR UNUSED pc
= abuf
->addr
;
3970 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3974 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3976 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, tmp_address
);
3977 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3978 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3980 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
3983 SI opval
= tmp_address
;
3984 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
3985 written
|= (1 << 5);
3986 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3988 frvbf_force_update (current_cpu
);
3993 abuf
->written
= written
;
3998 /* lduhu: lduhu$pack @($GRi,$GRj),$GRk */
4001 SEM_FN_NAME (frvbf
,lduhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4003 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4004 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4005 int UNUSED written
= 0;
4006 IADDR UNUSED pc
= abuf
->addr
;
4007 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4011 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4013 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, tmp_address
);
4014 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4015 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4017 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4020 SI opval
= tmp_address
;
4021 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4022 written
|= (1 << 5);
4023 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4025 frvbf_force_update (current_cpu
);
4030 abuf
->written
= written
;
4035 /* ldu: ldu$pack @($GRi,$GRj),$GRk */
4038 SEM_FN_NAME (frvbf
,ldu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4040 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4041 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4042 int UNUSED written
= 0;
4043 IADDR UNUSED pc
= abuf
->addr
;
4044 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4048 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4050 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, tmp_address
);
4051 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4052 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4054 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4057 SI opval
= tmp_address
;
4058 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4059 written
|= (1 << 5);
4060 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4062 frvbf_force_update (current_cpu
);
4067 abuf
->written
= written
;
4072 /* nldsbu: nldsbu$pack @($GRi,$GRj),$GRk */
4075 SEM_FN_NAME (frvbf
,nldsbu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4077 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4078 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4079 int UNUSED written
= 0;
4080 IADDR UNUSED pc
= abuf
->addr
;
4081 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4085 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 1, 0);
4089 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4091 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, tmp_address
);
4092 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4093 written
|= (1 << 7);
4094 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4096 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4099 SI opval
= tmp_address
;
4100 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4101 written
|= (1 << 6);
4102 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4104 frvbf_force_update (current_cpu
);
4111 abuf
->written
= written
;
4116 /* nldubu: nldubu$pack @($GRi,$GRj),$GRk */
4119 SEM_FN_NAME (frvbf
,nldubu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4121 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4122 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4123 int UNUSED written
= 0;
4124 IADDR UNUSED pc
= abuf
->addr
;
4125 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4129 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 0, 0);
4133 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4135 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, tmp_address
);
4136 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4137 written
|= (1 << 7);
4138 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4140 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4143 SI opval
= tmp_address
;
4144 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4145 written
|= (1 << 6);
4146 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4148 frvbf_force_update (current_cpu
);
4155 abuf
->written
= written
;
4160 /* nldshu: nldshu$pack @($GRi,$GRj),$GRk */
4163 SEM_FN_NAME (frvbf
,nldshu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4165 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4166 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4167 int UNUSED written
= 0;
4168 IADDR UNUSED pc
= abuf
->addr
;
4169 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4173 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 3, 0);
4177 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4179 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, tmp_address
);
4180 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4181 written
|= (1 << 7);
4182 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4184 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4187 SI opval
= tmp_address
;
4188 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4189 written
|= (1 << 6);
4190 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4192 frvbf_force_update (current_cpu
);
4199 abuf
->written
= written
;
4204 /* nlduhu: nlduhu$pack @($GRi,$GRj),$GRk */
4207 SEM_FN_NAME (frvbf
,nlduhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4209 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4210 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4211 int UNUSED written
= 0;
4212 IADDR UNUSED pc
= abuf
->addr
;
4213 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4217 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 2, 0);
4221 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4223 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, tmp_address
);
4224 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4225 written
|= (1 << 7);
4226 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4228 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4231 SI opval
= tmp_address
;
4232 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4233 written
|= (1 << 6);
4234 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4236 frvbf_force_update (current_cpu
);
4243 abuf
->written
= written
;
4248 /* nldu: nldu$pack @($GRi,$GRj),$GRk */
4251 SEM_FN_NAME (frvbf
,nldu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4253 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4254 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4255 int UNUSED written
= 0;
4256 IADDR UNUSED pc
= abuf
->addr
;
4257 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4261 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 4, 0);
4265 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4267 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, tmp_address
);
4268 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4269 written
|= (1 << 7);
4270 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4272 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4275 SI opval
= tmp_address
;
4276 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4277 written
|= (1 << 6);
4278 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4280 frvbf_force_update (current_cpu
);
4287 abuf
->written
= written
;
4292 /* ldbfu: ldbfu$pack @($GRi,$GRj),$FRintk */
4295 SEM_FN_NAME (frvbf
,ldbfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4297 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4298 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4299 int UNUSED written
= 0;
4300 IADDR UNUSED pc
= abuf
->addr
;
4301 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4305 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4307 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, tmp_address
);
4308 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
4309 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
4312 SI opval
= tmp_address
;
4313 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4314 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4316 frvbf_force_update (current_cpu
);
4323 /* ldhfu: ldhfu$pack @($GRi,$GRj),$FRintk */
4326 SEM_FN_NAME (frvbf
,ldhfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4328 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4329 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4330 int UNUSED written
= 0;
4331 IADDR UNUSED pc
= abuf
->addr
;
4332 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4336 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4338 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, tmp_address
);
4339 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
4340 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
4343 SI opval
= tmp_address
;
4344 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4345 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4347 frvbf_force_update (current_cpu
);
4354 /* ldfu: ldfu$pack @($GRi,$GRj),$FRintk */
4357 SEM_FN_NAME (frvbf
,ldfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4359 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4360 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4361 int UNUSED written
= 0;
4362 IADDR UNUSED pc
= abuf
->addr
;
4363 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4367 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4369 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, tmp_address
);
4370 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
4371 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
4374 SI opval
= tmp_address
;
4375 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4376 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4378 frvbf_force_update (current_cpu
);
4385 /* ldcu: ldcu$pack @($GRi,$GRj),$CPRk */
4388 SEM_FN_NAME (frvbf
,ldcu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4390 #define FLD(f) abuf->fields.sfmt_ldcu.f
4391 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4392 int UNUSED written
= 0;
4393 IADDR UNUSED pc
= abuf
->addr
;
4394 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4398 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4400 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, tmp_address
);
4401 sim_queue_si_write (current_cpu
, & CPU (h_cpr
[FLD (f_CPRk
)]), opval
);
4402 TRACE_RESULT (current_cpu
, abuf
, "cpr", 'x', opval
);
4405 SI opval
= tmp_address
;
4406 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4407 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4409 frvbf_force_update (current_cpu
);
4416 /* nldbfu: nldbfu$pack @($GRi,$GRj),$FRintk */
4419 SEM_FN_NAME (frvbf
,nldbfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4421 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4422 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4423 int UNUSED written
= 0;
4424 IADDR UNUSED pc
= abuf
->addr
;
4425 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4429 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 0, 1);
4433 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4435 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, tmp_address
);
4436 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
4437 written
|= (1 << 6);
4438 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
4441 SI opval
= tmp_address
;
4442 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4443 written
|= (1 << 7);
4444 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4446 frvbf_force_update (current_cpu
);
4451 abuf
->written
= written
;
4456 /* nldhfu: nldhfu$pack @($GRi,$GRj),$FRintk */
4459 SEM_FN_NAME (frvbf
,nldhfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4461 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4462 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4463 int UNUSED written
= 0;
4464 IADDR UNUSED pc
= abuf
->addr
;
4465 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4469 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 2, 1);
4473 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4475 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, tmp_address
);
4476 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
4477 written
|= (1 << 6);
4478 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
4481 SI opval
= tmp_address
;
4482 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4483 written
|= (1 << 7);
4484 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4486 frvbf_force_update (current_cpu
);
4491 abuf
->written
= written
;
4496 /* nldfu: nldfu$pack @($GRi,$GRj),$FRintk */
4499 SEM_FN_NAME (frvbf
,nldfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4501 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4502 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4503 int UNUSED written
= 0;
4504 IADDR UNUSED pc
= abuf
->addr
;
4505 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4509 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 4, 1);
4513 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4515 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, tmp_address
);
4516 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
4517 written
|= (1 << 6);
4518 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
4521 SI opval
= tmp_address
;
4522 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4523 written
|= (1 << 7);
4524 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4526 frvbf_force_update (current_cpu
);
4531 abuf
->written
= written
;
4536 /* lddu: lddu$pack @($GRi,$GRj),$GRdoublek */
4539 SEM_FN_NAME (frvbf
,lddu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4541 #define FLD(f) abuf->fields.sfmt_clddu.f
4542 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4543 int UNUSED written
= 0;
4544 IADDR UNUSED pc
= abuf
->addr
;
4545 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4549 if (NESI (FLD (f_GRk
), 0)) {
4551 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4553 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
4554 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
4555 written
|= (1 << 5);
4556 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
4560 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4563 SI opval
= tmp_address
;
4564 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4565 written
|= (1 << 6);
4566 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4568 frvbf_force_update (current_cpu
);
4573 abuf
->written
= written
;
4578 /* nlddu: nlddu$pack @($GRi,$GRj),$GRdoublek */
4581 SEM_FN_NAME (frvbf
,nlddu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4583 #define FLD(f) abuf->fields.sfmt_clddu.f
4584 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4585 int UNUSED written
= 0;
4586 IADDR UNUSED pc
= abuf
->addr
;
4587 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4591 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 5, 0);
4595 if (NESI (FLD (f_GRk
), 0)) {
4597 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4599 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
4600 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
4601 written
|= (1 << 6);
4602 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
4606 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4609 SI opval
= tmp_address
;
4610 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4611 written
|= (1 << 7);
4612 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4614 frvbf_force_update (current_cpu
);
4621 abuf
->written
= written
;
4626 /* lddfu: lddfu$pack @($GRi,$GRj),$FRdoublek */
4629 SEM_FN_NAME (frvbf
,lddfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4631 #define FLD(f) abuf->fields.sfmt_clddfu.f
4632 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4633 int UNUSED written
= 0;
4634 IADDR UNUSED pc
= abuf
->addr
;
4635 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4640 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4642 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
4643 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
4644 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
4648 SI opval
= tmp_address
;
4649 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4650 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4652 frvbf_force_update (current_cpu
);
4659 /* lddcu: lddcu$pack @($GRi,$GRj),$CPRdoublek */
4662 SEM_FN_NAME (frvbf
,lddcu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4664 #define FLD(f) abuf->fields.sfmt_lddcu.f
4665 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4666 int UNUSED written
= 0;
4667 IADDR UNUSED pc
= abuf
->addr
;
4668 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4673 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4675 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
4676 sim_queue_fn_di_write (current_cpu
, frvbf_h_cpr_double_set
, FLD (f_CPRk
), opval
);
4677 TRACE_RESULT (current_cpu
, abuf
, "cpr_double", 'D', opval
);
4681 SI opval
= tmp_address
;
4682 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4683 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4685 frvbf_force_update (current_cpu
);
4692 /* nlddfu: nlddfu$pack @($GRi,$GRj),$FRdoublek */
4695 SEM_FN_NAME (frvbf
,nlddfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4697 #define FLD(f) abuf->fields.sfmt_clddfu.f
4698 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4699 int UNUSED written
= 0;
4700 IADDR UNUSED pc
= abuf
->addr
;
4701 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4705 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 5, 1);
4710 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4712 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
4713 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
4714 written
|= (1 << 6);
4715 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
4719 SI opval
= tmp_address
;
4720 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4721 written
|= (1 << 7);
4722 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4724 frvbf_force_update (current_cpu
);
4729 abuf
->written
= written
;
4734 /* ldqu: ldqu$pack @($GRi,$GRj),$GRk */
4737 SEM_FN_NAME (frvbf
,ldqu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4739 #define FLD(f) abuf->fields.sfmt_cstdu.f
4740 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4741 int UNUSED written
= 0;
4742 IADDR UNUSED pc
= abuf
->addr
;
4743 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4748 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4749 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
4751 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4754 SI opval
= tmp_address
;
4755 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4756 written
|= (1 << 5);
4757 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4759 frvbf_force_update (current_cpu
);
4764 abuf
->written
= written
;
4769 /* nldqu: nldqu$pack @($GRi,$GRj),$GRk */
4772 SEM_FN_NAME (frvbf
,nldqu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4774 #define FLD(f) abuf->fields.sfmt_cstdu.f
4775 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4776 int UNUSED written
= 0;
4777 IADDR UNUSED pc
= abuf
->addr
;
4778 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4782 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 6, 0);
4787 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4788 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
4790 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4793 SI opval
= tmp_address
;
4794 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4795 written
|= (1 << 6);
4796 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4798 frvbf_force_update (current_cpu
);
4805 abuf
->written
= written
;
4810 /* ldqfu: ldqfu$pack @($GRi,$GRj),$FRintk */
4813 SEM_FN_NAME (frvbf
,ldqfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4815 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4816 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4817 int UNUSED written
= 0;
4818 IADDR UNUSED pc
= abuf
->addr
;
4819 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4824 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4825 frvbf_load_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
4828 SI opval
= tmp_address
;
4829 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4830 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4832 frvbf_force_update (current_cpu
);
4839 /* ldqcu: ldqcu$pack @($GRi,$GRj),$CPRk */
4842 SEM_FN_NAME (frvbf
,ldqcu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4844 #define FLD(f) abuf->fields.sfmt_stdcu.f
4845 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4846 int UNUSED written
= 0;
4847 IADDR UNUSED pc
= abuf
->addr
;
4848 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4853 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4854 frvbf_load_quad_CPR (current_cpu
, pc
, tmp_address
, FLD (f_CPRk
));
4857 SI opval
= tmp_address
;
4858 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4859 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4861 frvbf_force_update (current_cpu
);
4868 /* nldqfu: nldqfu$pack @($GRi,$GRj),$FRintk */
4871 SEM_FN_NAME (frvbf
,nldqfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4873 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4874 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4875 int UNUSED written
= 0;
4876 IADDR UNUSED pc
= abuf
->addr
;
4877 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4881 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 6, 1);
4886 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4887 frvbf_load_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
4890 SI opval
= tmp_address
;
4891 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4892 written
|= (1 << 6);
4893 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4895 frvbf_force_update (current_cpu
);
4900 abuf
->written
= written
;
4905 /* ldsbi: ldsbi$pack @($GRi,$d12),$GRk */
4908 SEM_FN_NAME (frvbf
,ldsbi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4910 #define FLD(f) abuf->fields.sfmt_swapi.f
4911 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4912 int UNUSED written
= 0;
4913 IADDR UNUSED pc
= abuf
->addr
;
4914 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4917 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
4918 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4919 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4926 /* ldshi: ldshi$pack @($GRi,$d12),$GRk */
4929 SEM_FN_NAME (frvbf
,ldshi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4931 #define FLD(f) abuf->fields.sfmt_swapi.f
4932 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4933 int UNUSED written
= 0;
4934 IADDR UNUSED pc
= abuf
->addr
;
4935 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4938 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
4939 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4940 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4947 /* ldi: ldi$pack @($GRi,$d12),$GRk */
4950 SEM_FN_NAME (frvbf
,ldi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4952 #define FLD(f) abuf->fields.sfmt_swapi.f
4953 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4954 int UNUSED written
= 0;
4955 IADDR UNUSED pc
= abuf
->addr
;
4956 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4959 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
4960 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4961 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4968 /* ldubi: ldubi$pack @($GRi,$d12),$GRk */
4971 SEM_FN_NAME (frvbf
,ldubi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4973 #define FLD(f) abuf->fields.sfmt_swapi.f
4974 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4975 int UNUSED written
= 0;
4976 IADDR UNUSED pc
= abuf
->addr
;
4977 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4980 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
4981 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4982 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4989 /* lduhi: lduhi$pack @($GRi,$d12),$GRk */
4992 SEM_FN_NAME (frvbf
,lduhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4994 #define FLD(f) abuf->fields.sfmt_swapi.f
4995 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4996 int UNUSED written
= 0;
4997 IADDR UNUSED pc
= abuf
->addr
;
4998 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5001 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5002 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
5003 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5010 /* ldbfi: ldbfi$pack @($GRi,$d12),$FRintk */
5013 SEM_FN_NAME (frvbf
,ldbfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5015 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5016 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5017 int UNUSED written
= 0;
5018 IADDR UNUSED pc
= abuf
->addr
;
5019 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5022 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5023 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
5024 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
5031 /* ldhfi: ldhfi$pack @($GRi,$d12),$FRintk */
5034 SEM_FN_NAME (frvbf
,ldhfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5036 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5037 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5038 int UNUSED written
= 0;
5039 IADDR UNUSED pc
= abuf
->addr
;
5040 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5043 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5044 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
5045 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
5052 /* ldfi: ldfi$pack @($GRi,$d12),$FRintk */
5055 SEM_FN_NAME (frvbf
,ldfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5057 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5058 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5059 int UNUSED written
= 0;
5060 IADDR UNUSED pc
= abuf
->addr
;
5061 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5064 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5065 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
5066 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
5073 /* nldsbi: nldsbi$pack @($GRi,$d12),$GRk */
5076 SEM_FN_NAME (frvbf
,nldsbi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5078 #define FLD(f) abuf->fields.sfmt_swapi.f
5079 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5080 int UNUSED written
= 0;
5081 IADDR UNUSED pc
= abuf
->addr
;
5082 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5086 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_GRk
), FLD (f_d12
), 1, 0);
5089 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5090 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
5091 written
|= (1 << 5);
5092 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5097 abuf
->written
= written
;
5102 /* nldubi: nldubi$pack @($GRi,$d12),$GRk */
5105 SEM_FN_NAME (frvbf
,nldubi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5107 #define FLD(f) abuf->fields.sfmt_swapi.f
5108 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5109 int UNUSED written
= 0;
5110 IADDR UNUSED pc
= abuf
->addr
;
5111 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5115 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_GRk
), FLD (f_d12
), 0, 0);
5118 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5119 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
5120 written
|= (1 << 5);
5121 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5126 abuf
->written
= written
;
5131 /* nldshi: nldshi$pack @($GRi,$d12),$GRk */
5134 SEM_FN_NAME (frvbf
,nldshi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5136 #define FLD(f) abuf->fields.sfmt_swapi.f
5137 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5138 int UNUSED written
= 0;
5139 IADDR UNUSED pc
= abuf
->addr
;
5140 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5144 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_GRk
), FLD (f_d12
), 3, 0);
5147 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5148 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
5149 written
|= (1 << 5);
5150 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5155 abuf
->written
= written
;
5160 /* nlduhi: nlduhi$pack @($GRi,$d12),$GRk */
5163 SEM_FN_NAME (frvbf
,nlduhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5165 #define FLD(f) abuf->fields.sfmt_swapi.f
5166 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5167 int UNUSED written
= 0;
5168 IADDR UNUSED pc
= abuf
->addr
;
5169 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5173 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_GRk
), FLD (f_d12
), 2, 0);
5176 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5177 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
5178 written
|= (1 << 5);
5179 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5184 abuf
->written
= written
;
5189 /* nldi: nldi$pack @($GRi,$d12),$GRk */
5192 SEM_FN_NAME (frvbf
,nldi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5194 #define FLD(f) abuf->fields.sfmt_swapi.f
5195 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5196 int UNUSED written
= 0;
5197 IADDR UNUSED pc
= abuf
->addr
;
5198 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5202 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_GRk
), FLD (f_d12
), 4, 0);
5205 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5206 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
5207 written
|= (1 << 5);
5208 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5213 abuf
->written
= written
;
5218 /* nldbfi: nldbfi$pack @($GRi,$d12),$FRintk */
5221 SEM_FN_NAME (frvbf
,nldbfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5223 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5224 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5225 int UNUSED written
= 0;
5226 IADDR UNUSED pc
= abuf
->addr
;
5227 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5231 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_FRk
), FLD (f_d12
), 0, 1);
5234 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5235 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
5236 written
|= (1 << 5);
5237 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
5242 abuf
->written
= written
;
5247 /* nldhfi: nldhfi$pack @($GRi,$d12),$FRintk */
5250 SEM_FN_NAME (frvbf
,nldhfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5252 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5253 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5254 int UNUSED written
= 0;
5255 IADDR UNUSED pc
= abuf
->addr
;
5256 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5260 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_FRk
), FLD (f_d12
), 2, 1);
5263 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5264 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
5265 written
|= (1 << 5);
5266 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
5271 abuf
->written
= written
;
5276 /* nldfi: nldfi$pack @($GRi,$d12),$FRintk */
5279 SEM_FN_NAME (frvbf
,nldfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5281 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5282 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5283 int UNUSED written
= 0;
5284 IADDR UNUSED pc
= abuf
->addr
;
5285 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5289 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_FRk
), FLD (f_d12
), 4, 1);
5292 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5293 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
5294 written
|= (1 << 5);
5295 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
5300 abuf
->written
= written
;
5305 /* lddi: lddi$pack @($GRi,$d12),$GRdoublek */
5308 SEM_FN_NAME (frvbf
,lddi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5310 #define FLD(f) abuf->fields.sfmt_smuli.f
5311 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5312 int UNUSED written
= 0;
5313 IADDR UNUSED pc
= abuf
->addr
;
5314 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5318 if (NESI (FLD (f_GRk
), 0)) {
5320 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5322 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
5323 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
5324 written
|= (1 << 4);
5325 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
5331 abuf
->written
= written
;
5336 /* lddfi: lddfi$pack @($GRi,$d12),$FRdoublek */
5339 SEM_FN_NAME (frvbf
,lddfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5341 #define FLD(f) abuf->fields.sfmt_lddfi.f
5342 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5343 int UNUSED written
= 0;
5344 IADDR UNUSED pc
= abuf
->addr
;
5345 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5350 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5352 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
5353 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
5354 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
5363 /* nlddi: nlddi$pack @($GRi,$d12),$GRdoublek */
5366 SEM_FN_NAME (frvbf
,nlddi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5368 #define FLD(f) abuf->fields.sfmt_smuli.f
5369 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5370 int UNUSED written
= 0;
5371 IADDR UNUSED pc
= abuf
->addr
;
5372 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5378 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_GRk
), FLD (f_d12
), 5, 0);
5380 if (NESI (FLD (f_GRk
), 0)) {
5382 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5384 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
5385 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
5386 written
|= (1 << 5);
5387 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
5395 abuf
->written
= written
;
5400 /* nlddfi: nlddfi$pack @($GRi,$d12),$FRdoublek */
5403 SEM_FN_NAME (frvbf
,nlddfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5405 #define FLD(f) abuf->fields.sfmt_lddfi.f
5406 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5407 int UNUSED written
= 0;
5408 IADDR UNUSED pc
= abuf
->addr
;
5409 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5415 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_FRk
), FLD (f_d12
), 5, 1);
5418 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5420 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
5421 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
5422 written
|= (1 << 5);
5423 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
5430 abuf
->written
= written
;
5435 /* ldqi: ldqi$pack @($GRi,$d12),$GRk */
5438 SEM_FN_NAME (frvbf
,ldqi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5440 #define FLD(f) abuf->fields.sfmt_stdi.f
5441 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5442 int UNUSED written
= 0;
5443 IADDR UNUSED pc
= abuf
->addr
;
5444 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5449 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5450 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
5458 /* ldqfi: ldqfi$pack @($GRi,$d12),$FRintk */
5461 SEM_FN_NAME (frvbf
,ldqfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5463 #define FLD(f) abuf->fields.sfmt_stdfi.f
5464 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5465 int UNUSED written
= 0;
5466 IADDR UNUSED pc
= abuf
->addr
;
5467 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5472 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5473 frvbf_load_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
5481 /* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
5484 SEM_FN_NAME (frvbf
,nldqfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5486 #define FLD(f) abuf->fields.sfmt_stdfi.f
5487 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5488 int UNUSED written
= 0;
5489 IADDR UNUSED pc
= abuf
->addr
;
5490 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5496 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_FRk
), FLD (f_d12
), 6, 1);
5499 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5500 frvbf_load_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
5510 /* stb: stb$pack $GRk,@($GRi,$GRj) */
5513 SEM_FN_NAME (frvbf
,stb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5515 #define FLD(f) abuf->fields.sfmt_cswap.f
5516 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5517 int UNUSED written
= 0;
5518 IADDR UNUSED pc
= abuf
->addr
;
5519 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5521 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
)));
5527 /* sth: sth$pack $GRk,@($GRi,$GRj) */
5530 SEM_FN_NAME (frvbf
,sth
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5532 #define FLD(f) abuf->fields.sfmt_cswap.f
5533 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5534 int UNUSED written
= 0;
5535 IADDR UNUSED pc
= abuf
->addr
;
5536 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5538 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
)));
5544 /* st: st$pack $GRk,@($GRi,$GRj) */
5547 SEM_FN_NAME (frvbf
,st
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5549 #define FLD(f) abuf->fields.sfmt_cswap.f
5550 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5551 int UNUSED written
= 0;
5552 IADDR UNUSED pc
= abuf
->addr
;
5553 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5555 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
)));
5561 /* stbf: stbf$pack $FRintk,@($GRi,$GRj) */
5564 SEM_FN_NAME (frvbf
,stbf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5566 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5567 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5568 int UNUSED written
= 0;
5569 IADDR UNUSED pc
= abuf
->addr
;
5570 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5572 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
)));
5578 /* sthf: sthf$pack $FRintk,@($GRi,$GRj) */
5581 SEM_FN_NAME (frvbf
,sthf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5583 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5584 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5585 int UNUSED written
= 0;
5586 IADDR UNUSED pc
= abuf
->addr
;
5587 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5589 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
)));
5595 /* stf: stf$pack $FRintk,@($GRi,$GRj) */
5598 SEM_FN_NAME (frvbf
,stf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5600 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5601 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5602 int UNUSED written
= 0;
5603 IADDR UNUSED pc
= abuf
->addr
;
5604 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5606 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
)));
5612 /* stc: stc$pack $CPRk,@($GRi,$GRj) */
5615 SEM_FN_NAME (frvbf
,stc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5617 #define FLD(f) abuf->fields.sfmt_stcu.f
5618 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5619 int UNUSED written
= 0;
5620 IADDR UNUSED pc
= abuf
->addr
;
5621 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5623 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
)]));
5629 /* std: std$pack $GRdoublek,@($GRi,$GRj) */
5632 SEM_FN_NAME (frvbf
,std
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5634 #define FLD(f) abuf->fields.sfmt_cstdu.f
5635 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5636 int UNUSED written
= 0;
5637 IADDR UNUSED pc
= abuf
->addr
;
5638 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5643 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5644 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE (FLD (f_GRk
)));
5652 /* stdf: stdf$pack $FRdoublek,@($GRi,$GRj) */
5655 SEM_FN_NAME (frvbf
,stdf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5657 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5658 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5659 int UNUSED written
= 0;
5660 IADDR UNUSED pc
= abuf
->addr
;
5661 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5666 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5667 frvbf_write_mem_DF (current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE (FLD (f_FRk
)));
5675 /* stdc: stdc$pack $CPRdoublek,@($GRi,$GRj) */
5678 SEM_FN_NAME (frvbf
,stdc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5680 #define FLD(f) abuf->fields.sfmt_stdcu.f
5681 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5682 int UNUSED written
= 0;
5683 IADDR UNUSED pc
= abuf
->addr
;
5684 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5689 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5690 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_CPR_DOUBLE (FLD (f_CPRk
)));
5698 /* stq: stq$pack $GRk,@($GRi,$GRj) */
5701 SEM_FN_NAME (frvbf
,stq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5703 #define FLD(f) abuf->fields.sfmt_smulcc.f
5704 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5705 int UNUSED written
= 0;
5706 IADDR UNUSED pc
= abuf
->addr
;
5707 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5712 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5713 frvbf_store_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
5721 /* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5724 SEM_FN_NAME (frvbf
,stqf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5726 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5727 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5728 int UNUSED written
= 0;
5729 IADDR UNUSED pc
= abuf
->addr
;
5730 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5735 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5736 frvbf_store_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
5744 /* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5747 SEM_FN_NAME (frvbf
,stqc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5749 #define FLD(f) abuf->fields.sfmt_stdcu.f
5750 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5751 int UNUSED written
= 0;
5752 IADDR UNUSED pc
= abuf
->addr
;
5753 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5758 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5759 frvbf_store_quad_CPR (current_cpu
, pc
, tmp_address
, FLD (f_CPRk
));
5767 /* stbu: stbu$pack $GRk,@($GRi,$GRj) */
5770 SEM_FN_NAME (frvbf
,stbu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5772 #define FLD(f) abuf->fields.sfmt_cstbu.f
5773 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5774 int UNUSED written
= 0;
5775 IADDR UNUSED pc
= abuf
->addr
;
5776 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5780 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5781 frvbf_write_mem_QI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
5783 SI opval
= tmp_address
;
5784 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
5785 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5793 /* sthu: sthu$pack $GRk,@($GRi,$GRj) */
5796 SEM_FN_NAME (frvbf
,sthu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5798 #define FLD(f) abuf->fields.sfmt_cstbu.f
5799 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5800 int UNUSED written
= 0;
5801 IADDR UNUSED pc
= abuf
->addr
;
5802 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5806 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5807 frvbf_write_mem_HI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
5809 SI opval
= tmp_address
;
5810 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
5811 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5819 /* stu: stu$pack $GRk,@($GRi,$GRj) */
5822 SEM_FN_NAME (frvbf
,stu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5824 #define FLD(f) abuf->fields.sfmt_cstbu.f
5825 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5826 int UNUSED written
= 0;
5827 IADDR UNUSED pc
= abuf
->addr
;
5828 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5832 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5833 frvbf_write_mem_WI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
5835 SI opval
= tmp_address
;
5836 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
5837 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5845 /* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
5848 SEM_FN_NAME (frvbf
,stbfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5850 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5851 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5852 int UNUSED written
= 0;
5853 IADDR UNUSED pc
= abuf
->addr
;
5854 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5858 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5859 frvbf_write_mem_QI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
5861 SI opval
= tmp_address
;
5862 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
5863 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5871 /* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
5874 SEM_FN_NAME (frvbf
,sthfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5876 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5877 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5878 int UNUSED written
= 0;
5879 IADDR UNUSED pc
= abuf
->addr
;
5880 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5884 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5885 frvbf_write_mem_HI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
5887 SI opval
= tmp_address
;
5888 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
5889 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5897 /* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
5900 SEM_FN_NAME (frvbf
,stfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5902 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5903 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5904 int UNUSED written
= 0;
5905 IADDR UNUSED pc
= abuf
->addr
;
5906 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5910 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5911 frvbf_write_mem_SI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
5913 SI opval
= tmp_address
;
5914 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
5915 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5923 /* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
5926 SEM_FN_NAME (frvbf
,stcu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5928 #define FLD(f) abuf->fields.sfmt_stcu.f
5929 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5930 int UNUSED written
= 0;
5931 IADDR UNUSED pc
= abuf
->addr
;
5932 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5936 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5937 frvbf_write_mem_SI (current_cpu
, pc
, tmp_address
, CPU (h_cpr
[FLD (f_CPRk
)]));
5939 SI opval
= tmp_address
;
5940 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
5941 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5949 /* stdu: stdu$pack $GRdoublek,@($GRi,$GRj) */
5952 SEM_FN_NAME (frvbf
,stdu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5954 #define FLD(f) abuf->fields.sfmt_cstdu.f
5955 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5956 int UNUSED written
= 0;
5957 IADDR UNUSED pc
= abuf
->addr
;
5958 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5963 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5964 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE (FLD (f_GRk
)));
5967 SI opval
= tmp_address
;
5968 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
5969 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5977 /* stdfu: stdfu$pack $FRdoublek,@($GRi,$GRj) */
5980 SEM_FN_NAME (frvbf
,stdfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5982 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5983 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5984 int UNUSED written
= 0;
5985 IADDR UNUSED pc
= abuf
->addr
;
5986 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5991 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5992 frvbf_write_mem_DF (current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE (FLD (f_FRk
)));
5995 SI opval
= tmp_address
;
5996 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
5997 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6005 /* stdcu: stdcu$pack $CPRdoublek,@($GRi,$GRj) */
6008 SEM_FN_NAME (frvbf
,stdcu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6010 #define FLD(f) abuf->fields.sfmt_stdcu.f
6011 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6012 int UNUSED written
= 0;
6013 IADDR UNUSED pc
= abuf
->addr
;
6014 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6019 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6020 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_CPR_DOUBLE (FLD (f_CPRk
)));
6023 SI opval
= tmp_address
;
6024 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6025 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6033 /* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6036 SEM_FN_NAME (frvbf
,stqu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6038 #define FLD(f) abuf->fields.sfmt_cstdu.f
6039 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6040 int UNUSED written
= 0;
6041 IADDR UNUSED pc
= abuf
->addr
;
6042 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6047 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6048 frvbf_store_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
6051 SI opval
= tmp_address
;
6052 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6053 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6061 /* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6064 SEM_FN_NAME (frvbf
,stqfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6066 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6067 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6068 int UNUSED written
= 0;
6069 IADDR UNUSED pc
= abuf
->addr
;
6070 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6075 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6076 frvbf_store_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
6079 SI opval
= tmp_address
;
6080 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6081 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6089 /* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6092 SEM_FN_NAME (frvbf
,stqcu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6094 #define FLD(f) abuf->fields.sfmt_stdcu.f
6095 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6096 int UNUSED written
= 0;
6097 IADDR UNUSED pc
= abuf
->addr
;
6098 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6103 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6104 frvbf_store_quad_CPR (current_cpu
, pc
, tmp_address
, FLD (f_CPRk
));
6107 SI opval
= tmp_address
;
6108 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6109 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6117 /* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6120 SEM_FN_NAME (frvbf
,cldsb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6122 #define FLD(f) abuf->fields.sfmt_cswap.f
6123 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6124 int UNUSED written
= 0;
6125 IADDR UNUSED pc
= abuf
->addr
;
6126 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6128 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6130 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6131 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6132 written
|= (1 << 5);
6133 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6137 abuf
->written
= written
;
6142 /* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6145 SEM_FN_NAME (frvbf
,cldub
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6147 #define FLD(f) abuf->fields.sfmt_cswap.f
6148 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6149 int UNUSED written
= 0;
6150 IADDR UNUSED pc
= abuf
->addr
;
6151 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6153 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6155 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6156 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6157 written
|= (1 << 5);
6158 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6162 abuf
->written
= written
;
6167 /* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6170 SEM_FN_NAME (frvbf
,cldsh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6172 #define FLD(f) abuf->fields.sfmt_cswap.f
6173 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6174 int UNUSED written
= 0;
6175 IADDR UNUSED pc
= abuf
->addr
;
6176 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6178 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6180 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6181 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6182 written
|= (1 << 5);
6183 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6187 abuf
->written
= written
;
6192 /* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6195 SEM_FN_NAME (frvbf
,clduh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6197 #define FLD(f) abuf->fields.sfmt_cswap.f
6198 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6199 int UNUSED written
= 0;
6200 IADDR UNUSED pc
= abuf
->addr
;
6201 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6203 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6205 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6206 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6207 written
|= (1 << 5);
6208 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6212 abuf
->written
= written
;
6217 /* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6220 SEM_FN_NAME (frvbf
,cld
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6222 #define FLD(f) abuf->fields.sfmt_cswap.f
6223 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6224 int UNUSED written
= 0;
6225 IADDR UNUSED pc
= abuf
->addr
;
6226 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6228 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6230 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6231 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6232 written
|= (1 << 5);
6233 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6237 abuf
->written
= written
;
6242 /* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6245 SEM_FN_NAME (frvbf
,cldbf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6247 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6248 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6249 int UNUSED written
= 0;
6250 IADDR UNUSED pc
= abuf
->addr
;
6251 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6253 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6255 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6256 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
6257 written
|= (1 << 5);
6258 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
6262 abuf
->written
= written
;
6267 /* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6270 SEM_FN_NAME (frvbf
,cldhf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6272 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6273 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6274 int UNUSED written
= 0;
6275 IADDR UNUSED pc
= abuf
->addr
;
6276 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6278 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6280 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6281 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
6282 written
|= (1 << 5);
6283 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
6287 abuf
->written
= written
;
6292 /* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6295 SEM_FN_NAME (frvbf
,cldf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6297 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6298 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6299 int UNUSED written
= 0;
6300 IADDR UNUSED pc
= abuf
->addr
;
6301 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6303 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6305 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6306 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
6307 written
|= (1 << 5);
6308 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
6312 abuf
->written
= written
;
6317 /* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6320 SEM_FN_NAME (frvbf
,cldd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6322 #define FLD(f) abuf->fields.sfmt_clddu.f
6323 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6324 int UNUSED written
= 0;
6325 IADDR UNUSED pc
= abuf
->addr
;
6326 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6328 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6331 if (NESI (FLD (f_GRk
), 0)) {
6333 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6335 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
6336 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
6337 written
|= (1 << 6);
6338 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
6345 abuf
->written
= written
;
6350 /* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6353 SEM_FN_NAME (frvbf
,clddf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6355 #define FLD(f) abuf->fields.sfmt_clddfu.f
6356 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6357 int UNUSED written
= 0;
6358 IADDR UNUSED pc
= abuf
->addr
;
6359 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6361 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6365 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6367 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
6368 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
6369 written
|= (1 << 5);
6370 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
6376 abuf
->written
= written
;
6381 /* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6384 SEM_FN_NAME (frvbf
,cldq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6386 #define FLD(f) abuf->fields.sfmt_cswap.f
6387 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6388 int UNUSED written
= 0;
6389 IADDR UNUSED pc
= abuf
->addr
;
6390 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6392 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6396 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6397 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
6406 /* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6409 SEM_FN_NAME (frvbf
,cldsbu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6411 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6412 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6413 int UNUSED written
= 0;
6414 IADDR UNUSED pc
= abuf
->addr
;
6415 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6417 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6420 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6422 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, tmp_address
);
6423 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6424 written
|= (1 << 8);
6425 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6427 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
6429 SI opval
= tmp_address
;
6430 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6431 written
|= (1 << 7);
6432 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6438 abuf
->written
= written
;
6443 /* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6446 SEM_FN_NAME (frvbf
,cldubu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6448 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6449 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6450 int UNUSED written
= 0;
6451 IADDR UNUSED pc
= abuf
->addr
;
6452 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6454 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6457 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6459 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, tmp_address
);
6460 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6461 written
|= (1 << 8);
6462 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6464 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
6466 SI opval
= tmp_address
;
6467 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6468 written
|= (1 << 7);
6469 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6475 abuf
->written
= written
;
6480 /* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6483 SEM_FN_NAME (frvbf
,cldshu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6485 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6486 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6487 int UNUSED written
= 0;
6488 IADDR UNUSED pc
= abuf
->addr
;
6489 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6491 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6494 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6496 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, tmp_address
);
6497 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6498 written
|= (1 << 8);
6499 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6501 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
6503 SI opval
= tmp_address
;
6504 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6505 written
|= (1 << 7);
6506 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6512 abuf
->written
= written
;
6517 /* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6520 SEM_FN_NAME (frvbf
,clduhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6522 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6523 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6524 int UNUSED written
= 0;
6525 IADDR UNUSED pc
= abuf
->addr
;
6526 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6528 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6531 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6533 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, tmp_address
);
6534 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6535 written
|= (1 << 8);
6536 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6538 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
6540 SI opval
= tmp_address
;
6541 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6542 written
|= (1 << 7);
6543 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6549 abuf
->written
= written
;
6554 /* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6557 SEM_FN_NAME (frvbf
,cldu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6559 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6560 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6561 int UNUSED written
= 0;
6562 IADDR UNUSED pc
= abuf
->addr
;
6563 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6565 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6568 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6570 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, tmp_address
);
6571 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6572 written
|= (1 << 8);
6573 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6575 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
6577 SI opval
= tmp_address
;
6578 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6579 written
|= (1 << 7);
6580 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6586 abuf
->written
= written
;
6591 /* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6594 SEM_FN_NAME (frvbf
,cldbfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6596 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6597 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6598 int UNUSED written
= 0;
6599 IADDR UNUSED pc
= abuf
->addr
;
6600 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6602 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6605 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6607 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, tmp_address
);
6608 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
6609 written
|= (1 << 5);
6610 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
6613 SI opval
= tmp_address
;
6614 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6615 written
|= (1 << 6);
6616 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6621 abuf
->written
= written
;
6626 /* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6629 SEM_FN_NAME (frvbf
,cldhfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6631 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6632 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6633 int UNUSED written
= 0;
6634 IADDR UNUSED pc
= abuf
->addr
;
6635 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6637 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6640 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6642 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, tmp_address
);
6643 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
6644 written
|= (1 << 5);
6645 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
6648 SI opval
= tmp_address
;
6649 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6650 written
|= (1 << 6);
6651 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6656 abuf
->written
= written
;
6661 /* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6664 SEM_FN_NAME (frvbf
,cldfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6666 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6667 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6668 int UNUSED written
= 0;
6669 IADDR UNUSED pc
= abuf
->addr
;
6670 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6672 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6675 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6677 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, tmp_address
);
6678 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
6679 written
|= (1 << 5);
6680 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
6683 SI opval
= tmp_address
;
6684 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6685 written
|= (1 << 6);
6686 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6691 abuf
->written
= written
;
6696 /* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6699 SEM_FN_NAME (frvbf
,clddu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6701 #define FLD(f) abuf->fields.sfmt_clddu.f
6702 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6703 int UNUSED written
= 0;
6704 IADDR UNUSED pc
= abuf
->addr
;
6705 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6707 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6710 if (NESI (FLD (f_GRk
), 0)) {
6712 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6714 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
6715 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
6716 written
|= (1 << 7);
6717 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
6721 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
6723 SI opval
= tmp_address
;
6724 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6725 written
|= (1 << 8);
6726 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6732 abuf
->written
= written
;
6737 /* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6740 SEM_FN_NAME (frvbf
,clddfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6742 #define FLD(f) abuf->fields.sfmt_clddfu.f
6743 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6744 int UNUSED written
= 0;
6745 IADDR UNUSED pc
= abuf
->addr
;
6746 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6748 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6752 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6754 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
6755 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
6756 written
|= (1 << 5);
6757 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
6761 SI opval
= tmp_address
;
6762 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6763 written
|= (1 << 6);
6764 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6769 abuf
->written
= written
;
6774 /* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6777 SEM_FN_NAME (frvbf
,cldqu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6779 #define FLD(f) abuf->fields.sfmt_cstdu.f
6780 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6781 int UNUSED written
= 0;
6782 IADDR UNUSED pc
= abuf
->addr
;
6783 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6785 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6789 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6790 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
6792 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
6794 SI opval
= tmp_address
;
6795 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6796 written
|= (1 << 7);
6797 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6803 abuf
->written
= written
;
6808 /* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6811 SEM_FN_NAME (frvbf
,cstb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6813 #define FLD(f) abuf->fields.sfmt_cswap.f
6814 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6815 int UNUSED written
= 0;
6816 IADDR UNUSED pc
= abuf
->addr
;
6817 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6819 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6820 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
)));
6827 /* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6830 SEM_FN_NAME (frvbf
,csth
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6832 #define FLD(f) abuf->fields.sfmt_cswap.f
6833 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6834 int UNUSED written
= 0;
6835 IADDR UNUSED pc
= abuf
->addr
;
6836 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6838 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6839 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
)));
6846 /* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6849 SEM_FN_NAME (frvbf
,cst
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6851 #define FLD(f) abuf->fields.sfmt_cswap.f
6852 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6853 int UNUSED written
= 0;
6854 IADDR UNUSED pc
= abuf
->addr
;
6855 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6857 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6858 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
)));
6865 /* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6868 SEM_FN_NAME (frvbf
,cstbf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6870 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6871 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6872 int UNUSED written
= 0;
6873 IADDR UNUSED pc
= abuf
->addr
;
6874 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6876 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6877 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
)));
6884 /* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6887 SEM_FN_NAME (frvbf
,csthf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6889 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6890 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6891 int UNUSED written
= 0;
6892 IADDR UNUSED pc
= abuf
->addr
;
6893 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6895 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6896 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
)));
6903 /* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6906 SEM_FN_NAME (frvbf
,cstf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6908 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6909 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6910 int UNUSED written
= 0;
6911 IADDR UNUSED pc
= abuf
->addr
;
6912 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6914 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6915 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
)));
6922 /* cstd: cstd$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
6925 SEM_FN_NAME (frvbf
,cstd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6927 #define FLD(f) abuf->fields.sfmt_cstdu.f
6928 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6929 int UNUSED written
= 0;
6930 IADDR UNUSED pc
= abuf
->addr
;
6931 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6933 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6937 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6938 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE (FLD (f_GRk
)));
6947 /* cstdf: cstdf$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
6950 SEM_FN_NAME (frvbf
,cstdf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6952 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6953 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6954 int UNUSED written
= 0;
6955 IADDR UNUSED pc
= abuf
->addr
;
6956 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6958 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6962 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6963 frvbf_write_mem_DF (current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE (FLD (f_FRk
)));
6972 /* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6975 SEM_FN_NAME (frvbf
,cstq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6977 #define FLD(f) abuf->fields.sfmt_cswap.f
6978 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6979 int UNUSED written
= 0;
6980 IADDR UNUSED pc
= abuf
->addr
;
6981 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6983 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6987 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6988 frvbf_store_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
6997 /* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7000 SEM_FN_NAME (frvbf
,cstbu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7002 #define FLD(f) abuf->fields.sfmt_cstbu.f
7003 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7004 int UNUSED written
= 0;
7005 IADDR UNUSED pc
= abuf
->addr
;
7006 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7008 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7011 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7012 frvbf_write_mem_QI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
7014 SI opval
= tmp_address
;
7015 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7016 written
|= (1 << 6);
7017 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7022 abuf
->written
= written
;
7027 /* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7030 SEM_FN_NAME (frvbf
,csthu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7032 #define FLD(f) abuf->fields.sfmt_cstbu.f
7033 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7034 int UNUSED written
= 0;
7035 IADDR UNUSED pc
= abuf
->addr
;
7036 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7038 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7041 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7042 frvbf_write_mem_HI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
7044 SI opval
= tmp_address
;
7045 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7046 written
|= (1 << 6);
7047 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7052 abuf
->written
= written
;
7057 /* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7060 SEM_FN_NAME (frvbf
,cstu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7062 #define FLD(f) abuf->fields.sfmt_cstbu.f
7063 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7064 int UNUSED written
= 0;
7065 IADDR UNUSED pc
= abuf
->addr
;
7066 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7068 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7071 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7072 frvbf_write_mem_SI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
7074 SI opval
= tmp_address
;
7075 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7076 written
|= (1 << 6);
7077 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7082 abuf
->written
= written
;
7087 /* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7090 SEM_FN_NAME (frvbf
,cstbfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7092 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7093 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7094 int UNUSED written
= 0;
7095 IADDR UNUSED pc
= abuf
->addr
;
7096 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7098 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7101 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7102 frvbf_write_mem_QI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
7104 SI opval
= tmp_address
;
7105 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7106 written
|= (1 << 6);
7107 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7112 abuf
->written
= written
;
7117 /* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7120 SEM_FN_NAME (frvbf
,csthfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7122 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7123 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7124 int UNUSED written
= 0;
7125 IADDR UNUSED pc
= abuf
->addr
;
7126 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7128 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7131 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7132 frvbf_write_mem_HI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
7134 SI opval
= tmp_address
;
7135 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7136 written
|= (1 << 6);
7137 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7142 abuf
->written
= written
;
7147 /* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7150 SEM_FN_NAME (frvbf
,cstfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7152 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7153 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7154 int UNUSED written
= 0;
7155 IADDR UNUSED pc
= abuf
->addr
;
7156 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7158 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7161 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7162 frvbf_write_mem_SI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
7164 SI opval
= tmp_address
;
7165 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7166 written
|= (1 << 6);
7167 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7172 abuf
->written
= written
;
7177 /* cstdu: cstdu$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
7180 SEM_FN_NAME (frvbf
,cstdu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7182 #define FLD(f) abuf->fields.sfmt_cstdu.f
7183 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7184 int UNUSED written
= 0;
7185 IADDR UNUSED pc
= abuf
->addr
;
7186 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7188 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7192 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7193 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE (FLD (f_GRk
)));
7196 SI opval
= tmp_address
;
7197 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7198 written
|= (1 << 6);
7199 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7204 abuf
->written
= written
;
7209 /* cstdfu: cstdfu$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
7212 SEM_FN_NAME (frvbf
,cstdfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7214 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7215 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7216 int UNUSED written
= 0;
7217 IADDR UNUSED pc
= abuf
->addr
;
7218 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7220 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7224 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7225 frvbf_write_mem_DF (current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE (FLD (f_FRk
)));
7228 SI opval
= tmp_address
;
7229 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7230 written
|= (1 << 6);
7231 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7236 abuf
->written
= written
;
7241 /* stbi: stbi$pack $GRk,@($GRi,$d12) */
7244 SEM_FN_NAME (frvbf
,stbi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7246 #define FLD(f) abuf->fields.sfmt_swapi.f
7247 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7248 int UNUSED written
= 0;
7249 IADDR UNUSED pc
= abuf
->addr
;
7250 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7252 frvbf_write_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), GET_H_GR (FLD (f_GRk
)));
7258 /* sthi: sthi$pack $GRk,@($GRi,$d12) */
7261 SEM_FN_NAME (frvbf
,sthi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7263 #define FLD(f) abuf->fields.sfmt_swapi.f
7264 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7265 int UNUSED written
= 0;
7266 IADDR UNUSED pc
= abuf
->addr
;
7267 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7269 frvbf_write_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), GET_H_GR (FLD (f_GRk
)));
7275 /* sti: sti$pack $GRk,@($GRi,$d12) */
7278 SEM_FN_NAME (frvbf
,sti
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7280 #define FLD(f) abuf->fields.sfmt_swapi.f
7281 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7282 int UNUSED written
= 0;
7283 IADDR UNUSED pc
= abuf
->addr
;
7284 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7286 frvbf_write_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), GET_H_GR (FLD (f_GRk
)));
7292 /* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7295 SEM_FN_NAME (frvbf
,stbfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7297 #define FLD(f) abuf->fields.sfmt_stbfi.f
7298 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7299 int UNUSED written
= 0;
7300 IADDR UNUSED pc
= abuf
->addr
;
7301 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7303 frvbf_write_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), GET_H_FR_INT (FLD (f_FRk
)));
7309 /* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7312 SEM_FN_NAME (frvbf
,sthfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7314 #define FLD(f) abuf->fields.sfmt_stbfi.f
7315 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7316 int UNUSED written
= 0;
7317 IADDR UNUSED pc
= abuf
->addr
;
7318 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7320 frvbf_write_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), GET_H_FR_INT (FLD (f_FRk
)));
7326 /* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7329 SEM_FN_NAME (frvbf
,stfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7331 #define FLD(f) abuf->fields.sfmt_stbfi.f
7332 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7333 int UNUSED written
= 0;
7334 IADDR UNUSED pc
= abuf
->addr
;
7335 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7337 frvbf_write_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), GET_H_FR_INT (FLD (f_FRk
)));
7343 /* stdi: stdi$pack $GRdoublek,@($GRi,$d12) */
7346 SEM_FN_NAME (frvbf
,stdi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7348 #define FLD(f) abuf->fields.sfmt_stdi.f
7349 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7350 int UNUSED written
= 0;
7351 IADDR UNUSED pc
= abuf
->addr
;
7352 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7357 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
7358 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE (FLD (f_GRk
)));
7366 /* stdfi: stdfi$pack $FRdoublek,@($GRi,$d12) */
7369 SEM_FN_NAME (frvbf
,stdfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7371 #define FLD(f) abuf->fields.sfmt_stdfi.f
7372 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7373 int UNUSED written
= 0;
7374 IADDR UNUSED pc
= abuf
->addr
;
7375 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7380 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
7381 frvbf_write_mem_DF (current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE (FLD (f_FRk
)));
7389 /* stqi: stqi$pack $GRk,@($GRi,$d12) */
7392 SEM_FN_NAME (frvbf
,stqi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7394 #define FLD(f) abuf->fields.sfmt_stdi.f
7395 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7396 int UNUSED written
= 0;
7397 IADDR UNUSED pc
= abuf
->addr
;
7398 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7403 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
7404 frvbf_store_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
7412 /* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7415 SEM_FN_NAME (frvbf
,stqfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7417 #define FLD(f) abuf->fields.sfmt_stdfi.f
7418 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7419 int UNUSED written
= 0;
7420 IADDR UNUSED pc
= abuf
->addr
;
7421 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7426 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
7427 frvbf_store_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
7435 /* swap: swap$pack @($GRi,$GRj),$GRk */
7438 SEM_FN_NAME (frvbf
,swap
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7440 #define FLD(f) abuf->fields.sfmt_cswap.f
7441 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7442 int UNUSED written
= 0;
7443 IADDR UNUSED pc
= abuf
->addr
;
7444 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7449 tmp_tmp
= GET_H_GR (FLD (f_GRk
));
7450 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7451 frvbf_check_swap_address (current_cpu
, tmp_address
);
7453 SI opval
= frvbf_read_mem_WI (current_cpu
, pc
, tmp_address
);
7454 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
7455 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7457 frvbf_write_mem_WI (current_cpu
, pc
, tmp_address
, tmp_tmp
);
7464 /* swapi: swapi$pack @($GRi,$d12),$GRk */
7467 SEM_FN_NAME (frvbf
,swapi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7469 #define FLD(f) abuf->fields.sfmt_swapi.f
7470 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7471 int UNUSED written
= 0;
7472 IADDR UNUSED pc
= abuf
->addr
;
7473 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7478 tmp_tmp
= GET_H_GR (FLD (f_GRk
));
7479 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
7480 frvbf_check_swap_address (current_cpu
, tmp_address
);
7482 SI opval
= frvbf_read_mem_WI (current_cpu
, pc
, tmp_address
);
7483 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
7484 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7486 frvbf_write_mem_WI (current_cpu
, pc
, tmp_address
, tmp_tmp
);
7493 /* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7496 SEM_FN_NAME (frvbf
,cswap
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7498 #define FLD(f) abuf->fields.sfmt_cswap.f
7499 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7500 int UNUSED written
= 0;
7501 IADDR UNUSED pc
= abuf
->addr
;
7502 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7504 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7508 tmp_tmp
= GET_H_GR (FLD (f_GRk
));
7509 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7510 frvbf_check_swap_address (current_cpu
, tmp_address
);
7512 SI opval
= frvbf_read_mem_WI (current_cpu
, pc
, tmp_address
);
7513 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
7514 written
|= (1 << 6);
7515 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7517 frvbf_write_mem_WI (current_cpu
, pc
, tmp_address
, tmp_tmp
);
7521 abuf
->written
= written
;
7526 /* movgf: movgf$pack $GRj,$FRintk */
7529 SEM_FN_NAME (frvbf
,movgf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7531 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7532 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7533 int UNUSED written
= 0;
7534 IADDR UNUSED pc
= abuf
->addr
;
7535 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7538 SI opval
= GET_H_GR (FLD (f_GRj
));
7539 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
7540 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7547 /* movfg: movfg$pack $FRintk,$GRj */
7550 SEM_FN_NAME (frvbf
,movfg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7552 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7553 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7554 int UNUSED written
= 0;
7555 IADDR UNUSED pc
= abuf
->addr
;
7556 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7559 SI opval
= GET_H_FR_INT (FLD (f_FRk
));
7560 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRj
), opval
);
7561 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7568 /* movgfd: movgfd$pack $GRj,$FRintk */
7571 SEM_FN_NAME (frvbf
,movgfd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7573 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7574 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7575 int UNUSED written
= 0;
7576 IADDR UNUSED pc
= abuf
->addr
;
7577 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7579 if (EQSI (FLD (f_GRj
), 0)) {
7583 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
7584 written
|= (1 << 4);
7585 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7589 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ADDSI (FLD (f_FRk
), 1), opval
);
7590 written
|= (1 << 5);
7591 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7597 SI opval
= GET_H_GR (FLD (f_GRj
));
7598 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
7599 written
|= (1 << 4);
7600 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7603 USI opval
= GET_H_GR (ADDSI (FLD (f_GRj
), 1));
7604 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ADDSI (FLD (f_FRk
), 1), opval
);
7605 written
|= (1 << 5);
7606 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7611 abuf
->written
= written
;
7616 /* movfgd: movfgd$pack $FRintk,$GRj */
7619 SEM_FN_NAME (frvbf
,movfgd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7621 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7622 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7623 int UNUSED written
= 0;
7624 IADDR UNUSED pc
= abuf
->addr
;
7625 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7627 if (NESI (FLD (f_GRj
), 0)) {
7630 SI opval
= GET_H_FR_INT (FLD (f_FRk
));
7631 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRj
), opval
);
7632 written
|= (1 << 4);
7633 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7636 USI opval
= GET_H_FR_INT (ADDSI (FLD (f_FRk
), 1));
7637 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, ADDSI (FLD (f_GRj
), 1), opval
);
7638 written
|= (1 << 5);
7639 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7644 abuf
->written
= written
;
7649 /* movgfq: movgfq$pack $GRj,$FRintk */
7652 SEM_FN_NAME (frvbf
,movgfq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7654 #define FLD(f) abuf->fields.sfmt_movgfq.f
7655 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7656 int UNUSED written
= 0;
7657 IADDR UNUSED pc
= abuf
->addr
;
7658 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7660 if (EQSI (FLD (f_GRj
), 0)) {
7664 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
7665 written
|= (1 << 6);
7666 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7670 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ADDSI (FLD (f_FRk
), 1), opval
);
7671 written
|= (1 << 7);
7672 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7676 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ADDSI (FLD (f_FRk
), 2), opval
);
7677 written
|= (1 << 8);
7678 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7682 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ADDSI (FLD (f_FRk
), 3), opval
);
7683 written
|= (1 << 9);
7684 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7690 SI opval
= GET_H_GR (FLD (f_GRj
));
7691 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
7692 written
|= (1 << 6);
7693 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7696 USI opval
= GET_H_GR (ADDSI (FLD (f_GRj
), 1));
7697 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ADDSI (FLD (f_FRk
), 1), opval
);
7698 written
|= (1 << 7);
7699 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7702 USI opval
= GET_H_GR (ADDSI (FLD (f_GRj
), 2));
7703 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ADDSI (FLD (f_FRk
), 2), opval
);
7704 written
|= (1 << 8);
7705 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7708 USI opval
= GET_H_GR (ADDSI (FLD (f_GRj
), 3));
7709 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ADDSI (FLD (f_FRk
), 3), opval
);
7710 written
|= (1 << 9);
7711 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7716 abuf
->written
= written
;
7721 /* movfgq: movfgq$pack $FRintk,$GRj */
7724 SEM_FN_NAME (frvbf
,movfgq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7726 #define FLD(f) abuf->fields.sfmt_movfgq.f
7727 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7728 int UNUSED written
= 0;
7729 IADDR UNUSED pc
= abuf
->addr
;
7730 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7732 if (NESI (FLD (f_GRj
), 0)) {
7735 SI opval
= GET_H_FR_INT (FLD (f_FRk
));
7736 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRj
), opval
);
7737 written
|= (1 << 6);
7738 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7741 USI opval
= GET_H_FR_INT (ADDSI (FLD (f_FRk
), 1));
7742 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, ADDSI (FLD (f_GRj
), 1), opval
);
7743 written
|= (1 << 7);
7744 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7747 USI opval
= GET_H_FR_INT (ADDSI (FLD (f_FRk
), 2));
7748 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, ADDSI (FLD (f_GRj
), 2), opval
);
7749 written
|= (1 << 8);
7750 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7753 USI opval
= GET_H_FR_INT (ADDSI (FLD (f_FRk
), 3));
7754 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, ADDSI (FLD (f_GRj
), 3), opval
);
7755 written
|= (1 << 9);
7756 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7761 abuf
->written
= written
;
7766 /* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
7769 SEM_FN_NAME (frvbf
,cmovgf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7771 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7772 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7773 int UNUSED written
= 0;
7774 IADDR UNUSED pc
= abuf
->addr
;
7775 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7777 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7779 SI opval
= GET_H_GR (FLD (f_GRj
));
7780 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
7781 written
|= (1 << 3);
7782 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7786 abuf
->written
= written
;
7791 /* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
7794 SEM_FN_NAME (frvbf
,cmovfg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7796 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7797 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7798 int UNUSED written
= 0;
7799 IADDR UNUSED pc
= abuf
->addr
;
7800 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7802 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7804 SI opval
= GET_H_FR_INT (FLD (f_FRk
));
7805 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRj
), opval
);
7806 written
|= (1 << 3);
7807 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7811 abuf
->written
= written
;
7816 /* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
7819 SEM_FN_NAME (frvbf
,cmovgfd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7821 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7822 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7823 int UNUSED written
= 0;
7824 IADDR UNUSED pc
= abuf
->addr
;
7825 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7827 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7828 if (EQSI (FLD (f_GRj
), 0)) {
7832 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
7833 written
|= (1 << 6);
7834 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7838 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ADDSI (FLD (f_FRk
), 1), opval
);
7839 written
|= (1 << 7);
7840 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7846 SI opval
= GET_H_GR (FLD (f_GRj
));
7847 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
7848 written
|= (1 << 6);
7849 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7852 USI opval
= GET_H_GR (ADDSI (FLD (f_GRj
), 1));
7853 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ADDSI (FLD (f_FRk
), 1), opval
);
7854 written
|= (1 << 7);
7855 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7861 abuf
->written
= written
;
7866 /* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
7869 SEM_FN_NAME (frvbf
,cmovfgd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7871 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7872 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7873 int UNUSED written
= 0;
7874 IADDR UNUSED pc
= abuf
->addr
;
7875 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7877 if (ANDIF (NESI (FLD (f_GRj
), 0), EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2)))) {
7880 SI opval
= GET_H_FR_INT (FLD (f_FRk
));
7881 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRj
), opval
);
7882 written
|= (1 << 6);
7883 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7886 USI opval
= GET_H_FR_INT (ADDSI (FLD (f_FRk
), 1));
7887 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, ADDSI (FLD (f_GRj
), 1), opval
);
7888 written
|= (1 << 7);
7889 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7894 abuf
->written
= written
;
7899 /* movgs: movgs$pack $GRj,$spr */
7902 SEM_FN_NAME (frvbf
,movgs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7904 #define FLD(f) abuf->fields.sfmt_movgs.f
7905 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7906 int UNUSED written
= 0;
7907 IADDR UNUSED pc
= abuf
->addr
;
7908 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7911 USI opval
= GET_H_GR (FLD (f_GRj
));
7912 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, FLD (f_spr
), opval
);
7913 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
7920 /* movsg: movsg$pack $spr,$GRj */
7923 SEM_FN_NAME (frvbf
,movsg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7925 #define FLD(f) abuf->fields.sfmt_movsg.f
7926 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7927 int UNUSED written
= 0;
7928 IADDR UNUSED pc
= abuf
->addr
;
7929 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7932 SI opval
= GET_H_SPR (FLD (f_spr
));
7933 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRj
), opval
);
7934 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7941 /* bra: bra$pack $hint_taken$label16 */
7944 SEM_FN_NAME (frvbf
,bra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7946 #define FLD(f) abuf->fields.sfmt_fbne.f
7947 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7948 int UNUSED written
= 0;
7949 IADDR UNUSED pc
= abuf
->addr
;
7950 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7953 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
7955 USI opval
= FLD (i_label16
);
7956 sim_queue_pc_write (current_cpu
, opval
);
7957 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
7965 /* bno: bno$pack$hint_not_taken */
7968 SEM_FN_NAME (frvbf
,bno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7970 #define FLD(f) abuf->fields.sfmt_fbne.f
7971 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7972 int UNUSED written
= 0;
7973 IADDR UNUSED pc
= abuf
->addr
;
7974 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7976 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
7982 /* beq: beq$pack $ICCi_2,$hint,$label16 */
7985 SEM_FN_NAME (frvbf
,beq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7987 #define FLD(f) abuf->fields.sfmt_beq.f
7988 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7989 int UNUSED written
= 0;
7990 IADDR UNUSED pc
= abuf
->addr
;
7991 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7994 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
7995 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))) {
7997 USI opval
= FLD (i_label16
);
7998 sim_queue_pc_write (current_cpu
, opval
);
7999 written
|= (1 << 3);
8000 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8005 abuf
->written
= written
;
8010 /* bne: bne$pack $ICCi_2,$hint,$label16 */
8013 SEM_FN_NAME (frvbf
,bne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8015 #define FLD(f) abuf->fields.sfmt_beq.f
8016 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8017 int UNUSED written
= 0;
8018 IADDR UNUSED pc
= abuf
->addr
;
8019 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8022 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8023 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
8025 USI opval
= FLD (i_label16
);
8026 sim_queue_pc_write (current_cpu
, opval
);
8027 written
|= (1 << 3);
8028 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8033 abuf
->written
= written
;
8038 /* ble: ble$pack $ICCi_2,$hint,$label16 */
8041 SEM_FN_NAME (frvbf
,ble
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8043 #define FLD(f) abuf->fields.sfmt_beq.f
8044 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8045 int UNUSED written
= 0;
8046 IADDR UNUSED pc
= abuf
->addr
;
8047 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8050 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8051 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))))) {
8053 USI opval
= FLD (i_label16
);
8054 sim_queue_pc_write (current_cpu
, opval
);
8055 written
|= (1 << 3);
8056 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8061 abuf
->written
= written
;
8066 /* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8069 SEM_FN_NAME (frvbf
,bgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8071 #define FLD(f) abuf->fields.sfmt_beq.f
8072 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8073 int UNUSED written
= 0;
8074 IADDR UNUSED pc
= abuf
->addr
;
8075 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8078 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8079 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)))))) {
8081 USI opval
= FLD (i_label16
);
8082 sim_queue_pc_write (current_cpu
, opval
);
8083 written
|= (1 << 3);
8084 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8089 abuf
->written
= written
;
8094 /* blt: blt$pack $ICCi_2,$hint,$label16 */
8097 SEM_FN_NAME (frvbf
,blt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8099 #define FLD(f) abuf->fields.sfmt_beq.f
8100 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8101 int UNUSED written
= 0;
8102 IADDR UNUSED pc
= abuf
->addr
;
8103 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8106 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8107 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)))) {
8109 USI opval
= FLD (i_label16
);
8110 sim_queue_pc_write (current_cpu
, opval
);
8111 written
|= (1 << 3);
8112 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8117 abuf
->written
= written
;
8122 /* bge: bge$pack $ICCi_2,$hint,$label16 */
8125 SEM_FN_NAME (frvbf
,bge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8127 #define FLD(f) abuf->fields.sfmt_beq.f
8128 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8129 int UNUSED written
= 0;
8130 IADDR UNUSED pc
= abuf
->addr
;
8131 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8134 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8135 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))))) {
8137 USI opval
= FLD (i_label16
);
8138 sim_queue_pc_write (current_cpu
, opval
);
8139 written
|= (1 << 3);
8140 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8145 abuf
->written
= written
;
8150 /* bls: bls$pack $ICCi_2,$hint,$label16 */
8153 SEM_FN_NAME (frvbf
,bls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8155 #define FLD(f) abuf->fields.sfmt_beq.f
8156 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8157 int UNUSED written
= 0;
8158 IADDR UNUSED pc
= abuf
->addr
;
8159 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8162 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8163 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
8165 USI opval
= FLD (i_label16
);
8166 sim_queue_pc_write (current_cpu
, opval
);
8167 written
|= (1 << 3);
8168 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8173 abuf
->written
= written
;
8178 /* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8181 SEM_FN_NAME (frvbf
,bhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8183 #define FLD(f) abuf->fields.sfmt_beq.f
8184 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8185 int UNUSED written
= 0;
8186 IADDR UNUSED pc
= abuf
->addr
;
8187 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8190 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8191 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))))) {
8193 USI opval
= FLD (i_label16
);
8194 sim_queue_pc_write (current_cpu
, opval
);
8195 written
|= (1 << 3);
8196 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8201 abuf
->written
= written
;
8206 /* bc: bc$pack $ICCi_2,$hint,$label16 */
8209 SEM_FN_NAME (frvbf
,bc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8211 #define FLD(f) abuf->fields.sfmt_beq.f
8212 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8213 int UNUSED written
= 0;
8214 IADDR UNUSED pc
= abuf
->addr
;
8215 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8218 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8219 if (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1))) {
8221 USI opval
= FLD (i_label16
);
8222 sim_queue_pc_write (current_cpu
, opval
);
8223 written
|= (1 << 3);
8224 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8229 abuf
->written
= written
;
8234 /* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8237 SEM_FN_NAME (frvbf
,bnc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8239 #define FLD(f) abuf->fields.sfmt_beq.f
8240 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8241 int UNUSED written
= 0;
8242 IADDR UNUSED pc
= abuf
->addr
;
8243 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8246 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8247 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)))) {
8249 USI opval
= FLD (i_label16
);
8250 sim_queue_pc_write (current_cpu
, opval
);
8251 written
|= (1 << 3);
8252 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8257 abuf
->written
= written
;
8262 /* bn: bn$pack $ICCi_2,$hint,$label16 */
8265 SEM_FN_NAME (frvbf
,bn
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8267 #define FLD(f) abuf->fields.sfmt_beq.f
8268 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8269 int UNUSED written
= 0;
8270 IADDR UNUSED pc
= abuf
->addr
;
8271 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8274 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8275 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3))) {
8277 USI opval
= FLD (i_label16
);
8278 sim_queue_pc_write (current_cpu
, opval
);
8279 written
|= (1 << 3);
8280 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8285 abuf
->written
= written
;
8290 /* bp: bp$pack $ICCi_2,$hint,$label16 */
8293 SEM_FN_NAME (frvbf
,bp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8295 #define FLD(f) abuf->fields.sfmt_beq.f
8296 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8297 int UNUSED written
= 0;
8298 IADDR UNUSED pc
= abuf
->addr
;
8299 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8302 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8303 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)))) {
8305 USI opval
= FLD (i_label16
);
8306 sim_queue_pc_write (current_cpu
, opval
);
8307 written
|= (1 << 3);
8308 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8313 abuf
->written
= written
;
8318 /* bv: bv$pack $ICCi_2,$hint,$label16 */
8321 SEM_FN_NAME (frvbf
,bv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8323 #define FLD(f) abuf->fields.sfmt_beq.f
8324 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8325 int UNUSED written
= 0;
8326 IADDR UNUSED pc
= abuf
->addr
;
8327 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8330 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8331 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))) {
8333 USI opval
= FLD (i_label16
);
8334 sim_queue_pc_write (current_cpu
, opval
);
8335 written
|= (1 << 3);
8336 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8341 abuf
->written
= written
;
8346 /* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8349 SEM_FN_NAME (frvbf
,bnv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8351 #define FLD(f) abuf->fields.sfmt_beq.f
8352 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8353 int UNUSED written
= 0;
8354 IADDR UNUSED pc
= abuf
->addr
;
8355 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8358 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8359 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
8361 USI opval
= FLD (i_label16
);
8362 sim_queue_pc_write (current_cpu
, opval
);
8363 written
|= (1 << 3);
8364 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8369 abuf
->written
= written
;
8374 /* fbra: fbra$pack $hint_taken$label16 */
8377 SEM_FN_NAME (frvbf
,fbra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8379 #define FLD(f) abuf->fields.sfmt_fbne.f
8380 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8381 int UNUSED written
= 0;
8382 IADDR UNUSED pc
= abuf
->addr
;
8383 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8386 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8388 USI opval
= FLD (i_label16
);
8389 sim_queue_pc_write (current_cpu
, opval
);
8390 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8398 /* fbno: fbno$pack$hint_not_taken */
8401 SEM_FN_NAME (frvbf
,fbno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8403 #define FLD(f) abuf->fields.sfmt_fbne.f
8404 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8405 int UNUSED written
= 0;
8406 IADDR UNUSED pc
= abuf
->addr
;
8407 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8409 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8415 /* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8418 SEM_FN_NAME (frvbf
,fbne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8420 #define FLD(f) abuf->fields.sfmt_fbne.f
8421 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8422 int UNUSED written
= 0;
8423 IADDR UNUSED pc
= abuf
->addr
;
8424 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8427 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8428 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))))) {
8430 USI opval
= FLD (i_label16
);
8431 sim_queue_pc_write (current_cpu
, opval
);
8432 written
|= (1 << 3);
8433 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8438 abuf
->written
= written
;
8443 /* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8446 SEM_FN_NAME (frvbf
,fbeq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8448 #define FLD(f) abuf->fields.sfmt_fbne.f
8449 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8450 int UNUSED written
= 0;
8451 IADDR UNUSED pc
= abuf
->addr
;
8452 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8455 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8456 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3))) {
8458 USI opval
= FLD (i_label16
);
8459 sim_queue_pc_write (current_cpu
, opval
);
8460 written
|= (1 << 3);
8461 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8466 abuf
->written
= written
;
8471 /* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8474 SEM_FN_NAME (frvbf
,fblg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8476 #define FLD(f) abuf->fields.sfmt_fbne.f
8477 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8478 int UNUSED written
= 0;
8479 IADDR UNUSED pc
= abuf
->addr
;
8480 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8483 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8484 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)))) {
8486 USI opval
= FLD (i_label16
);
8487 sim_queue_pc_write (current_cpu
, opval
);
8488 written
|= (1 << 3);
8489 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8494 abuf
->written
= written
;
8499 /* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8502 SEM_FN_NAME (frvbf
,fbue
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8504 #define FLD(f) abuf->fields.sfmt_fbne.f
8505 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8506 int UNUSED written
= 0;
8507 IADDR UNUSED pc
= abuf
->addr
;
8508 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8511 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8512 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
8514 USI opval
= FLD (i_label16
);
8515 sim_queue_pc_write (current_cpu
, opval
);
8516 written
|= (1 << 3);
8517 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8522 abuf
->written
= written
;
8527 /* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8530 SEM_FN_NAME (frvbf
,fbul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8532 #define FLD(f) abuf->fields.sfmt_fbne.f
8533 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8534 int UNUSED written
= 0;
8535 IADDR UNUSED pc
= abuf
->addr
;
8536 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8539 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8540 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
8542 USI opval
= FLD (i_label16
);
8543 sim_queue_pc_write (current_cpu
, opval
);
8544 written
|= (1 << 3);
8545 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8550 abuf
->written
= written
;
8555 /* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8558 SEM_FN_NAME (frvbf
,fbge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8560 #define FLD(f) abuf->fields.sfmt_fbne.f
8561 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8562 int UNUSED written
= 0;
8563 IADDR UNUSED pc
= abuf
->addr
;
8564 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8567 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8568 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)))) {
8570 USI opval
= FLD (i_label16
);
8571 sim_queue_pc_write (current_cpu
, opval
);
8572 written
|= (1 << 3);
8573 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8578 abuf
->written
= written
;
8583 /* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8586 SEM_FN_NAME (frvbf
,fblt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8588 #define FLD(f) abuf->fields.sfmt_fbne.f
8589 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8590 int UNUSED written
= 0;
8591 IADDR UNUSED pc
= abuf
->addr
;
8592 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8595 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8596 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2))) {
8598 USI opval
= FLD (i_label16
);
8599 sim_queue_pc_write (current_cpu
, opval
);
8600 written
|= (1 << 3);
8601 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8606 abuf
->written
= written
;
8611 /* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8614 SEM_FN_NAME (frvbf
,fbuge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8616 #define FLD(f) abuf->fields.sfmt_fbne.f
8617 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8618 int UNUSED written
= 0;
8619 IADDR UNUSED pc
= abuf
->addr
;
8620 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8623 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8624 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))))) {
8626 USI opval
= FLD (i_label16
);
8627 sim_queue_pc_write (current_cpu
, opval
);
8628 written
|= (1 << 3);
8629 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8634 abuf
->written
= written
;
8639 /* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8642 SEM_FN_NAME (frvbf
,fbug
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8644 #define FLD(f) abuf->fields.sfmt_fbne.f
8645 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8646 int UNUSED written
= 0;
8647 IADDR UNUSED pc
= abuf
->addr
;
8648 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8651 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8652 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
8654 USI opval
= FLD (i_label16
);
8655 sim_queue_pc_write (current_cpu
, opval
);
8656 written
|= (1 << 3);
8657 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8662 abuf
->written
= written
;
8667 /* fble: fble$pack $FCCi_2,$hint,$label16 */
8670 SEM_FN_NAME (frvbf
,fble
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8672 #define FLD(f) abuf->fields.sfmt_fbne.f
8673 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8674 int UNUSED written
= 0;
8675 IADDR UNUSED pc
= abuf
->addr
;
8676 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8679 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8680 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)))) {
8682 USI opval
= FLD (i_label16
);
8683 sim_queue_pc_write (current_cpu
, opval
);
8684 written
|= (1 << 3);
8685 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8690 abuf
->written
= written
;
8695 /* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8698 SEM_FN_NAME (frvbf
,fbgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8700 #define FLD(f) abuf->fields.sfmt_fbne.f
8701 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8702 int UNUSED written
= 0;
8703 IADDR UNUSED pc
= abuf
->addr
;
8704 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8707 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8708 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))) {
8710 USI opval
= FLD (i_label16
);
8711 sim_queue_pc_write (current_cpu
, opval
);
8712 written
|= (1 << 3);
8713 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8718 abuf
->written
= written
;
8723 /* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8726 SEM_FN_NAME (frvbf
,fbule
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8728 #define FLD(f) abuf->fields.sfmt_fbne.f
8729 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8730 int UNUSED written
= 0;
8731 IADDR UNUSED pc
= abuf
->addr
;
8732 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8735 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8736 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))))) {
8738 USI opval
= FLD (i_label16
);
8739 sim_queue_pc_write (current_cpu
, opval
);
8740 written
|= (1 << 3);
8741 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8746 abuf
->written
= written
;
8751 /* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8754 SEM_FN_NAME (frvbf
,fbu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8756 #define FLD(f) abuf->fields.sfmt_fbne.f
8757 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8758 int UNUSED written
= 0;
8759 IADDR UNUSED pc
= abuf
->addr
;
8760 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8763 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8764 if (TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))) {
8766 USI opval
= FLD (i_label16
);
8767 sim_queue_pc_write (current_cpu
, opval
);
8768 written
|= (1 << 3);
8769 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8774 abuf
->written
= written
;
8779 /* fbo: fbo$pack $FCCi_2,$hint,$label16 */
8782 SEM_FN_NAME (frvbf
,fbo
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8784 #define FLD(f) abuf->fields.sfmt_fbne.f
8785 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8786 int UNUSED written
= 0;
8787 IADDR UNUSED pc
= abuf
->addr
;
8788 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8791 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8792 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))))) {
8794 USI opval
= FLD (i_label16
);
8795 sim_queue_pc_write (current_cpu
, opval
);
8796 written
|= (1 << 3);
8797 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8802 abuf
->written
= written
;
8807 /* bctrlr: bctrlr$pack $ccond,$hint */
8810 SEM_FN_NAME (frvbf
,bctrlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8812 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8813 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8814 int UNUSED written
= 0;
8815 IADDR UNUSED pc
= abuf
->addr
;
8816 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8819 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
8822 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
8824 USI opval
= tmp_tmp
;
8825 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
8826 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
8828 if (EQSI (FLD (f_ccond
), 0)) {
8829 if (NESI (tmp_tmp
, 0)) {
8831 USI opval
= GET_H_SPR (((UINT
) 272));
8832 sim_queue_pc_write (current_cpu
, opval
);
8833 written
|= (1 << 5);
8834 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8838 if (EQSI (tmp_tmp
, 0)) {
8840 USI opval
= GET_H_SPR (((UINT
) 272));
8841 sim_queue_pc_write (current_cpu
, opval
);
8842 written
|= (1 << 5);
8843 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8850 abuf
->written
= written
;
8855 /* bralr: bralr$pack$hint_taken */
8858 SEM_FN_NAME (frvbf
,bralr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8860 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8861 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8862 int UNUSED written
= 0;
8863 IADDR UNUSED pc
= abuf
->addr
;
8864 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8867 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
8869 USI opval
= GET_H_SPR (((UINT
) 272));
8870 sim_queue_pc_write (current_cpu
, opval
);
8871 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8879 /* bnolr: bnolr$pack$hint_not_taken */
8882 SEM_FN_NAME (frvbf
,bnolr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8884 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8885 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8886 int UNUSED written
= 0;
8887 IADDR UNUSED pc
= abuf
->addr
;
8888 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8890 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
8896 /* beqlr: beqlr$pack $ICCi_2,$hint */
8899 SEM_FN_NAME (frvbf
,beqlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8901 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8902 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8903 int UNUSED written
= 0;
8904 IADDR UNUSED pc
= abuf
->addr
;
8905 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8908 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
8909 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))) {
8911 USI opval
= GET_H_SPR (((UINT
) 272));
8912 sim_queue_pc_write (current_cpu
, opval
);
8913 written
|= (1 << 3);
8914 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8919 abuf
->written
= written
;
8924 /* bnelr: bnelr$pack $ICCi_2,$hint */
8927 SEM_FN_NAME (frvbf
,bnelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8929 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8930 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8931 int UNUSED written
= 0;
8932 IADDR UNUSED pc
= abuf
->addr
;
8933 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8936 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
8937 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
8939 USI opval
= GET_H_SPR (((UINT
) 272));
8940 sim_queue_pc_write (current_cpu
, opval
);
8941 written
|= (1 << 3);
8942 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8947 abuf
->written
= written
;
8952 /* blelr: blelr$pack $ICCi_2,$hint */
8955 SEM_FN_NAME (frvbf
,blelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8957 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8958 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8959 int UNUSED written
= 0;
8960 IADDR UNUSED pc
= abuf
->addr
;
8961 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8964 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
8965 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))))) {
8967 USI opval
= GET_H_SPR (((UINT
) 272));
8968 sim_queue_pc_write (current_cpu
, opval
);
8969 written
|= (1 << 3);
8970 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8975 abuf
->written
= written
;
8980 /* bgtlr: bgtlr$pack $ICCi_2,$hint */
8983 SEM_FN_NAME (frvbf
,bgtlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8985 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8986 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8987 int UNUSED written
= 0;
8988 IADDR UNUSED pc
= abuf
->addr
;
8989 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8992 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
8993 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)))))) {
8995 USI opval
= GET_H_SPR (((UINT
) 272));
8996 sim_queue_pc_write (current_cpu
, opval
);
8997 written
|= (1 << 3);
8998 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9003 abuf
->written
= written
;
9008 /* bltlr: bltlr$pack $ICCi_2,$hint */
9011 SEM_FN_NAME (frvbf
,bltlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9013 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9014 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9015 int UNUSED written
= 0;
9016 IADDR UNUSED pc
= abuf
->addr
;
9017 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9020 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9021 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)))) {
9023 USI opval
= GET_H_SPR (((UINT
) 272));
9024 sim_queue_pc_write (current_cpu
, opval
);
9025 written
|= (1 << 3);
9026 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9031 abuf
->written
= written
;
9036 /* bgelr: bgelr$pack $ICCi_2,$hint */
9039 SEM_FN_NAME (frvbf
,bgelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9041 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9042 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9043 int UNUSED written
= 0;
9044 IADDR UNUSED pc
= abuf
->addr
;
9045 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9048 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9049 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))))) {
9051 USI opval
= GET_H_SPR (((UINT
) 272));
9052 sim_queue_pc_write (current_cpu
, opval
);
9053 written
|= (1 << 3);
9054 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9059 abuf
->written
= written
;
9064 /* blslr: blslr$pack $ICCi_2,$hint */
9067 SEM_FN_NAME (frvbf
,blslr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9069 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9070 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9071 int UNUSED written
= 0;
9072 IADDR UNUSED pc
= abuf
->addr
;
9073 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9076 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9077 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
9079 USI opval
= GET_H_SPR (((UINT
) 272));
9080 sim_queue_pc_write (current_cpu
, opval
);
9081 written
|= (1 << 3);
9082 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9087 abuf
->written
= written
;
9092 /* bhilr: bhilr$pack $ICCi_2,$hint */
9095 SEM_FN_NAME (frvbf
,bhilr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9097 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9098 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9099 int UNUSED written
= 0;
9100 IADDR UNUSED pc
= abuf
->addr
;
9101 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9104 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9105 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))))) {
9107 USI opval
= GET_H_SPR (((UINT
) 272));
9108 sim_queue_pc_write (current_cpu
, opval
);
9109 written
|= (1 << 3);
9110 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9115 abuf
->written
= written
;
9120 /* bclr: bclr$pack $ICCi_2,$hint */
9123 SEM_FN_NAME (frvbf
,bclr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9125 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9126 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9127 int UNUSED written
= 0;
9128 IADDR UNUSED pc
= abuf
->addr
;
9129 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9132 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9133 if (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1))) {
9135 USI opval
= GET_H_SPR (((UINT
) 272));
9136 sim_queue_pc_write (current_cpu
, opval
);
9137 written
|= (1 << 3);
9138 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9143 abuf
->written
= written
;
9148 /* bnclr: bnclr$pack $ICCi_2,$hint */
9151 SEM_FN_NAME (frvbf
,bnclr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9153 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9154 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9155 int UNUSED written
= 0;
9156 IADDR UNUSED pc
= abuf
->addr
;
9157 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9160 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9161 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)))) {
9163 USI opval
= GET_H_SPR (((UINT
) 272));
9164 sim_queue_pc_write (current_cpu
, opval
);
9165 written
|= (1 << 3);
9166 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9171 abuf
->written
= written
;
9176 /* bnlr: bnlr$pack $ICCi_2,$hint */
9179 SEM_FN_NAME (frvbf
,bnlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9181 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9182 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9183 int UNUSED written
= 0;
9184 IADDR UNUSED pc
= abuf
->addr
;
9185 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9188 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9189 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3))) {
9191 USI opval
= GET_H_SPR (((UINT
) 272));
9192 sim_queue_pc_write (current_cpu
, opval
);
9193 written
|= (1 << 3);
9194 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9199 abuf
->written
= written
;
9204 /* bplr: bplr$pack $ICCi_2,$hint */
9207 SEM_FN_NAME (frvbf
,bplr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9209 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9210 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9211 int UNUSED written
= 0;
9212 IADDR UNUSED pc
= abuf
->addr
;
9213 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9216 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9217 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)))) {
9219 USI opval
= GET_H_SPR (((UINT
) 272));
9220 sim_queue_pc_write (current_cpu
, opval
);
9221 written
|= (1 << 3);
9222 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9227 abuf
->written
= written
;
9232 /* bvlr: bvlr$pack $ICCi_2,$hint */
9235 SEM_FN_NAME (frvbf
,bvlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9237 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9238 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9239 int UNUSED written
= 0;
9240 IADDR UNUSED pc
= abuf
->addr
;
9241 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9244 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9245 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))) {
9247 USI opval
= GET_H_SPR (((UINT
) 272));
9248 sim_queue_pc_write (current_cpu
, opval
);
9249 written
|= (1 << 3);
9250 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9255 abuf
->written
= written
;
9260 /* bnvlr: bnvlr$pack $ICCi_2,$hint */
9263 SEM_FN_NAME (frvbf
,bnvlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9265 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9266 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9267 int UNUSED written
= 0;
9268 IADDR UNUSED pc
= abuf
->addr
;
9269 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9272 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9273 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
9275 USI opval
= GET_H_SPR (((UINT
) 272));
9276 sim_queue_pc_write (current_cpu
, opval
);
9277 written
|= (1 << 3);
9278 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9283 abuf
->written
= written
;
9288 /* fbralr: fbralr$pack$hint_taken */
9291 SEM_FN_NAME (frvbf
,fbralr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9293 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9294 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9295 int UNUSED written
= 0;
9296 IADDR UNUSED pc
= abuf
->addr
;
9297 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9300 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9302 USI opval
= GET_H_SPR (((UINT
) 272));
9303 sim_queue_pc_write (current_cpu
, opval
);
9304 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9312 /* fbnolr: fbnolr$pack$hint_not_taken */
9315 SEM_FN_NAME (frvbf
,fbnolr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9317 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9318 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9319 int UNUSED written
= 0;
9320 IADDR UNUSED pc
= abuf
->addr
;
9321 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9323 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9329 /* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9332 SEM_FN_NAME (frvbf
,fbeqlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9334 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9335 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9336 int UNUSED written
= 0;
9337 IADDR UNUSED pc
= abuf
->addr
;
9338 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9341 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9342 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3))) {
9344 USI opval
= GET_H_SPR (((UINT
) 272));
9345 sim_queue_pc_write (current_cpu
, opval
);
9346 written
|= (1 << 3);
9347 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9352 abuf
->written
= written
;
9357 /* fbnelr: fbnelr$pack $FCCi_2,$hint */
9360 SEM_FN_NAME (frvbf
,fbnelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9362 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9363 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9364 int UNUSED written
= 0;
9365 IADDR UNUSED pc
= abuf
->addr
;
9366 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9369 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9370 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))))) {
9372 USI opval
= GET_H_SPR (((UINT
) 272));
9373 sim_queue_pc_write (current_cpu
, opval
);
9374 written
|= (1 << 3);
9375 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9380 abuf
->written
= written
;
9385 /* fblglr: fblglr$pack $FCCi_2,$hint */
9388 SEM_FN_NAME (frvbf
,fblglr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9390 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9391 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9392 int UNUSED written
= 0;
9393 IADDR UNUSED pc
= abuf
->addr
;
9394 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9397 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9398 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)))) {
9400 USI opval
= GET_H_SPR (((UINT
) 272));
9401 sim_queue_pc_write (current_cpu
, opval
);
9402 written
|= (1 << 3);
9403 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9408 abuf
->written
= written
;
9413 /* fbuelr: fbuelr$pack $FCCi_2,$hint */
9416 SEM_FN_NAME (frvbf
,fbuelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9418 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9419 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9420 int UNUSED written
= 0;
9421 IADDR UNUSED pc
= abuf
->addr
;
9422 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9425 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9426 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
9428 USI opval
= GET_H_SPR (((UINT
) 272));
9429 sim_queue_pc_write (current_cpu
, opval
);
9430 written
|= (1 << 3);
9431 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9436 abuf
->written
= written
;
9441 /* fbullr: fbullr$pack $FCCi_2,$hint */
9444 SEM_FN_NAME (frvbf
,fbullr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9446 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9447 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9448 int UNUSED written
= 0;
9449 IADDR UNUSED pc
= abuf
->addr
;
9450 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9453 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9454 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
9456 USI opval
= GET_H_SPR (((UINT
) 272));
9457 sim_queue_pc_write (current_cpu
, opval
);
9458 written
|= (1 << 3);
9459 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9464 abuf
->written
= written
;
9469 /* fbgelr: fbgelr$pack $FCCi_2,$hint */
9472 SEM_FN_NAME (frvbf
,fbgelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9474 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9475 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9476 int UNUSED written
= 0;
9477 IADDR UNUSED pc
= abuf
->addr
;
9478 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9481 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9482 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)))) {
9484 USI opval
= GET_H_SPR (((UINT
) 272));
9485 sim_queue_pc_write (current_cpu
, opval
);
9486 written
|= (1 << 3);
9487 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9492 abuf
->written
= written
;
9497 /* fbltlr: fbltlr$pack $FCCi_2,$hint */
9500 SEM_FN_NAME (frvbf
,fbltlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9502 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9503 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9504 int UNUSED written
= 0;
9505 IADDR UNUSED pc
= abuf
->addr
;
9506 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9509 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9510 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2))) {
9512 USI opval
= GET_H_SPR (((UINT
) 272));
9513 sim_queue_pc_write (current_cpu
, opval
);
9514 written
|= (1 << 3);
9515 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9520 abuf
->written
= written
;
9525 /* fbugelr: fbugelr$pack $FCCi_2,$hint */
9528 SEM_FN_NAME (frvbf
,fbugelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9530 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9531 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9532 int UNUSED written
= 0;
9533 IADDR UNUSED pc
= abuf
->addr
;
9534 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9537 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9538 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))))) {
9540 USI opval
= GET_H_SPR (((UINT
) 272));
9541 sim_queue_pc_write (current_cpu
, opval
);
9542 written
|= (1 << 3);
9543 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9548 abuf
->written
= written
;
9553 /* fbuglr: fbuglr$pack $FCCi_2,$hint */
9556 SEM_FN_NAME (frvbf
,fbuglr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9558 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9559 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9560 int UNUSED written
= 0;
9561 IADDR UNUSED pc
= abuf
->addr
;
9562 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9565 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9566 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
9568 USI opval
= GET_H_SPR (((UINT
) 272));
9569 sim_queue_pc_write (current_cpu
, opval
);
9570 written
|= (1 << 3);
9571 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9576 abuf
->written
= written
;
9581 /* fblelr: fblelr$pack $FCCi_2,$hint */
9584 SEM_FN_NAME (frvbf
,fblelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9586 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9587 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9588 int UNUSED written
= 0;
9589 IADDR UNUSED pc
= abuf
->addr
;
9590 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9593 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9594 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)))) {
9596 USI opval
= GET_H_SPR (((UINT
) 272));
9597 sim_queue_pc_write (current_cpu
, opval
);
9598 written
|= (1 << 3);
9599 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9604 abuf
->written
= written
;
9609 /* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9612 SEM_FN_NAME (frvbf
,fbgtlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9614 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9615 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9616 int UNUSED written
= 0;
9617 IADDR UNUSED pc
= abuf
->addr
;
9618 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9621 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9622 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))) {
9624 USI opval
= GET_H_SPR (((UINT
) 272));
9625 sim_queue_pc_write (current_cpu
, opval
);
9626 written
|= (1 << 3);
9627 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9632 abuf
->written
= written
;
9637 /* fbulelr: fbulelr$pack $FCCi_2,$hint */
9640 SEM_FN_NAME (frvbf
,fbulelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9642 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9643 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9644 int UNUSED written
= 0;
9645 IADDR UNUSED pc
= abuf
->addr
;
9646 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9649 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9650 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))))) {
9652 USI opval
= GET_H_SPR (((UINT
) 272));
9653 sim_queue_pc_write (current_cpu
, opval
);
9654 written
|= (1 << 3);
9655 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9660 abuf
->written
= written
;
9665 /* fbulr: fbulr$pack $FCCi_2,$hint */
9668 SEM_FN_NAME (frvbf
,fbulr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9670 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9671 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9672 int UNUSED written
= 0;
9673 IADDR UNUSED pc
= abuf
->addr
;
9674 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9677 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9678 if (TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))) {
9680 USI opval
= GET_H_SPR (((UINT
) 272));
9681 sim_queue_pc_write (current_cpu
, opval
);
9682 written
|= (1 << 3);
9683 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9688 abuf
->written
= written
;
9693 /* fbolr: fbolr$pack $FCCi_2,$hint */
9696 SEM_FN_NAME (frvbf
,fbolr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9698 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9699 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9700 int UNUSED written
= 0;
9701 IADDR UNUSED pc
= abuf
->addr
;
9702 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9705 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9706 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))))) {
9708 USI opval
= GET_H_SPR (((UINT
) 272));
9709 sim_queue_pc_write (current_cpu
, opval
);
9710 written
|= (1 << 3);
9711 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9716 abuf
->written
= written
;
9721 /* bcralr: bcralr$pack $ccond$hint_taken */
9724 SEM_FN_NAME (frvbf
,bcralr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9726 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9727 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9728 int UNUSED written
= 0;
9729 IADDR UNUSED pc
= abuf
->addr
;
9730 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9733 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9736 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
9738 USI opval
= tmp_tmp
;
9739 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
9740 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
9742 if (EQSI (FLD (f_ccond
), 0)) {
9743 if (NESI (tmp_tmp
, 0)) {
9745 USI opval
= GET_H_SPR (((UINT
) 272));
9746 sim_queue_pc_write (current_cpu
, opval
);
9747 written
|= (1 << 5);
9748 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9752 if (EQSI (tmp_tmp
, 0)) {
9754 USI opval
= GET_H_SPR (((UINT
) 272));
9755 sim_queue_pc_write (current_cpu
, opval
);
9756 written
|= (1 << 5);
9757 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9764 abuf
->written
= written
;
9769 /* bcnolr: bcnolr$pack$hint_not_taken */
9772 SEM_FN_NAME (frvbf
,bcnolr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9774 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9775 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9776 int UNUSED written
= 0;
9777 IADDR UNUSED pc
= abuf
->addr
;
9778 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9781 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9784 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
9786 USI opval
= tmp_tmp
;
9787 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
9788 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
9798 /* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
9801 SEM_FN_NAME (frvbf
,bceqlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9803 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9804 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9805 int UNUSED written
= 0;
9806 IADDR UNUSED pc
= abuf
->addr
;
9807 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9810 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9813 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
9815 USI opval
= tmp_tmp
;
9816 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
9817 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
9819 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))) {
9820 if (EQSI (FLD (f_ccond
), 0)) {
9821 if (NESI (tmp_tmp
, 0)) {
9823 USI opval
= GET_H_SPR (((UINT
) 272));
9824 sim_queue_pc_write (current_cpu
, opval
);
9825 written
|= (1 << 6);
9826 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9830 if (EQSI (tmp_tmp
, 0)) {
9832 USI opval
= GET_H_SPR (((UINT
) 272));
9833 sim_queue_pc_write (current_cpu
, opval
);
9834 written
|= (1 << 6);
9835 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9843 abuf
->written
= written
;
9848 /* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
9851 SEM_FN_NAME (frvbf
,bcnelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9853 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9854 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9855 int UNUSED written
= 0;
9856 IADDR UNUSED pc
= abuf
->addr
;
9857 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9860 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9863 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
9865 USI opval
= tmp_tmp
;
9866 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
9867 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
9869 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
9870 if (EQSI (FLD (f_ccond
), 0)) {
9871 if (NESI (tmp_tmp
, 0)) {
9873 USI opval
= GET_H_SPR (((UINT
) 272));
9874 sim_queue_pc_write (current_cpu
, opval
);
9875 written
|= (1 << 6);
9876 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9880 if (EQSI (tmp_tmp
, 0)) {
9882 USI opval
= GET_H_SPR (((UINT
) 272));
9883 sim_queue_pc_write (current_cpu
, opval
);
9884 written
|= (1 << 6);
9885 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9893 abuf
->written
= written
;
9898 /* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
9901 SEM_FN_NAME (frvbf
,bclelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9903 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9904 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9905 int UNUSED written
= 0;
9906 IADDR UNUSED pc
= abuf
->addr
;
9907 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9910 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9913 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
9915 USI opval
= tmp_tmp
;
9916 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
9917 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
9919 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))))) {
9920 if (EQSI (FLD (f_ccond
), 0)) {
9921 if (NESI (tmp_tmp
, 0)) {
9923 USI opval
= GET_H_SPR (((UINT
) 272));
9924 sim_queue_pc_write (current_cpu
, opval
);
9925 written
|= (1 << 6);
9926 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9930 if (EQSI (tmp_tmp
, 0)) {
9932 USI opval
= GET_H_SPR (((UINT
) 272));
9933 sim_queue_pc_write (current_cpu
, opval
);
9934 written
|= (1 << 6);
9935 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9943 abuf
->written
= written
;
9948 /* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
9951 SEM_FN_NAME (frvbf
,bcgtlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9953 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9954 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9955 int UNUSED written
= 0;
9956 IADDR UNUSED pc
= abuf
->addr
;
9957 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9960 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9963 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
9965 USI opval
= tmp_tmp
;
9966 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
9967 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
9969 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)))))) {
9970 if (EQSI (FLD (f_ccond
), 0)) {
9971 if (NESI (tmp_tmp
, 0)) {
9973 USI opval
= GET_H_SPR (((UINT
) 272));
9974 sim_queue_pc_write (current_cpu
, opval
);
9975 written
|= (1 << 6);
9976 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9980 if (EQSI (tmp_tmp
, 0)) {
9982 USI opval
= GET_H_SPR (((UINT
) 272));
9983 sim_queue_pc_write (current_cpu
, opval
);
9984 written
|= (1 << 6);
9985 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9993 abuf
->written
= written
;
9998 /* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
10001 SEM_FN_NAME (frvbf
,bcltlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10003 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10004 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10005 int UNUSED written
= 0;
10006 IADDR UNUSED pc
= abuf
->addr
;
10007 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10010 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10013 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10015 USI opval
= tmp_tmp
;
10016 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10017 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10019 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)))) {
10020 if (EQSI (FLD (f_ccond
), 0)) {
10021 if (NESI (tmp_tmp
, 0)) {
10023 USI opval
= GET_H_SPR (((UINT
) 272));
10024 sim_queue_pc_write (current_cpu
, opval
);
10025 written
|= (1 << 6);
10026 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10030 if (EQSI (tmp_tmp
, 0)) {
10032 USI opval
= GET_H_SPR (((UINT
) 272));
10033 sim_queue_pc_write (current_cpu
, opval
);
10034 written
|= (1 << 6);
10035 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10043 abuf
->written
= written
;
10048 /* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10051 SEM_FN_NAME (frvbf
,bcgelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10053 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10054 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10055 int UNUSED written
= 0;
10056 IADDR UNUSED pc
= abuf
->addr
;
10057 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10060 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10063 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10065 USI opval
= tmp_tmp
;
10066 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10067 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10069 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))))) {
10070 if (EQSI (FLD (f_ccond
), 0)) {
10071 if (NESI (tmp_tmp
, 0)) {
10073 USI opval
= GET_H_SPR (((UINT
) 272));
10074 sim_queue_pc_write (current_cpu
, opval
);
10075 written
|= (1 << 6);
10076 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10080 if (EQSI (tmp_tmp
, 0)) {
10082 USI opval
= GET_H_SPR (((UINT
) 272));
10083 sim_queue_pc_write (current_cpu
, opval
);
10084 written
|= (1 << 6);
10085 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10093 abuf
->written
= written
;
10098 /* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10101 SEM_FN_NAME (frvbf
,bclslr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10103 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10104 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10105 int UNUSED written
= 0;
10106 IADDR UNUSED pc
= abuf
->addr
;
10107 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10110 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10113 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10115 USI opval
= tmp_tmp
;
10116 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10117 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10119 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
10120 if (EQSI (FLD (f_ccond
), 0)) {
10121 if (NESI (tmp_tmp
, 0)) {
10123 USI opval
= GET_H_SPR (((UINT
) 272));
10124 sim_queue_pc_write (current_cpu
, opval
);
10125 written
|= (1 << 6);
10126 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10130 if (EQSI (tmp_tmp
, 0)) {
10132 USI opval
= GET_H_SPR (((UINT
) 272));
10133 sim_queue_pc_write (current_cpu
, opval
);
10134 written
|= (1 << 6);
10135 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10143 abuf
->written
= written
;
10148 /* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10151 SEM_FN_NAME (frvbf
,bchilr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10153 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10154 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10155 int UNUSED written
= 0;
10156 IADDR UNUSED pc
= abuf
->addr
;
10157 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10160 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10163 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10165 USI opval
= tmp_tmp
;
10166 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10167 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10169 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))))) {
10170 if (EQSI (FLD (f_ccond
), 0)) {
10171 if (NESI (tmp_tmp
, 0)) {
10173 USI opval
= GET_H_SPR (((UINT
) 272));
10174 sim_queue_pc_write (current_cpu
, opval
);
10175 written
|= (1 << 6);
10176 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10180 if (EQSI (tmp_tmp
, 0)) {
10182 USI opval
= GET_H_SPR (((UINT
) 272));
10183 sim_queue_pc_write (current_cpu
, opval
);
10184 written
|= (1 << 6);
10185 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10193 abuf
->written
= written
;
10198 /* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10201 SEM_FN_NAME (frvbf
,bcclr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10203 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10204 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10205 int UNUSED written
= 0;
10206 IADDR UNUSED pc
= abuf
->addr
;
10207 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10210 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10213 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10215 USI opval
= tmp_tmp
;
10216 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10217 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10219 if (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1))) {
10220 if (EQSI (FLD (f_ccond
), 0)) {
10221 if (NESI (tmp_tmp
, 0)) {
10223 USI opval
= GET_H_SPR (((UINT
) 272));
10224 sim_queue_pc_write (current_cpu
, opval
);
10225 written
|= (1 << 6);
10226 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10230 if (EQSI (tmp_tmp
, 0)) {
10232 USI opval
= GET_H_SPR (((UINT
) 272));
10233 sim_queue_pc_write (current_cpu
, opval
);
10234 written
|= (1 << 6);
10235 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10243 abuf
->written
= written
;
10248 /* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10251 SEM_FN_NAME (frvbf
,bcnclr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10253 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10254 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10255 int UNUSED written
= 0;
10256 IADDR UNUSED pc
= abuf
->addr
;
10257 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10260 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10263 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10265 USI opval
= tmp_tmp
;
10266 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10267 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10269 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)))) {
10270 if (EQSI (FLD (f_ccond
), 0)) {
10271 if (NESI (tmp_tmp
, 0)) {
10273 USI opval
= GET_H_SPR (((UINT
) 272));
10274 sim_queue_pc_write (current_cpu
, opval
);
10275 written
|= (1 << 6);
10276 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10280 if (EQSI (tmp_tmp
, 0)) {
10282 USI opval
= GET_H_SPR (((UINT
) 272));
10283 sim_queue_pc_write (current_cpu
, opval
);
10284 written
|= (1 << 6);
10285 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10293 abuf
->written
= written
;
10298 /* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10301 SEM_FN_NAME (frvbf
,bcnlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10303 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10304 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10305 int UNUSED written
= 0;
10306 IADDR UNUSED pc
= abuf
->addr
;
10307 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10310 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10313 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10315 USI opval
= tmp_tmp
;
10316 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10317 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10319 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3))) {
10320 if (EQSI (FLD (f_ccond
), 0)) {
10321 if (NESI (tmp_tmp
, 0)) {
10323 USI opval
= GET_H_SPR (((UINT
) 272));
10324 sim_queue_pc_write (current_cpu
, opval
);
10325 written
|= (1 << 6);
10326 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10330 if (EQSI (tmp_tmp
, 0)) {
10332 USI opval
= GET_H_SPR (((UINT
) 272));
10333 sim_queue_pc_write (current_cpu
, opval
);
10334 written
|= (1 << 6);
10335 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10343 abuf
->written
= written
;
10348 /* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10351 SEM_FN_NAME (frvbf
,bcplr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10353 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10354 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10355 int UNUSED written
= 0;
10356 IADDR UNUSED pc
= abuf
->addr
;
10357 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10360 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10363 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10365 USI opval
= tmp_tmp
;
10366 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10367 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10369 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)))) {
10370 if (EQSI (FLD (f_ccond
), 0)) {
10371 if (NESI (tmp_tmp
, 0)) {
10373 USI opval
= GET_H_SPR (((UINT
) 272));
10374 sim_queue_pc_write (current_cpu
, opval
);
10375 written
|= (1 << 6);
10376 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10380 if (EQSI (tmp_tmp
, 0)) {
10382 USI opval
= GET_H_SPR (((UINT
) 272));
10383 sim_queue_pc_write (current_cpu
, opval
);
10384 written
|= (1 << 6);
10385 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10393 abuf
->written
= written
;
10398 /* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10401 SEM_FN_NAME (frvbf
,bcvlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10403 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10404 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10405 int UNUSED written
= 0;
10406 IADDR UNUSED pc
= abuf
->addr
;
10407 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10410 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10413 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10415 USI opval
= tmp_tmp
;
10416 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10417 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10419 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))) {
10420 if (EQSI (FLD (f_ccond
), 0)) {
10421 if (NESI (tmp_tmp
, 0)) {
10423 USI opval
= GET_H_SPR (((UINT
) 272));
10424 sim_queue_pc_write (current_cpu
, opval
);
10425 written
|= (1 << 6);
10426 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10430 if (EQSI (tmp_tmp
, 0)) {
10432 USI opval
= GET_H_SPR (((UINT
) 272));
10433 sim_queue_pc_write (current_cpu
, opval
);
10434 written
|= (1 << 6);
10435 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10443 abuf
->written
= written
;
10448 /* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10451 SEM_FN_NAME (frvbf
,bcnvlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10453 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10454 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10455 int UNUSED written
= 0;
10456 IADDR UNUSED pc
= abuf
->addr
;
10457 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10460 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10463 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10465 USI opval
= tmp_tmp
;
10466 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10467 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10469 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
10470 if (EQSI (FLD (f_ccond
), 0)) {
10471 if (NESI (tmp_tmp
, 0)) {
10473 USI opval
= GET_H_SPR (((UINT
) 272));
10474 sim_queue_pc_write (current_cpu
, opval
);
10475 written
|= (1 << 6);
10476 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10480 if (EQSI (tmp_tmp
, 0)) {
10482 USI opval
= GET_H_SPR (((UINT
) 272));
10483 sim_queue_pc_write (current_cpu
, opval
);
10484 written
|= (1 << 6);
10485 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10493 abuf
->written
= written
;
10498 /* fcbralr: fcbralr$pack $ccond$hint_taken */
10501 SEM_FN_NAME (frvbf
,fcbralr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10503 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10504 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10505 int UNUSED written
= 0;
10506 IADDR UNUSED pc
= abuf
->addr
;
10507 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10510 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10513 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10515 USI opval
= tmp_tmp
;
10516 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10517 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10519 if (EQSI (FLD (f_ccond
), 0)) {
10520 if (NESI (tmp_tmp
, 0)) {
10522 USI opval
= GET_H_SPR (((UINT
) 272));
10523 sim_queue_pc_write (current_cpu
, opval
);
10524 written
|= (1 << 5);
10525 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10529 if (EQSI (tmp_tmp
, 0)) {
10531 USI opval
= GET_H_SPR (((UINT
) 272));
10532 sim_queue_pc_write (current_cpu
, opval
);
10533 written
|= (1 << 5);
10534 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10541 abuf
->written
= written
;
10546 /* fcbnolr: fcbnolr$pack$hint_not_taken */
10549 SEM_FN_NAME (frvbf
,fcbnolr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10551 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10552 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10553 int UNUSED written
= 0;
10554 IADDR UNUSED pc
= abuf
->addr
;
10555 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10558 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10561 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10563 USI opval
= tmp_tmp
;
10564 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10565 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10567 ((void) 0); /*nop*/
10575 /* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10578 SEM_FN_NAME (frvbf
,fcbeqlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10580 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10581 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10582 int UNUSED written
= 0;
10583 IADDR UNUSED pc
= abuf
->addr
;
10584 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10587 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10590 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10592 USI opval
= tmp_tmp
;
10593 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10594 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10596 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3))) {
10597 if (EQSI (FLD (f_ccond
), 0)) {
10598 if (NESI (tmp_tmp
, 0)) {
10600 USI opval
= GET_H_SPR (((UINT
) 272));
10601 sim_queue_pc_write (current_cpu
, opval
);
10602 written
|= (1 << 6);
10603 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10607 if (EQSI (tmp_tmp
, 0)) {
10609 USI opval
= GET_H_SPR (((UINT
) 272));
10610 sim_queue_pc_write (current_cpu
, opval
);
10611 written
|= (1 << 6);
10612 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10620 abuf
->written
= written
;
10625 /* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10628 SEM_FN_NAME (frvbf
,fcbnelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10630 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10631 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10632 int UNUSED written
= 0;
10633 IADDR UNUSED pc
= abuf
->addr
;
10634 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10637 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10640 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10642 USI opval
= tmp_tmp
;
10643 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10644 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10646 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))))) {
10647 if (EQSI (FLD (f_ccond
), 0)) {
10648 if (NESI (tmp_tmp
, 0)) {
10650 USI opval
= GET_H_SPR (((UINT
) 272));
10651 sim_queue_pc_write (current_cpu
, opval
);
10652 written
|= (1 << 6);
10653 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10657 if (EQSI (tmp_tmp
, 0)) {
10659 USI opval
= GET_H_SPR (((UINT
) 272));
10660 sim_queue_pc_write (current_cpu
, opval
);
10661 written
|= (1 << 6);
10662 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10670 abuf
->written
= written
;
10675 /* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10678 SEM_FN_NAME (frvbf
,fcblglr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10680 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10681 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10682 int UNUSED written
= 0;
10683 IADDR UNUSED pc
= abuf
->addr
;
10684 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10687 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10690 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10692 USI opval
= tmp_tmp
;
10693 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10694 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10696 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)))) {
10697 if (EQSI (FLD (f_ccond
), 0)) {
10698 if (NESI (tmp_tmp
, 0)) {
10700 USI opval
= GET_H_SPR (((UINT
) 272));
10701 sim_queue_pc_write (current_cpu
, opval
);
10702 written
|= (1 << 6);
10703 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10707 if (EQSI (tmp_tmp
, 0)) {
10709 USI opval
= GET_H_SPR (((UINT
) 272));
10710 sim_queue_pc_write (current_cpu
, opval
);
10711 written
|= (1 << 6);
10712 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10720 abuf
->written
= written
;
10725 /* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10728 SEM_FN_NAME (frvbf
,fcbuelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10730 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10731 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10732 int UNUSED written
= 0;
10733 IADDR UNUSED pc
= abuf
->addr
;
10734 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10737 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10740 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10742 USI opval
= tmp_tmp
;
10743 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10744 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10746 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
10747 if (EQSI (FLD (f_ccond
), 0)) {
10748 if (NESI (tmp_tmp
, 0)) {
10750 USI opval
= GET_H_SPR (((UINT
) 272));
10751 sim_queue_pc_write (current_cpu
, opval
);
10752 written
|= (1 << 6);
10753 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10757 if (EQSI (tmp_tmp
, 0)) {
10759 USI opval
= GET_H_SPR (((UINT
) 272));
10760 sim_queue_pc_write (current_cpu
, opval
);
10761 written
|= (1 << 6);
10762 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10770 abuf
->written
= written
;
10775 /* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
10778 SEM_FN_NAME (frvbf
,fcbullr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10780 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10781 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10782 int UNUSED written
= 0;
10783 IADDR UNUSED pc
= abuf
->addr
;
10784 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10787 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10790 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10792 USI opval
= tmp_tmp
;
10793 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10794 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10796 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
10797 if (EQSI (FLD (f_ccond
), 0)) {
10798 if (NESI (tmp_tmp
, 0)) {
10800 USI opval
= GET_H_SPR (((UINT
) 272));
10801 sim_queue_pc_write (current_cpu
, opval
);
10802 written
|= (1 << 6);
10803 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10807 if (EQSI (tmp_tmp
, 0)) {
10809 USI opval
= GET_H_SPR (((UINT
) 272));
10810 sim_queue_pc_write (current_cpu
, opval
);
10811 written
|= (1 << 6);
10812 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10820 abuf
->written
= written
;
10825 /* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
10828 SEM_FN_NAME (frvbf
,fcbgelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10830 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10831 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10832 int UNUSED written
= 0;
10833 IADDR UNUSED pc
= abuf
->addr
;
10834 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10837 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10840 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10842 USI opval
= tmp_tmp
;
10843 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10844 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10846 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)))) {
10847 if (EQSI (FLD (f_ccond
), 0)) {
10848 if (NESI (tmp_tmp
, 0)) {
10850 USI opval
= GET_H_SPR (((UINT
) 272));
10851 sim_queue_pc_write (current_cpu
, opval
);
10852 written
|= (1 << 6);
10853 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10857 if (EQSI (tmp_tmp
, 0)) {
10859 USI opval
= GET_H_SPR (((UINT
) 272));
10860 sim_queue_pc_write (current_cpu
, opval
);
10861 written
|= (1 << 6);
10862 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10870 abuf
->written
= written
;
10875 /* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
10878 SEM_FN_NAME (frvbf
,fcbltlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10880 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10881 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10882 int UNUSED written
= 0;
10883 IADDR UNUSED pc
= abuf
->addr
;
10884 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10887 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10890 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10892 USI opval
= tmp_tmp
;
10893 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10894 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10896 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2))) {
10897 if (EQSI (FLD (f_ccond
), 0)) {
10898 if (NESI (tmp_tmp
, 0)) {
10900 USI opval
= GET_H_SPR (((UINT
) 272));
10901 sim_queue_pc_write (current_cpu
, opval
);
10902 written
|= (1 << 6);
10903 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10907 if (EQSI (tmp_tmp
, 0)) {
10909 USI opval
= GET_H_SPR (((UINT
) 272));
10910 sim_queue_pc_write (current_cpu
, opval
);
10911 written
|= (1 << 6);
10912 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10920 abuf
->written
= written
;
10925 /* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
10928 SEM_FN_NAME (frvbf
,fcbugelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10930 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10931 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10932 int UNUSED written
= 0;
10933 IADDR UNUSED pc
= abuf
->addr
;
10934 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10937 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10940 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10942 USI opval
= tmp_tmp
;
10943 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10944 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10946 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))))) {
10947 if (EQSI (FLD (f_ccond
), 0)) {
10948 if (NESI (tmp_tmp
, 0)) {
10950 USI opval
= GET_H_SPR (((UINT
) 272));
10951 sim_queue_pc_write (current_cpu
, opval
);
10952 written
|= (1 << 6);
10953 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10957 if (EQSI (tmp_tmp
, 0)) {
10959 USI opval
= GET_H_SPR (((UINT
) 272));
10960 sim_queue_pc_write (current_cpu
, opval
);
10961 written
|= (1 << 6);
10962 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10970 abuf
->written
= written
;
10975 /* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
10978 SEM_FN_NAME (frvbf
,fcbuglr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10980 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10981 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10982 int UNUSED written
= 0;
10983 IADDR UNUSED pc
= abuf
->addr
;
10984 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10987 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10990 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10992 USI opval
= tmp_tmp
;
10993 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10994 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10996 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
10997 if (EQSI (FLD (f_ccond
), 0)) {
10998 if (NESI (tmp_tmp
, 0)) {
11000 USI opval
= GET_H_SPR (((UINT
) 272));
11001 sim_queue_pc_write (current_cpu
, opval
);
11002 written
|= (1 << 6);
11003 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11007 if (EQSI (tmp_tmp
, 0)) {
11009 USI opval
= GET_H_SPR (((UINT
) 272));
11010 sim_queue_pc_write (current_cpu
, opval
);
11011 written
|= (1 << 6);
11012 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11020 abuf
->written
= written
;
11025 /* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11028 SEM_FN_NAME (frvbf
,fcblelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11030 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11031 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11032 int UNUSED written
= 0;
11033 IADDR UNUSED pc
= abuf
->addr
;
11034 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11037 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11040 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11042 USI opval
= tmp_tmp
;
11043 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11044 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11046 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)))) {
11047 if (EQSI (FLD (f_ccond
), 0)) {
11048 if (NESI (tmp_tmp
, 0)) {
11050 USI opval
= GET_H_SPR (((UINT
) 272));
11051 sim_queue_pc_write (current_cpu
, opval
);
11052 written
|= (1 << 6);
11053 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11057 if (EQSI (tmp_tmp
, 0)) {
11059 USI opval
= GET_H_SPR (((UINT
) 272));
11060 sim_queue_pc_write (current_cpu
, opval
);
11061 written
|= (1 << 6);
11062 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11070 abuf
->written
= written
;
11075 /* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11078 SEM_FN_NAME (frvbf
,fcbgtlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11080 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11081 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11082 int UNUSED written
= 0;
11083 IADDR UNUSED pc
= abuf
->addr
;
11084 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11087 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11090 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11092 USI opval
= tmp_tmp
;
11093 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11094 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11096 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))) {
11097 if (EQSI (FLD (f_ccond
), 0)) {
11098 if (NESI (tmp_tmp
, 0)) {
11100 USI opval
= GET_H_SPR (((UINT
) 272));
11101 sim_queue_pc_write (current_cpu
, opval
);
11102 written
|= (1 << 6);
11103 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11107 if (EQSI (tmp_tmp
, 0)) {
11109 USI opval
= GET_H_SPR (((UINT
) 272));
11110 sim_queue_pc_write (current_cpu
, opval
);
11111 written
|= (1 << 6);
11112 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11120 abuf
->written
= written
;
11125 /* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11128 SEM_FN_NAME (frvbf
,fcbulelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11130 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11131 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11132 int UNUSED written
= 0;
11133 IADDR UNUSED pc
= abuf
->addr
;
11134 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11137 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11140 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11142 USI opval
= tmp_tmp
;
11143 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11144 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11146 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))))) {
11147 if (EQSI (FLD (f_ccond
), 0)) {
11148 if (NESI (tmp_tmp
, 0)) {
11150 USI opval
= GET_H_SPR (((UINT
) 272));
11151 sim_queue_pc_write (current_cpu
, opval
);
11152 written
|= (1 << 6);
11153 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11157 if (EQSI (tmp_tmp
, 0)) {
11159 USI opval
= GET_H_SPR (((UINT
) 272));
11160 sim_queue_pc_write (current_cpu
, opval
);
11161 written
|= (1 << 6);
11162 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11170 abuf
->written
= written
;
11175 /* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11178 SEM_FN_NAME (frvbf
,fcbulr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11180 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11181 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11182 int UNUSED written
= 0;
11183 IADDR UNUSED pc
= abuf
->addr
;
11184 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11187 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11190 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11192 USI opval
= tmp_tmp
;
11193 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11194 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11196 if (TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))) {
11197 if (EQSI (FLD (f_ccond
), 0)) {
11198 if (NESI (tmp_tmp
, 0)) {
11200 USI opval
= GET_H_SPR (((UINT
) 272));
11201 sim_queue_pc_write (current_cpu
, opval
);
11202 written
|= (1 << 6);
11203 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11207 if (EQSI (tmp_tmp
, 0)) {
11209 USI opval
= GET_H_SPR (((UINT
) 272));
11210 sim_queue_pc_write (current_cpu
, opval
);
11211 written
|= (1 << 6);
11212 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11220 abuf
->written
= written
;
11225 /* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11228 SEM_FN_NAME (frvbf
,fcbolr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11230 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11231 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11232 int UNUSED written
= 0;
11233 IADDR UNUSED pc
= abuf
->addr
;
11234 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11237 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11240 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11242 USI opval
= tmp_tmp
;
11243 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11244 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11246 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))))) {
11247 if (EQSI (FLD (f_ccond
), 0)) {
11248 if (NESI (tmp_tmp
, 0)) {
11250 USI opval
= GET_H_SPR (((UINT
) 272));
11251 sim_queue_pc_write (current_cpu
, opval
);
11252 written
|= (1 << 6);
11253 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11257 if (EQSI (tmp_tmp
, 0)) {
11259 USI opval
= GET_H_SPR (((UINT
) 272));
11260 sim_queue_pc_write (current_cpu
, opval
);
11261 written
|= (1 << 6);
11262 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11270 abuf
->written
= written
;
11275 /* jmpl: jmpl$pack @($GRi,$GRj) */
11278 SEM_FN_NAME (frvbf
,jmpl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11280 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11281 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11282 int UNUSED written
= 0;
11283 IADDR UNUSED pc
= abuf
->addr
;
11284 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11287 if (EQSI (FLD (f_LI
), 1)) {
11288 frvbf_set_write_next_vliw_addr_to_LR (current_cpu
, 1);
11291 USI opval
= ANDSI (ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), 0xfffffffc);
11292 sim_queue_pc_write (current_cpu
, opval
);
11293 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11295 frvbf_model_branch (current_cpu
, pc
, 2);
11302 /* calll: calll$pack $callann($GRi,$GRj) */
11305 SEM_FN_NAME (frvbf
,calll
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11307 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11308 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11309 int UNUSED written
= 0;
11310 IADDR UNUSED pc
= abuf
->addr
;
11311 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11314 if (EQSI (FLD (f_LI
), 1)) {
11315 frvbf_set_write_next_vliw_addr_to_LR (current_cpu
, 1);
11318 USI opval
= ANDSI (ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), 0xfffffffc);
11319 sim_queue_pc_write (current_cpu
, opval
);
11320 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11322 frvbf_model_branch (current_cpu
, pc
, 2);
11329 /* jmpil: jmpil$pack @($GRi,$s12) */
11332 SEM_FN_NAME (frvbf
,jmpil
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11334 #define FLD(f) abuf->fields.sfmt_jmpil.f
11335 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11336 int UNUSED written
= 0;
11337 IADDR UNUSED pc
= abuf
->addr
;
11338 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11341 if (EQSI (FLD (f_LI
), 1)) {
11342 frvbf_set_write_next_vliw_addr_to_LR (current_cpu
, 1);
11345 USI opval
= ANDSI (ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), 0xfffffffc);
11346 sim_queue_pc_write (current_cpu
, opval
);
11347 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11349 frvbf_model_branch (current_cpu
, pc
, 2);
11356 /* callil: callil$pack @($GRi,$s12) */
11359 SEM_FN_NAME (frvbf
,callil
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11361 #define FLD(f) abuf->fields.sfmt_jmpil.f
11362 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11363 int UNUSED written
= 0;
11364 IADDR UNUSED pc
= abuf
->addr
;
11365 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11368 if (EQSI (FLD (f_LI
), 1)) {
11369 frvbf_set_write_next_vliw_addr_to_LR (current_cpu
, 1);
11372 USI opval
= ANDSI (ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), 0xfffffffc);
11373 sim_queue_pc_write (current_cpu
, opval
);
11374 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11376 frvbf_model_branch (current_cpu
, pc
, 2);
11383 /* call: call$pack $label24 */
11386 SEM_FN_NAME (frvbf
,call
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11388 #define FLD(f) abuf->fields.sfmt_call.f
11389 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11390 int UNUSED written
= 0;
11391 IADDR UNUSED pc
= abuf
->addr
;
11392 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11395 frvbf_set_write_next_vliw_addr_to_LR (current_cpu
, 1);
11397 USI opval
= FLD (i_label24
);
11398 sim_queue_pc_write (current_cpu
, opval
);
11399 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11401 frvbf_model_branch (current_cpu
, pc
, 2);
11408 /* rett: rett$pack $debug */
11411 SEM_FN_NAME (frvbf
,rett
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11413 #define FLD(f) abuf->fields.sfmt_rett.f
11414 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11415 int UNUSED written
= 0;
11416 IADDR UNUSED pc
= abuf
->addr
;
11417 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11421 USI opval
= frv_rett (current_cpu
, pc
, FLD (f_debug
));
11422 sim_queue_pc_write (current_cpu
, opval
);
11423 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11425 frvbf_model_branch (current_cpu
, pc
, 2);
11432 /* rei: rei$pack $eir */
11435 SEM_FN_NAME (frvbf
,rei
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11437 #define FLD(f) abuf->fields.sfmt_empty.f
11438 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11439 int UNUSED written
= 0;
11440 IADDR UNUSED pc
= abuf
->addr
;
11441 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11443 ((void) 0); /*nop*/
11449 /* tra: tra$pack $GRi,$GRj */
11452 SEM_FN_NAME (frvbf
,tra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11454 #define FLD(f) abuf->fields.sfmt_ftne.f
11455 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11456 int UNUSED written
= 0;
11457 IADDR UNUSED pc
= abuf
->addr
;
11458 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11465 if (NEBI (CPU (h_psr_esr
), 0)) {
11473 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11476 abuf
->written
= written
;
11481 /* tno: tno$pack */
11484 SEM_FN_NAME (frvbf
,tno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11486 #define FLD(f) abuf->fields.sfmt_empty.f
11487 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11488 int UNUSED written
= 0;
11489 IADDR UNUSED pc
= abuf
->addr
;
11490 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11492 ((void) 0); /*nop*/
11498 /* teq: teq$pack $ICCi_2,$GRi,$GRj */
11501 SEM_FN_NAME (frvbf
,teq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11503 #define FLD(f) abuf->fields.sfmt_teq.f
11504 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11505 int UNUSED written
= 0;
11506 IADDR UNUSED pc
= abuf
->addr
;
11507 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11509 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))) {
11515 if (NEBI (CPU (h_psr_esr
), 0)) {
11523 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11527 abuf
->written
= written
;
11532 /* tne: tne$pack $ICCi_2,$GRi,$GRj */
11535 SEM_FN_NAME (frvbf
,tne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11537 #define FLD(f) abuf->fields.sfmt_teq.f
11538 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11539 int UNUSED written
= 0;
11540 IADDR UNUSED pc
= abuf
->addr
;
11541 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11543 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
11549 if (NEBI (CPU (h_psr_esr
), 0)) {
11557 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11561 abuf
->written
= written
;
11566 /* tle: tle$pack $ICCi_2,$GRi,$GRj */
11569 SEM_FN_NAME (frvbf
,tle
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11571 #define FLD(f) abuf->fields.sfmt_teq.f
11572 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11573 int UNUSED written
= 0;
11574 IADDR UNUSED pc
= abuf
->addr
;
11575 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11577 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))))) {
11583 if (NEBI (CPU (h_psr_esr
), 0)) {
11591 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11595 abuf
->written
= written
;
11600 /* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11603 SEM_FN_NAME (frvbf
,tgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11605 #define FLD(f) abuf->fields.sfmt_teq.f
11606 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11607 int UNUSED written
= 0;
11608 IADDR UNUSED pc
= abuf
->addr
;
11609 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11611 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)))))) {
11617 if (NEBI (CPU (h_psr_esr
), 0)) {
11625 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11629 abuf
->written
= written
;
11634 /* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11637 SEM_FN_NAME (frvbf
,tlt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11639 #define FLD(f) abuf->fields.sfmt_teq.f
11640 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11641 int UNUSED written
= 0;
11642 IADDR UNUSED pc
= abuf
->addr
;
11643 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11645 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)))) {
11651 if (NEBI (CPU (h_psr_esr
), 0)) {
11659 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11663 abuf
->written
= written
;
11668 /* tge: tge$pack $ICCi_2,$GRi,$GRj */
11671 SEM_FN_NAME (frvbf
,tge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11673 #define FLD(f) abuf->fields.sfmt_teq.f
11674 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11675 int UNUSED written
= 0;
11676 IADDR UNUSED pc
= abuf
->addr
;
11677 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11679 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))))) {
11685 if (NEBI (CPU (h_psr_esr
), 0)) {
11693 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11697 abuf
->written
= written
;
11702 /* tls: tls$pack $ICCi_2,$GRi,$GRj */
11705 SEM_FN_NAME (frvbf
,tls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11707 #define FLD(f) abuf->fields.sfmt_teq.f
11708 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11709 int UNUSED written
= 0;
11710 IADDR UNUSED pc
= abuf
->addr
;
11711 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11713 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
11719 if (NEBI (CPU (h_psr_esr
), 0)) {
11727 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11731 abuf
->written
= written
;
11736 /* thi: thi$pack $ICCi_2,$GRi,$GRj */
11739 SEM_FN_NAME (frvbf
,thi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11741 #define FLD(f) abuf->fields.sfmt_teq.f
11742 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11743 int UNUSED written
= 0;
11744 IADDR UNUSED pc
= abuf
->addr
;
11745 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11747 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))))) {
11753 if (NEBI (CPU (h_psr_esr
), 0)) {
11761 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11765 abuf
->written
= written
;
11770 /* tc: tc$pack $ICCi_2,$GRi,$GRj */
11773 SEM_FN_NAME (frvbf
,tc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11775 #define FLD(f) abuf->fields.sfmt_teq.f
11776 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11777 int UNUSED written
= 0;
11778 IADDR UNUSED pc
= abuf
->addr
;
11779 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11781 if (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1))) {
11787 if (NEBI (CPU (h_psr_esr
), 0)) {
11795 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11799 abuf
->written
= written
;
11804 /* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
11807 SEM_FN_NAME (frvbf
,tnc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11809 #define FLD(f) abuf->fields.sfmt_teq.f
11810 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11811 int UNUSED written
= 0;
11812 IADDR UNUSED pc
= abuf
->addr
;
11813 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11815 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)))) {
11821 if (NEBI (CPU (h_psr_esr
), 0)) {
11829 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11833 abuf
->written
= written
;
11838 /* tn: tn$pack $ICCi_2,$GRi,$GRj */
11841 SEM_FN_NAME (frvbf
,tn
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11843 #define FLD(f) abuf->fields.sfmt_teq.f
11844 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11845 int UNUSED written
= 0;
11846 IADDR UNUSED pc
= abuf
->addr
;
11847 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11849 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3))) {
11855 if (NEBI (CPU (h_psr_esr
), 0)) {
11863 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11867 abuf
->written
= written
;
11872 /* tp: tp$pack $ICCi_2,$GRi,$GRj */
11875 SEM_FN_NAME (frvbf
,tp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11877 #define FLD(f) abuf->fields.sfmt_teq.f
11878 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11879 int UNUSED written
= 0;
11880 IADDR UNUSED pc
= abuf
->addr
;
11881 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11883 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)))) {
11889 if (NEBI (CPU (h_psr_esr
), 0)) {
11897 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11901 abuf
->written
= written
;
11906 /* tv: tv$pack $ICCi_2,$GRi,$GRj */
11909 SEM_FN_NAME (frvbf
,tv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11911 #define FLD(f) abuf->fields.sfmt_teq.f
11912 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11913 int UNUSED written
= 0;
11914 IADDR UNUSED pc
= abuf
->addr
;
11915 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11917 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))) {
11923 if (NEBI (CPU (h_psr_esr
), 0)) {
11931 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11935 abuf
->written
= written
;
11940 /* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
11943 SEM_FN_NAME (frvbf
,tnv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11945 #define FLD(f) abuf->fields.sfmt_teq.f
11946 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11947 int UNUSED written
= 0;
11948 IADDR UNUSED pc
= abuf
->addr
;
11949 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11951 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
11957 if (NEBI (CPU (h_psr_esr
), 0)) {
11965 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11969 abuf
->written
= written
;
11974 /* ftra: ftra$pack $GRi,$GRj */
11977 SEM_FN_NAME (frvbf
,ftra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11979 #define FLD(f) abuf->fields.sfmt_ftne.f
11980 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11981 int UNUSED written
= 0;
11982 IADDR UNUSED pc
= abuf
->addr
;
11983 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11990 if (NEBI (CPU (h_psr_esr
), 0)) {
11998 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12001 abuf
->written
= written
;
12006 /* ftno: ftno$pack */
12009 SEM_FN_NAME (frvbf
,ftno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12011 #define FLD(f) abuf->fields.sfmt_empty.f
12012 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12013 int UNUSED written
= 0;
12014 IADDR UNUSED pc
= abuf
->addr
;
12015 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12017 ((void) 0); /*nop*/
12023 /* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12026 SEM_FN_NAME (frvbf
,ftne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12028 #define FLD(f) abuf->fields.sfmt_ftne.f
12029 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12030 int UNUSED written
= 0;
12031 IADDR UNUSED pc
= abuf
->addr
;
12032 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12034 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))))) {
12040 if (NEBI (CPU (h_psr_esr
), 0)) {
12048 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12052 abuf
->written
= written
;
12057 /* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12060 SEM_FN_NAME (frvbf
,fteq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12062 #define FLD(f) abuf->fields.sfmt_ftne.f
12063 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12064 int UNUSED written
= 0;
12065 IADDR UNUSED pc
= abuf
->addr
;
12066 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12068 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3))) {
12074 if (NEBI (CPU (h_psr_esr
), 0)) {
12082 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12086 abuf
->written
= written
;
12091 /* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12094 SEM_FN_NAME (frvbf
,ftlg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12096 #define FLD(f) abuf->fields.sfmt_ftne.f
12097 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12098 int UNUSED written
= 0;
12099 IADDR UNUSED pc
= abuf
->addr
;
12100 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12102 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)))) {
12108 if (NEBI (CPU (h_psr_esr
), 0)) {
12116 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12120 abuf
->written
= written
;
12125 /* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12128 SEM_FN_NAME (frvbf
,ftue
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12130 #define FLD(f) abuf->fields.sfmt_ftne.f
12131 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12132 int UNUSED written
= 0;
12133 IADDR UNUSED pc
= abuf
->addr
;
12134 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12136 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
12142 if (NEBI (CPU (h_psr_esr
), 0)) {
12150 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12154 abuf
->written
= written
;
12159 /* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12162 SEM_FN_NAME (frvbf
,ftul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12164 #define FLD(f) abuf->fields.sfmt_ftne.f
12165 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12166 int UNUSED written
= 0;
12167 IADDR UNUSED pc
= abuf
->addr
;
12168 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12170 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
12176 if (NEBI (CPU (h_psr_esr
), 0)) {
12184 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12188 abuf
->written
= written
;
12193 /* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12196 SEM_FN_NAME (frvbf
,ftge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12198 #define FLD(f) abuf->fields.sfmt_ftne.f
12199 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12200 int UNUSED written
= 0;
12201 IADDR UNUSED pc
= abuf
->addr
;
12202 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12204 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)))) {
12210 if (NEBI (CPU (h_psr_esr
), 0)) {
12218 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12222 abuf
->written
= written
;
12227 /* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12230 SEM_FN_NAME (frvbf
,ftlt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12232 #define FLD(f) abuf->fields.sfmt_ftne.f
12233 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12234 int UNUSED written
= 0;
12235 IADDR UNUSED pc
= abuf
->addr
;
12236 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12238 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2))) {
12244 if (NEBI (CPU (h_psr_esr
), 0)) {
12252 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12256 abuf
->written
= written
;
12261 /* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12264 SEM_FN_NAME (frvbf
,ftuge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12266 #define FLD(f) abuf->fields.sfmt_ftne.f
12267 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12268 int UNUSED written
= 0;
12269 IADDR UNUSED pc
= abuf
->addr
;
12270 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12272 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))))) {
12278 if (NEBI (CPU (h_psr_esr
), 0)) {
12286 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12290 abuf
->written
= written
;
12295 /* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12298 SEM_FN_NAME (frvbf
,ftug
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12300 #define FLD(f) abuf->fields.sfmt_ftne.f
12301 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12302 int UNUSED written
= 0;
12303 IADDR UNUSED pc
= abuf
->addr
;
12304 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12306 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
12312 if (NEBI (CPU (h_psr_esr
), 0)) {
12320 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12324 abuf
->written
= written
;
12329 /* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12332 SEM_FN_NAME (frvbf
,ftle
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12334 #define FLD(f) abuf->fields.sfmt_ftne.f
12335 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12336 int UNUSED written
= 0;
12337 IADDR UNUSED pc
= abuf
->addr
;
12338 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12340 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)))) {
12346 if (NEBI (CPU (h_psr_esr
), 0)) {
12354 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12358 abuf
->written
= written
;
12363 /* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12366 SEM_FN_NAME (frvbf
,ftgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12368 #define FLD(f) abuf->fields.sfmt_ftne.f
12369 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12370 int UNUSED written
= 0;
12371 IADDR UNUSED pc
= abuf
->addr
;
12372 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12374 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))) {
12380 if (NEBI (CPU (h_psr_esr
), 0)) {
12388 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12392 abuf
->written
= written
;
12397 /* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12400 SEM_FN_NAME (frvbf
,ftule
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12402 #define FLD(f) abuf->fields.sfmt_ftne.f
12403 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12404 int UNUSED written
= 0;
12405 IADDR UNUSED pc
= abuf
->addr
;
12406 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12408 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))))) {
12414 if (NEBI (CPU (h_psr_esr
), 0)) {
12422 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12426 abuf
->written
= written
;
12431 /* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12434 SEM_FN_NAME (frvbf
,ftu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12436 #define FLD(f) abuf->fields.sfmt_ftne.f
12437 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12438 int UNUSED written
= 0;
12439 IADDR UNUSED pc
= abuf
->addr
;
12440 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12442 if (TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))) {
12448 if (NEBI (CPU (h_psr_esr
), 0)) {
12456 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12460 abuf
->written
= written
;
12465 /* fto: fto$pack $FCCi_2,$GRi,$GRj */
12468 SEM_FN_NAME (frvbf
,fto
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12470 #define FLD(f) abuf->fields.sfmt_ftne.f
12471 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12472 int UNUSED written
= 0;
12473 IADDR UNUSED pc
= abuf
->addr
;
12474 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12476 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))))) {
12482 if (NEBI (CPU (h_psr_esr
), 0)) {
12490 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12494 abuf
->written
= written
;
12499 /* tira: tira$pack $GRi,$s12 */
12502 SEM_FN_NAME (frvbf
,tira
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12504 #define FLD(f) abuf->fields.sfmt_ftine.f
12505 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12506 int UNUSED written
= 0;
12507 IADDR UNUSED pc
= abuf
->addr
;
12508 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12515 if (NEBI (CPU (h_psr_esr
), 0)) {
12523 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12526 abuf
->written
= written
;
12531 /* tino: tino$pack */
12534 SEM_FN_NAME (frvbf
,tino
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12536 #define FLD(f) abuf->fields.sfmt_empty.f
12537 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12538 int UNUSED written
= 0;
12539 IADDR UNUSED pc
= abuf
->addr
;
12540 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12542 ((void) 0); /*nop*/
12548 /* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12551 SEM_FN_NAME (frvbf
,tieq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12553 #define FLD(f) abuf->fields.sfmt_tieq.f
12554 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12555 int UNUSED written
= 0;
12556 IADDR UNUSED pc
= abuf
->addr
;
12557 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12559 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))) {
12565 if (NEBI (CPU (h_psr_esr
), 0)) {
12573 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12577 abuf
->written
= written
;
12582 /* tine: tine$pack $ICCi_2,$GRi,$s12 */
12585 SEM_FN_NAME (frvbf
,tine
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12587 #define FLD(f) abuf->fields.sfmt_tieq.f
12588 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12589 int UNUSED written
= 0;
12590 IADDR UNUSED pc
= abuf
->addr
;
12591 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12593 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
12599 if (NEBI (CPU (h_psr_esr
), 0)) {
12607 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12611 abuf
->written
= written
;
12616 /* tile: tile$pack $ICCi_2,$GRi,$s12 */
12619 SEM_FN_NAME (frvbf
,tile
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12621 #define FLD(f) abuf->fields.sfmt_tieq.f
12622 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12623 int UNUSED written
= 0;
12624 IADDR UNUSED pc
= abuf
->addr
;
12625 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12627 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))))) {
12633 if (NEBI (CPU (h_psr_esr
), 0)) {
12641 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12645 abuf
->written
= written
;
12650 /* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12653 SEM_FN_NAME (frvbf
,tigt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12655 #define FLD(f) abuf->fields.sfmt_tieq.f
12656 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12657 int UNUSED written
= 0;
12658 IADDR UNUSED pc
= abuf
->addr
;
12659 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12661 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)))))) {
12667 if (NEBI (CPU (h_psr_esr
), 0)) {
12675 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12679 abuf
->written
= written
;
12684 /* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12687 SEM_FN_NAME (frvbf
,tilt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12689 #define FLD(f) abuf->fields.sfmt_tieq.f
12690 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12691 int UNUSED written
= 0;
12692 IADDR UNUSED pc
= abuf
->addr
;
12693 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12695 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)))) {
12701 if (NEBI (CPU (h_psr_esr
), 0)) {
12709 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12713 abuf
->written
= written
;
12718 /* tige: tige$pack $ICCi_2,$GRi,$s12 */
12721 SEM_FN_NAME (frvbf
,tige
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12723 #define FLD(f) abuf->fields.sfmt_tieq.f
12724 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12725 int UNUSED written
= 0;
12726 IADDR UNUSED pc
= abuf
->addr
;
12727 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12729 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))))) {
12735 if (NEBI (CPU (h_psr_esr
), 0)) {
12743 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12747 abuf
->written
= written
;
12752 /* tils: tils$pack $ICCi_2,$GRi,$s12 */
12755 SEM_FN_NAME (frvbf
,tils
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12757 #define FLD(f) abuf->fields.sfmt_tieq.f
12758 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12759 int UNUSED written
= 0;
12760 IADDR UNUSED pc
= abuf
->addr
;
12761 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12763 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
12769 if (NEBI (CPU (h_psr_esr
), 0)) {
12777 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12781 abuf
->written
= written
;
12786 /* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
12789 SEM_FN_NAME (frvbf
,tihi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12791 #define FLD(f) abuf->fields.sfmt_tieq.f
12792 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12793 int UNUSED written
= 0;
12794 IADDR UNUSED pc
= abuf
->addr
;
12795 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12797 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))))) {
12803 if (NEBI (CPU (h_psr_esr
), 0)) {
12811 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12815 abuf
->written
= written
;
12820 /* tic: tic$pack $ICCi_2,$GRi,$s12 */
12823 SEM_FN_NAME (frvbf
,tic
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12825 #define FLD(f) abuf->fields.sfmt_tieq.f
12826 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12827 int UNUSED written
= 0;
12828 IADDR UNUSED pc
= abuf
->addr
;
12829 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12831 if (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1))) {
12837 if (NEBI (CPU (h_psr_esr
), 0)) {
12845 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12849 abuf
->written
= written
;
12854 /* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
12857 SEM_FN_NAME (frvbf
,tinc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12859 #define FLD(f) abuf->fields.sfmt_tieq.f
12860 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12861 int UNUSED written
= 0;
12862 IADDR UNUSED pc
= abuf
->addr
;
12863 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12865 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)))) {
12871 if (NEBI (CPU (h_psr_esr
), 0)) {
12879 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12883 abuf
->written
= written
;
12888 /* tin: tin$pack $ICCi_2,$GRi,$s12 */
12891 SEM_FN_NAME (frvbf
,tin
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12893 #define FLD(f) abuf->fields.sfmt_tieq.f
12894 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12895 int UNUSED written
= 0;
12896 IADDR UNUSED pc
= abuf
->addr
;
12897 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12899 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3))) {
12905 if (NEBI (CPU (h_psr_esr
), 0)) {
12913 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12917 abuf
->written
= written
;
12922 /* tip: tip$pack $ICCi_2,$GRi,$s12 */
12925 SEM_FN_NAME (frvbf
,tip
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12927 #define FLD(f) abuf->fields.sfmt_tieq.f
12928 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12929 int UNUSED written
= 0;
12930 IADDR UNUSED pc
= abuf
->addr
;
12931 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12933 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)))) {
12939 if (NEBI (CPU (h_psr_esr
), 0)) {
12947 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12951 abuf
->written
= written
;
12956 /* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
12959 SEM_FN_NAME (frvbf
,tiv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12961 #define FLD(f) abuf->fields.sfmt_tieq.f
12962 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12963 int UNUSED written
= 0;
12964 IADDR UNUSED pc
= abuf
->addr
;
12965 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12967 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))) {
12973 if (NEBI (CPU (h_psr_esr
), 0)) {
12981 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12985 abuf
->written
= written
;
12990 /* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
12993 SEM_FN_NAME (frvbf
,tinv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12995 #define FLD(f) abuf->fields.sfmt_tieq.f
12996 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12997 int UNUSED written
= 0;
12998 IADDR UNUSED pc
= abuf
->addr
;
12999 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13001 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
13007 if (NEBI (CPU (h_psr_esr
), 0)) {
13015 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13019 abuf
->written
= written
;
13024 /* ftira: ftira$pack $GRi,$s12 */
13027 SEM_FN_NAME (frvbf
,ftira
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13029 #define FLD(f) abuf->fields.sfmt_ftine.f
13030 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13031 int UNUSED written
= 0;
13032 IADDR UNUSED pc
= abuf
->addr
;
13033 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13040 if (NEBI (CPU (h_psr_esr
), 0)) {
13048 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13051 abuf
->written
= written
;
13056 /* ftino: ftino$pack */
13059 SEM_FN_NAME (frvbf
,ftino
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13061 #define FLD(f) abuf->fields.sfmt_empty.f
13062 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13063 int UNUSED written
= 0;
13064 IADDR UNUSED pc
= abuf
->addr
;
13065 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13067 ((void) 0); /*nop*/
13073 /* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13076 SEM_FN_NAME (frvbf
,ftine
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13078 #define FLD(f) abuf->fields.sfmt_ftine.f
13079 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13080 int UNUSED written
= 0;
13081 IADDR UNUSED pc
= abuf
->addr
;
13082 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13084 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))))) {
13090 if (NEBI (CPU (h_psr_esr
), 0)) {
13098 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13102 abuf
->written
= written
;
13107 /* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13110 SEM_FN_NAME (frvbf
,ftieq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13112 #define FLD(f) abuf->fields.sfmt_ftine.f
13113 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13114 int UNUSED written
= 0;
13115 IADDR UNUSED pc
= abuf
->addr
;
13116 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13118 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3))) {
13124 if (NEBI (CPU (h_psr_esr
), 0)) {
13132 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13136 abuf
->written
= written
;
13141 /* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13144 SEM_FN_NAME (frvbf
,ftilg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13146 #define FLD(f) abuf->fields.sfmt_ftine.f
13147 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13148 int UNUSED written
= 0;
13149 IADDR UNUSED pc
= abuf
->addr
;
13150 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13152 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)))) {
13158 if (NEBI (CPU (h_psr_esr
), 0)) {
13166 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13170 abuf
->written
= written
;
13175 /* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13178 SEM_FN_NAME (frvbf
,ftiue
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13180 #define FLD(f) abuf->fields.sfmt_ftine.f
13181 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13182 int UNUSED written
= 0;
13183 IADDR UNUSED pc
= abuf
->addr
;
13184 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13186 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
13192 if (NEBI (CPU (h_psr_esr
), 0)) {
13200 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13204 abuf
->written
= written
;
13209 /* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13212 SEM_FN_NAME (frvbf
,ftiul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13214 #define FLD(f) abuf->fields.sfmt_ftine.f
13215 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13216 int UNUSED written
= 0;
13217 IADDR UNUSED pc
= abuf
->addr
;
13218 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13220 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
13226 if (NEBI (CPU (h_psr_esr
), 0)) {
13234 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13238 abuf
->written
= written
;
13243 /* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13246 SEM_FN_NAME (frvbf
,ftige
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13248 #define FLD(f) abuf->fields.sfmt_ftine.f
13249 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13250 int UNUSED written
= 0;
13251 IADDR UNUSED pc
= abuf
->addr
;
13252 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13254 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)))) {
13260 if (NEBI (CPU (h_psr_esr
), 0)) {
13268 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13272 abuf
->written
= written
;
13277 /* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13280 SEM_FN_NAME (frvbf
,ftilt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13282 #define FLD(f) abuf->fields.sfmt_ftine.f
13283 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13284 int UNUSED written
= 0;
13285 IADDR UNUSED pc
= abuf
->addr
;
13286 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13288 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2))) {
13294 if (NEBI (CPU (h_psr_esr
), 0)) {
13302 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13306 abuf
->written
= written
;
13311 /* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13314 SEM_FN_NAME (frvbf
,ftiuge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13316 #define FLD(f) abuf->fields.sfmt_ftine.f
13317 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13318 int UNUSED written
= 0;
13319 IADDR UNUSED pc
= abuf
->addr
;
13320 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13322 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))))) {
13328 if (NEBI (CPU (h_psr_esr
), 0)) {
13336 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13340 abuf
->written
= written
;
13345 /* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13348 SEM_FN_NAME (frvbf
,ftiug
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13350 #define FLD(f) abuf->fields.sfmt_ftine.f
13351 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13352 int UNUSED written
= 0;
13353 IADDR UNUSED pc
= abuf
->addr
;
13354 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13356 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
13362 if (NEBI (CPU (h_psr_esr
), 0)) {
13370 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13374 abuf
->written
= written
;
13379 /* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13382 SEM_FN_NAME (frvbf
,ftile
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13384 #define FLD(f) abuf->fields.sfmt_ftine.f
13385 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13386 int UNUSED written
= 0;
13387 IADDR UNUSED pc
= abuf
->addr
;
13388 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13390 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)))) {
13396 if (NEBI (CPU (h_psr_esr
), 0)) {
13404 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13408 abuf
->written
= written
;
13413 /* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13416 SEM_FN_NAME (frvbf
,ftigt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13418 #define FLD(f) abuf->fields.sfmt_ftine.f
13419 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13420 int UNUSED written
= 0;
13421 IADDR UNUSED pc
= abuf
->addr
;
13422 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13424 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))) {
13430 if (NEBI (CPU (h_psr_esr
), 0)) {
13438 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13442 abuf
->written
= written
;
13447 /* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13450 SEM_FN_NAME (frvbf
,ftiule
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13452 #define FLD(f) abuf->fields.sfmt_ftine.f
13453 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13454 int UNUSED written
= 0;
13455 IADDR UNUSED pc
= abuf
->addr
;
13456 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13458 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))))) {
13464 if (NEBI (CPU (h_psr_esr
), 0)) {
13472 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13476 abuf
->written
= written
;
13481 /* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13484 SEM_FN_NAME (frvbf
,ftiu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13486 #define FLD(f) abuf->fields.sfmt_ftine.f
13487 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13488 int UNUSED written
= 0;
13489 IADDR UNUSED pc
= abuf
->addr
;
13490 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13492 if (TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))) {
13498 if (NEBI (CPU (h_psr_esr
), 0)) {
13506 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13510 abuf
->written
= written
;
13515 /* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13518 SEM_FN_NAME (frvbf
,ftio
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13520 #define FLD(f) abuf->fields.sfmt_ftine.f
13521 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13522 int UNUSED written
= 0;
13523 IADDR UNUSED pc
= abuf
->addr
;
13524 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13526 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))))) {
13532 if (NEBI (CPU (h_psr_esr
), 0)) {
13540 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13544 abuf
->written
= written
;
13549 /* break: break$pack */
13552 SEM_FN_NAME (frvbf
,break) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13554 #define FLD(f) abuf->fields.sfmt_break.f
13555 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13556 int UNUSED written
= 0;
13557 IADDR UNUSED pc
= abuf
->addr
;
13558 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13567 frv_break (current_cpu
);
13574 /* mtrap: mtrap$pack */
13577 SEM_FN_NAME (frvbf
,mtrap
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13579 #define FLD(f) abuf->fields.sfmt_empty.f
13580 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13581 int UNUSED written
= 0;
13582 IADDR UNUSED pc
= abuf
->addr
;
13583 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13585 frv_mtrap (current_cpu
);
13591 /* andcr: andcr$pack $CRi,$CRj,$CRk */
13594 SEM_FN_NAME (frvbf
,andcr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13596 #define FLD(f) abuf->fields.sfmt_andcr.f
13597 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13598 int UNUSED written
= 0;
13599 IADDR UNUSED pc
= abuf
->addr
;
13600 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13603 UQI opval
= frvbf_cr_logic (current_cpu
, 0, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13604 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13605 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13612 /* orcr: orcr$pack $CRi,$CRj,$CRk */
13615 SEM_FN_NAME (frvbf
,orcr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13617 #define FLD(f) abuf->fields.sfmt_andcr.f
13618 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13619 int UNUSED written
= 0;
13620 IADDR UNUSED pc
= abuf
->addr
;
13621 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13624 UQI opval
= frvbf_cr_logic (current_cpu
, 1, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13625 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13626 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13633 /* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13636 SEM_FN_NAME (frvbf
,xorcr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13638 #define FLD(f) abuf->fields.sfmt_andcr.f
13639 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13640 int UNUSED written
= 0;
13641 IADDR UNUSED pc
= abuf
->addr
;
13642 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13645 UQI opval
= frvbf_cr_logic (current_cpu
, 2, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13646 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13647 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13654 /* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13657 SEM_FN_NAME (frvbf
,nandcr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13659 #define FLD(f) abuf->fields.sfmt_andcr.f
13660 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13661 int UNUSED written
= 0;
13662 IADDR UNUSED pc
= abuf
->addr
;
13663 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13666 UQI opval
= frvbf_cr_logic (current_cpu
, 3, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13667 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13668 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13675 /* norcr: norcr$pack $CRi,$CRj,$CRk */
13678 SEM_FN_NAME (frvbf
,norcr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13680 #define FLD(f) abuf->fields.sfmt_andcr.f
13681 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13682 int UNUSED written
= 0;
13683 IADDR UNUSED pc
= abuf
->addr
;
13684 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13687 UQI opval
= frvbf_cr_logic (current_cpu
, 4, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13688 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13689 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13696 /* andncr: andncr$pack $CRi,$CRj,$CRk */
13699 SEM_FN_NAME (frvbf
,andncr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13701 #define FLD(f) abuf->fields.sfmt_andcr.f
13702 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13703 int UNUSED written
= 0;
13704 IADDR UNUSED pc
= abuf
->addr
;
13705 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13708 UQI opval
= frvbf_cr_logic (current_cpu
, 5, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13709 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13710 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13717 /* orncr: orncr$pack $CRi,$CRj,$CRk */
13720 SEM_FN_NAME (frvbf
,orncr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13722 #define FLD(f) abuf->fields.sfmt_andcr.f
13723 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13724 int UNUSED written
= 0;
13725 IADDR UNUSED pc
= abuf
->addr
;
13726 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13729 UQI opval
= frvbf_cr_logic (current_cpu
, 6, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13730 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13731 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13738 /* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13741 SEM_FN_NAME (frvbf
,nandncr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13743 #define FLD(f) abuf->fields.sfmt_andcr.f
13744 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13745 int UNUSED written
= 0;
13746 IADDR UNUSED pc
= abuf
->addr
;
13747 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13750 UQI opval
= frvbf_cr_logic (current_cpu
, 7, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13751 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13752 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13759 /* norncr: norncr$pack $CRi,$CRj,$CRk */
13762 SEM_FN_NAME (frvbf
,norncr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13764 #define FLD(f) abuf->fields.sfmt_andcr.f
13765 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13766 int UNUSED written
= 0;
13767 IADDR UNUSED pc
= abuf
->addr
;
13768 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13771 UQI opval
= frvbf_cr_logic (current_cpu
, 8, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13772 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13773 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13780 /* notcr: notcr$pack $CRj,$CRk */
13783 SEM_FN_NAME (frvbf
,notcr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13785 #define FLD(f) abuf->fields.sfmt_andcr.f
13786 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13787 int UNUSED written
= 0;
13788 IADDR UNUSED pc
= abuf
->addr
;
13789 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13792 UQI opval
= XORQI (CPU (h_cccr
[FLD (f_CRj
)]), 1);
13793 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13794 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13801 /* ckra: ckra$pack $CRj_int */
13804 SEM_FN_NAME (frvbf
,ckra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13806 #define FLD(f) abuf->fields.sfmt_cckeq.f
13807 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13808 int UNUSED written
= 0;
13809 IADDR UNUSED pc
= abuf
->addr
;
13810 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13814 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
13815 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13822 /* ckno: ckno$pack $CRj_int */
13825 SEM_FN_NAME (frvbf
,ckno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13827 #define FLD(f) abuf->fields.sfmt_cckeq.f
13828 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13829 int UNUSED written
= 0;
13830 IADDR UNUSED pc
= abuf
->addr
;
13831 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13835 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
13836 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13843 /* ckeq: ckeq$pack $ICCi_3,$CRj_int */
13846 SEM_FN_NAME (frvbf
,ckeq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13848 #define FLD(f) abuf->fields.sfmt_cckeq.f
13849 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13850 int UNUSED written
= 0;
13851 IADDR UNUSED pc
= abuf
->addr
;
13852 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13854 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2))) {
13857 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
13858 written
|= (1 << 1);
13859 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13864 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
13865 written
|= (1 << 1);
13866 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13870 abuf
->written
= written
;
13875 /* ckne: ckne$pack $ICCi_3,$CRj_int */
13878 SEM_FN_NAME (frvbf
,ckne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13880 #define FLD(f) abuf->fields.sfmt_cckeq.f
13881 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13882 int UNUSED written
= 0;
13883 IADDR UNUSED pc
= abuf
->addr
;
13884 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13886 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2)))) {
13889 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
13890 written
|= (1 << 1);
13891 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13896 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
13897 written
|= (1 << 1);
13898 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13902 abuf
->written
= written
;
13907 /* ckle: ckle$pack $ICCi_3,$CRj_int */
13910 SEM_FN_NAME (frvbf
,ckle
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13912 #define FLD(f) abuf->fields.sfmt_cckeq.f
13913 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13914 int UNUSED written
= 0;
13915 IADDR UNUSED pc
= abuf
->addr
;
13916 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13918 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))))) {
13921 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
13922 written
|= (1 << 1);
13923 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13928 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
13929 written
|= (1 << 1);
13930 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13934 abuf
->written
= written
;
13939 /* ckgt: ckgt$pack $ICCi_3,$CRj_int */
13942 SEM_FN_NAME (frvbf
,ckgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13944 #define FLD(f) abuf->fields.sfmt_cckeq.f
13945 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13946 int UNUSED written
= 0;
13947 IADDR UNUSED pc
= abuf
->addr
;
13948 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13950 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)))))) {
13953 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
13954 written
|= (1 << 1);
13955 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13960 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
13961 written
|= (1 << 1);
13962 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13966 abuf
->written
= written
;
13971 /* cklt: cklt$pack $ICCi_3,$CRj_int */
13974 SEM_FN_NAME (frvbf
,cklt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13976 #define FLD(f) abuf->fields.sfmt_cckeq.f
13977 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13978 int UNUSED written
= 0;
13979 IADDR UNUSED pc
= abuf
->addr
;
13980 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13982 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)))) {
13985 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
13986 written
|= (1 << 1);
13987 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13992 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
13993 written
|= (1 << 1);
13994 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13998 abuf
->written
= written
;
14003 /* ckge: ckge$pack $ICCi_3,$CRj_int */
14006 SEM_FN_NAME (frvbf
,ckge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14008 #define FLD(f) abuf->fields.sfmt_cckeq.f
14009 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14010 int UNUSED written
= 0;
14011 IADDR UNUSED pc
= abuf
->addr
;
14012 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14014 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))))) {
14017 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14018 written
|= (1 << 1);
14019 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14024 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14025 written
|= (1 << 1);
14026 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14030 abuf
->written
= written
;
14035 /* ckls: ckls$pack $ICCi_3,$CRj_int */
14038 SEM_FN_NAME (frvbf
,ckls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14040 #define FLD(f) abuf->fields.sfmt_cckeq.f
14041 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14042 int UNUSED written
= 0;
14043 IADDR UNUSED pc
= abuf
->addr
;
14044 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14046 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2)))) {
14049 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14050 written
|= (1 << 1);
14051 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14056 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14057 written
|= (1 << 1);
14058 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14062 abuf
->written
= written
;
14067 /* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14070 SEM_FN_NAME (frvbf
,ckhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14072 #define FLD(f) abuf->fields.sfmt_cckeq.f
14073 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14074 int UNUSED written
= 0;
14075 IADDR UNUSED pc
= abuf
->addr
;
14076 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14078 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))))) {
14081 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14082 written
|= (1 << 1);
14083 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14088 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14089 written
|= (1 << 1);
14090 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14094 abuf
->written
= written
;
14099 /* ckc: ckc$pack $ICCi_3,$CRj_int */
14102 SEM_FN_NAME (frvbf
,ckc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14104 #define FLD(f) abuf->fields.sfmt_cckeq.f
14105 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14106 int UNUSED written
= 0;
14107 IADDR UNUSED pc
= abuf
->addr
;
14108 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14110 if (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1))) {
14113 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14114 written
|= (1 << 1);
14115 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14120 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14121 written
|= (1 << 1);
14122 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14126 abuf
->written
= written
;
14131 /* cknc: cknc$pack $ICCi_3,$CRj_int */
14134 SEM_FN_NAME (frvbf
,cknc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14136 #define FLD(f) abuf->fields.sfmt_cckeq.f
14137 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14138 int UNUSED written
= 0;
14139 IADDR UNUSED pc
= abuf
->addr
;
14140 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14142 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1)))) {
14145 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14146 written
|= (1 << 1);
14147 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14152 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14153 written
|= (1 << 1);
14154 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14158 abuf
->written
= written
;
14163 /* ckn: ckn$pack $ICCi_3,$CRj_int */
14166 SEM_FN_NAME (frvbf
,ckn
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14168 #define FLD(f) abuf->fields.sfmt_cckeq.f
14169 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14170 int UNUSED written
= 0;
14171 IADDR UNUSED pc
= abuf
->addr
;
14172 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14174 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3))) {
14177 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14178 written
|= (1 << 1);
14179 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14184 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14185 written
|= (1 << 1);
14186 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14190 abuf
->written
= written
;
14195 /* ckp: ckp$pack $ICCi_3,$CRj_int */
14198 SEM_FN_NAME (frvbf
,ckp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14200 #define FLD(f) abuf->fields.sfmt_cckeq.f
14201 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14202 int UNUSED written
= 0;
14203 IADDR UNUSED pc
= abuf
->addr
;
14204 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14206 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)))) {
14209 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14210 written
|= (1 << 1);
14211 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14216 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14217 written
|= (1 << 1);
14218 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14222 abuf
->written
= written
;
14227 /* ckv: ckv$pack $ICCi_3,$CRj_int */
14230 SEM_FN_NAME (frvbf
,ckv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14232 #define FLD(f) abuf->fields.sfmt_cckeq.f
14233 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14234 int UNUSED written
= 0;
14235 IADDR UNUSED pc
= abuf
->addr
;
14236 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14238 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1))) {
14241 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14242 written
|= (1 << 1);
14243 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14248 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14249 written
|= (1 << 1);
14250 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14254 abuf
->written
= written
;
14259 /* cknv: cknv$pack $ICCi_3,$CRj_int */
14262 SEM_FN_NAME (frvbf
,cknv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14264 #define FLD(f) abuf->fields.sfmt_cckeq.f
14265 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14266 int UNUSED written
= 0;
14267 IADDR UNUSED pc
= abuf
->addr
;
14268 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14270 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1)))) {
14273 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14274 written
|= (1 << 1);
14275 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14280 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14281 written
|= (1 << 1);
14282 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14286 abuf
->written
= written
;
14291 /* fckra: fckra$pack $CRj_float */
14294 SEM_FN_NAME (frvbf
,fckra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14296 #define FLD(f) abuf->fields.sfmt_cfckne.f
14297 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14298 int UNUSED written
= 0;
14299 IADDR UNUSED pc
= abuf
->addr
;
14300 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14304 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14305 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14312 /* fckno: fckno$pack $CRj_float */
14315 SEM_FN_NAME (frvbf
,fckno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14317 #define FLD(f) abuf->fields.sfmt_cfckne.f
14318 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14319 int UNUSED written
= 0;
14320 IADDR UNUSED pc
= abuf
->addr
;
14321 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14325 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14326 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14333 /* fckne: fckne$pack $FCCi_3,$CRj_float */
14336 SEM_FN_NAME (frvbf
,fckne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14338 #define FLD(f) abuf->fields.sfmt_cfckne.f
14339 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14340 int UNUSED written
= 0;
14341 IADDR UNUSED pc
= abuf
->addr
;
14342 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14344 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))))) {
14347 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14348 written
|= (1 << 1);
14349 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14354 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14355 written
|= (1 << 1);
14356 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14360 abuf
->written
= written
;
14365 /* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14368 SEM_FN_NAME (frvbf
,fckeq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14370 #define FLD(f) abuf->fields.sfmt_cfckne.f
14371 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14372 int UNUSED written
= 0;
14373 IADDR UNUSED pc
= abuf
->addr
;
14374 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14376 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3))) {
14379 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14380 written
|= (1 << 1);
14381 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14386 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14387 written
|= (1 << 1);
14388 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14392 abuf
->written
= written
;
14397 /* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14400 SEM_FN_NAME (frvbf
,fcklg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14402 #define FLD(f) abuf->fields.sfmt_cfckne.f
14403 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14404 int UNUSED written
= 0;
14405 IADDR UNUSED pc
= abuf
->addr
;
14406 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14408 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)))) {
14411 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14412 written
|= (1 << 1);
14413 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14418 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14419 written
|= (1 << 1);
14420 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14424 abuf
->written
= written
;
14429 /* fckue: fckue$pack $FCCi_3,$CRj_float */
14432 SEM_FN_NAME (frvbf
,fckue
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14434 #define FLD(f) abuf->fields.sfmt_cfckne.f
14435 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14436 int UNUSED written
= 0;
14437 IADDR UNUSED pc
= abuf
->addr
;
14438 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14440 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1)))) {
14443 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14444 written
|= (1 << 1);
14445 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14450 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14451 written
|= (1 << 1);
14452 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14456 abuf
->written
= written
;
14461 /* fckul: fckul$pack $FCCi_3,$CRj_float */
14464 SEM_FN_NAME (frvbf
,fckul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14466 #define FLD(f) abuf->fields.sfmt_cfckne.f
14467 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14468 int UNUSED written
= 0;
14469 IADDR UNUSED pc
= abuf
->addr
;
14470 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14472 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1)))) {
14475 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14476 written
|= (1 << 1);
14477 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14482 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14483 written
|= (1 << 1);
14484 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14488 abuf
->written
= written
;
14493 /* fckge: fckge$pack $FCCi_3,$CRj_float */
14496 SEM_FN_NAME (frvbf
,fckge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14498 #define FLD(f) abuf->fields.sfmt_cfckne.f
14499 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14500 int UNUSED written
= 0;
14501 IADDR UNUSED pc
= abuf
->addr
;
14502 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14504 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)))) {
14507 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14508 written
|= (1 << 1);
14509 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14514 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14515 written
|= (1 << 1);
14516 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14520 abuf
->written
= written
;
14525 /* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14528 SEM_FN_NAME (frvbf
,fcklt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14530 #define FLD(f) abuf->fields.sfmt_cfckne.f
14531 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14532 int UNUSED written
= 0;
14533 IADDR UNUSED pc
= abuf
->addr
;
14534 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14536 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2))) {
14539 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14540 written
|= (1 << 1);
14541 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14546 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14547 written
|= (1 << 1);
14548 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14552 abuf
->written
= written
;
14557 /* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14560 SEM_FN_NAME (frvbf
,fckuge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14562 #define FLD(f) abuf->fields.sfmt_cfckne.f
14563 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14564 int UNUSED written
= 0;
14565 IADDR UNUSED pc
= abuf
->addr
;
14566 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14568 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))))) {
14571 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14572 written
|= (1 << 1);
14573 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14578 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14579 written
|= (1 << 1);
14580 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14584 abuf
->written
= written
;
14589 /* fckug: fckug$pack $FCCi_3,$CRj_float */
14592 SEM_FN_NAME (frvbf
,fckug
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14594 #define FLD(f) abuf->fields.sfmt_cfckne.f
14595 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14596 int UNUSED written
= 0;
14597 IADDR UNUSED pc
= abuf
->addr
;
14598 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14600 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1)))) {
14603 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14604 written
|= (1 << 1);
14605 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14610 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14611 written
|= (1 << 1);
14612 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14616 abuf
->written
= written
;
14621 /* fckle: fckle$pack $FCCi_3,$CRj_float */
14624 SEM_FN_NAME (frvbf
,fckle
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14626 #define FLD(f) abuf->fields.sfmt_cfckne.f
14627 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14628 int UNUSED written
= 0;
14629 IADDR UNUSED pc
= abuf
->addr
;
14630 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14632 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)))) {
14635 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14636 written
|= (1 << 1);
14637 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14642 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14643 written
|= (1 << 1);
14644 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14648 abuf
->written
= written
;
14653 /* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14656 SEM_FN_NAME (frvbf
,fckgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14658 #define FLD(f) abuf->fields.sfmt_cfckne.f
14659 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14660 int UNUSED written
= 0;
14661 IADDR UNUSED pc
= abuf
->addr
;
14662 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14664 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1))) {
14667 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14668 written
|= (1 << 1);
14669 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14674 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14675 written
|= (1 << 1);
14676 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14680 abuf
->written
= written
;
14685 /* fckule: fckule$pack $FCCi_3,$CRj_float */
14688 SEM_FN_NAME (frvbf
,fckule
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14690 #define FLD(f) abuf->fields.sfmt_cfckne.f
14691 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14692 int UNUSED written
= 0;
14693 IADDR UNUSED pc
= abuf
->addr
;
14694 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14696 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))))) {
14699 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14700 written
|= (1 << 1);
14701 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14706 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14707 written
|= (1 << 1);
14708 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14712 abuf
->written
= written
;
14717 /* fcku: fcku$pack $FCCi_3,$CRj_float */
14720 SEM_FN_NAME (frvbf
,fcku
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14722 #define FLD(f) abuf->fields.sfmt_cfckne.f
14723 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14724 int UNUSED written
= 0;
14725 IADDR UNUSED pc
= abuf
->addr
;
14726 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14728 if (TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1))) {
14731 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14732 written
|= (1 << 1);
14733 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14738 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14739 written
|= (1 << 1);
14740 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14744 abuf
->written
= written
;
14749 /* fcko: fcko$pack $FCCi_3,$CRj_float */
14752 SEM_FN_NAME (frvbf
,fcko
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14754 #define FLD(f) abuf->fields.sfmt_cfckne.f
14755 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14756 int UNUSED written
= 0;
14757 IADDR UNUSED pc
= abuf
->addr
;
14758 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14760 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))))) {
14763 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14764 written
|= (1 << 1);
14765 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14770 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14771 written
|= (1 << 1);
14772 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14776 abuf
->written
= written
;
14781 /* cckra: cckra$pack $CRj_int,$CCi,$cond */
14784 SEM_FN_NAME (frvbf
,cckra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14786 #define FLD(f) abuf->fields.sfmt_cckeq.f
14787 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14788 int UNUSED written
= 0;
14789 IADDR UNUSED pc
= abuf
->addr
;
14790 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14792 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
14795 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14796 written
|= (1 << 2);
14797 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14802 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14803 written
|= (1 << 2);
14804 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14808 abuf
->written
= written
;
14813 /* cckno: cckno$pack $CRj_int,$CCi,$cond */
14816 SEM_FN_NAME (frvbf
,cckno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14818 #define FLD(f) abuf->fields.sfmt_cckeq.f
14819 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14820 int UNUSED written
= 0;
14821 IADDR UNUSED pc
= abuf
->addr
;
14822 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14824 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
14827 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14828 written
|= (1 << 2);
14829 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14834 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14835 written
|= (1 << 2);
14836 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14840 abuf
->written
= written
;
14845 /* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
14848 SEM_FN_NAME (frvbf
,cckeq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14850 #define FLD(f) abuf->fields.sfmt_cckeq.f
14851 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14852 int UNUSED written
= 0;
14853 IADDR UNUSED pc
= abuf
->addr
;
14854 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14856 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
14857 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2))) {
14860 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14861 written
|= (1 << 3);
14862 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14867 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14868 written
|= (1 << 3);
14869 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14875 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14876 written
|= (1 << 3);
14877 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14881 abuf
->written
= written
;
14886 /* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
14889 SEM_FN_NAME (frvbf
,cckne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14891 #define FLD(f) abuf->fields.sfmt_cckeq.f
14892 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14893 int UNUSED written
= 0;
14894 IADDR UNUSED pc
= abuf
->addr
;
14895 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14897 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
14898 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2)))) {
14901 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14902 written
|= (1 << 3);
14903 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14908 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14909 written
|= (1 << 3);
14910 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14916 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14917 written
|= (1 << 3);
14918 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14922 abuf
->written
= written
;
14927 /* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
14930 SEM_FN_NAME (frvbf
,cckle
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14932 #define FLD(f) abuf->fields.sfmt_cckeq.f
14933 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14934 int UNUSED written
= 0;
14935 IADDR UNUSED pc
= abuf
->addr
;
14936 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14938 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
14939 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))))) {
14942 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14943 written
|= (1 << 3);
14944 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14949 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14950 written
|= (1 << 3);
14951 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14957 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14958 written
|= (1 << 3);
14959 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14963 abuf
->written
= written
;
14968 /* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
14971 SEM_FN_NAME (frvbf
,cckgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14973 #define FLD(f) abuf->fields.sfmt_cckeq.f
14974 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14975 int UNUSED written
= 0;
14976 IADDR UNUSED pc
= abuf
->addr
;
14977 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14979 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
14980 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)))))) {
14983 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14984 written
|= (1 << 3);
14985 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14990 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14991 written
|= (1 << 3);
14992 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14998 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14999 written
|= (1 << 3);
15000 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15004 abuf
->written
= written
;
15009 /* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15012 SEM_FN_NAME (frvbf
,ccklt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15014 #define FLD(f) abuf->fields.sfmt_cckeq.f
15015 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15016 int UNUSED written
= 0;
15017 IADDR UNUSED pc
= abuf
->addr
;
15018 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15020 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15021 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)))) {
15024 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15025 written
|= (1 << 3);
15026 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15031 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15032 written
|= (1 << 3);
15033 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15039 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15040 written
|= (1 << 3);
15041 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15045 abuf
->written
= written
;
15050 /* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15053 SEM_FN_NAME (frvbf
,cckge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15055 #define FLD(f) abuf->fields.sfmt_cckeq.f
15056 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15057 int UNUSED written
= 0;
15058 IADDR UNUSED pc
= abuf
->addr
;
15059 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15061 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15062 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))))) {
15065 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15066 written
|= (1 << 3);
15067 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15072 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15073 written
|= (1 << 3);
15074 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15080 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15081 written
|= (1 << 3);
15082 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15086 abuf
->written
= written
;
15091 /* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15094 SEM_FN_NAME (frvbf
,cckls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15096 #define FLD(f) abuf->fields.sfmt_cckeq.f
15097 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15098 int UNUSED written
= 0;
15099 IADDR UNUSED pc
= abuf
->addr
;
15100 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15102 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15103 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2)))) {
15106 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15107 written
|= (1 << 3);
15108 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15113 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15114 written
|= (1 << 3);
15115 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15121 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15122 written
|= (1 << 3);
15123 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15127 abuf
->written
= written
;
15132 /* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15135 SEM_FN_NAME (frvbf
,cckhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15137 #define FLD(f) abuf->fields.sfmt_cckeq.f
15138 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15139 int UNUSED written
= 0;
15140 IADDR UNUSED pc
= abuf
->addr
;
15141 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15143 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15144 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))))) {
15147 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15148 written
|= (1 << 3);
15149 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15154 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15155 written
|= (1 << 3);
15156 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15162 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15163 written
|= (1 << 3);
15164 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15168 abuf
->written
= written
;
15173 /* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15176 SEM_FN_NAME (frvbf
,cckc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15178 #define FLD(f) abuf->fields.sfmt_cckeq.f
15179 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15180 int UNUSED written
= 0;
15181 IADDR UNUSED pc
= abuf
->addr
;
15182 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15184 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15185 if (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1))) {
15188 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15189 written
|= (1 << 3);
15190 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15195 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15196 written
|= (1 << 3);
15197 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15203 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15204 written
|= (1 << 3);
15205 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15209 abuf
->written
= written
;
15214 /* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15217 SEM_FN_NAME (frvbf
,ccknc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15219 #define FLD(f) abuf->fields.sfmt_cckeq.f
15220 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15221 int UNUSED written
= 0;
15222 IADDR UNUSED pc
= abuf
->addr
;
15223 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15225 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15226 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1)))) {
15229 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15230 written
|= (1 << 3);
15231 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15236 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15237 written
|= (1 << 3);
15238 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15244 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15245 written
|= (1 << 3);
15246 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15250 abuf
->written
= written
;
15255 /* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15258 SEM_FN_NAME (frvbf
,cckn
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15260 #define FLD(f) abuf->fields.sfmt_cckeq.f
15261 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15262 int UNUSED written
= 0;
15263 IADDR UNUSED pc
= abuf
->addr
;
15264 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15266 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15267 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3))) {
15270 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15271 written
|= (1 << 3);
15272 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15277 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15278 written
|= (1 << 3);
15279 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15285 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15286 written
|= (1 << 3);
15287 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15291 abuf
->written
= written
;
15296 /* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15299 SEM_FN_NAME (frvbf
,cckp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15301 #define FLD(f) abuf->fields.sfmt_cckeq.f
15302 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15303 int UNUSED written
= 0;
15304 IADDR UNUSED pc
= abuf
->addr
;
15305 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15307 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15308 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)))) {
15311 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15312 written
|= (1 << 3);
15313 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15318 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15319 written
|= (1 << 3);
15320 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15326 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15327 written
|= (1 << 3);
15328 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15332 abuf
->written
= written
;
15337 /* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15340 SEM_FN_NAME (frvbf
,cckv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15342 #define FLD(f) abuf->fields.sfmt_cckeq.f
15343 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15344 int UNUSED written
= 0;
15345 IADDR UNUSED pc
= abuf
->addr
;
15346 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15348 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15349 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1))) {
15352 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15353 written
|= (1 << 3);
15354 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15359 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15360 written
|= (1 << 3);
15361 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15367 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15368 written
|= (1 << 3);
15369 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15373 abuf
->written
= written
;
15378 /* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15381 SEM_FN_NAME (frvbf
,ccknv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15383 #define FLD(f) abuf->fields.sfmt_cckeq.f
15384 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15385 int UNUSED written
= 0;
15386 IADDR UNUSED pc
= abuf
->addr
;
15387 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15389 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15390 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1)))) {
15393 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15394 written
|= (1 << 3);
15395 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15400 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15401 written
|= (1 << 3);
15402 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15408 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15409 written
|= (1 << 3);
15410 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15414 abuf
->written
= written
;
15419 /* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15422 SEM_FN_NAME (frvbf
,cfckra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15424 #define FLD(f) abuf->fields.sfmt_cfckne.f
15425 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15426 int UNUSED written
= 0;
15427 IADDR UNUSED pc
= abuf
->addr
;
15428 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15430 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15433 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15434 written
|= (1 << 2);
15435 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15440 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15441 written
|= (1 << 2);
15442 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15446 abuf
->written
= written
;
15451 /* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15454 SEM_FN_NAME (frvbf
,cfckno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15456 #define FLD(f) abuf->fields.sfmt_cfckne.f
15457 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15458 int UNUSED written
= 0;
15459 IADDR UNUSED pc
= abuf
->addr
;
15460 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15462 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15465 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15466 written
|= (1 << 2);
15467 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15472 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15473 written
|= (1 << 2);
15474 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15478 abuf
->written
= written
;
15483 /* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15486 SEM_FN_NAME (frvbf
,cfckne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15488 #define FLD(f) abuf->fields.sfmt_cfckne.f
15489 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15490 int UNUSED written
= 0;
15491 IADDR UNUSED pc
= abuf
->addr
;
15492 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15494 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15495 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))))) {
15498 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15499 written
|= (1 << 3);
15500 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15505 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15506 written
|= (1 << 3);
15507 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15513 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15514 written
|= (1 << 3);
15515 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15519 abuf
->written
= written
;
15524 /* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15527 SEM_FN_NAME (frvbf
,cfckeq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15529 #define FLD(f) abuf->fields.sfmt_cfckne.f
15530 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15531 int UNUSED written
= 0;
15532 IADDR UNUSED pc
= abuf
->addr
;
15533 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15535 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15536 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3))) {
15539 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15540 written
|= (1 << 3);
15541 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15546 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15547 written
|= (1 << 3);
15548 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15554 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15555 written
|= (1 << 3);
15556 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15560 abuf
->written
= written
;
15565 /* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15568 SEM_FN_NAME (frvbf
,cfcklg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15570 #define FLD(f) abuf->fields.sfmt_cfckne.f
15571 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15572 int UNUSED written
= 0;
15573 IADDR UNUSED pc
= abuf
->addr
;
15574 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15576 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15577 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)))) {
15580 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15581 written
|= (1 << 3);
15582 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15587 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15588 written
|= (1 << 3);
15589 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15595 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15596 written
|= (1 << 3);
15597 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15601 abuf
->written
= written
;
15606 /* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15609 SEM_FN_NAME (frvbf
,cfckue
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15611 #define FLD(f) abuf->fields.sfmt_cfckne.f
15612 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15613 int UNUSED written
= 0;
15614 IADDR UNUSED pc
= abuf
->addr
;
15615 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15617 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15618 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1)))) {
15621 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15622 written
|= (1 << 3);
15623 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15628 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15629 written
|= (1 << 3);
15630 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15636 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15637 written
|= (1 << 3);
15638 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15642 abuf
->written
= written
;
15647 /* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15650 SEM_FN_NAME (frvbf
,cfckul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15652 #define FLD(f) abuf->fields.sfmt_cfckne.f
15653 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15654 int UNUSED written
= 0;
15655 IADDR UNUSED pc
= abuf
->addr
;
15656 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15658 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15659 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1)))) {
15662 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15663 written
|= (1 << 3);
15664 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15669 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15670 written
|= (1 << 3);
15671 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15677 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15678 written
|= (1 << 3);
15679 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15683 abuf
->written
= written
;
15688 /* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15691 SEM_FN_NAME (frvbf
,cfckge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15693 #define FLD(f) abuf->fields.sfmt_cfckne.f
15694 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15695 int UNUSED written
= 0;
15696 IADDR UNUSED pc
= abuf
->addr
;
15697 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15699 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15700 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)))) {
15703 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15704 written
|= (1 << 3);
15705 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15710 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15711 written
|= (1 << 3);
15712 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15718 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15719 written
|= (1 << 3);
15720 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15724 abuf
->written
= written
;
15729 /* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15732 SEM_FN_NAME (frvbf
,cfcklt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15734 #define FLD(f) abuf->fields.sfmt_cfckne.f
15735 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15736 int UNUSED written
= 0;
15737 IADDR UNUSED pc
= abuf
->addr
;
15738 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15740 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15741 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2))) {
15744 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15745 written
|= (1 << 3);
15746 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15751 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15752 written
|= (1 << 3);
15753 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15759 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15760 written
|= (1 << 3);
15761 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15765 abuf
->written
= written
;
15770 /* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15773 SEM_FN_NAME (frvbf
,cfckuge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15775 #define FLD(f) abuf->fields.sfmt_cfckne.f
15776 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15777 int UNUSED written
= 0;
15778 IADDR UNUSED pc
= abuf
->addr
;
15779 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15781 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15782 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))))) {
15785 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15786 written
|= (1 << 3);
15787 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15792 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15793 written
|= (1 << 3);
15794 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15800 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15801 written
|= (1 << 3);
15802 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15806 abuf
->written
= written
;
15811 /* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
15814 SEM_FN_NAME (frvbf
,cfckug
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15816 #define FLD(f) abuf->fields.sfmt_cfckne.f
15817 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15818 int UNUSED written
= 0;
15819 IADDR UNUSED pc
= abuf
->addr
;
15820 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15822 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15823 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1)))) {
15826 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15827 written
|= (1 << 3);
15828 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15833 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15834 written
|= (1 << 3);
15835 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15841 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15842 written
|= (1 << 3);
15843 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15847 abuf
->written
= written
;
15852 /* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
15855 SEM_FN_NAME (frvbf
,cfckle
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15857 #define FLD(f) abuf->fields.sfmt_cfckne.f
15858 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15859 int UNUSED written
= 0;
15860 IADDR UNUSED pc
= abuf
->addr
;
15861 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15863 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15864 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)))) {
15867 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15868 written
|= (1 << 3);
15869 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15874 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15875 written
|= (1 << 3);
15876 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15882 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15883 written
|= (1 << 3);
15884 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15888 abuf
->written
= written
;
15893 /* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15896 SEM_FN_NAME (frvbf
,cfckgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15898 #define FLD(f) abuf->fields.sfmt_cfckne.f
15899 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15900 int UNUSED written
= 0;
15901 IADDR UNUSED pc
= abuf
->addr
;
15902 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15904 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15905 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1))) {
15908 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15909 written
|= (1 << 3);
15910 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15915 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15916 written
|= (1 << 3);
15917 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15923 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15924 written
|= (1 << 3);
15925 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15929 abuf
->written
= written
;
15934 /* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
15937 SEM_FN_NAME (frvbf
,cfckule
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15939 #define FLD(f) abuf->fields.sfmt_cfckne.f
15940 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15941 int UNUSED written
= 0;
15942 IADDR UNUSED pc
= abuf
->addr
;
15943 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15945 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15946 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))))) {
15949 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15950 written
|= (1 << 3);
15951 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15956 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15957 written
|= (1 << 3);
15958 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15964 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15965 written
|= (1 << 3);
15966 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15970 abuf
->written
= written
;
15975 /* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
15978 SEM_FN_NAME (frvbf
,cfcku
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15980 #define FLD(f) abuf->fields.sfmt_cfckne.f
15981 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15982 int UNUSED written
= 0;
15983 IADDR UNUSED pc
= abuf
->addr
;
15984 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15986 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15987 if (TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1))) {
15990 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15991 written
|= (1 << 3);
15992 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15997 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15998 written
|= (1 << 3);
15999 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16005 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16006 written
|= (1 << 3);
16007 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16011 abuf
->written
= written
;
16016 /* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16019 SEM_FN_NAME (frvbf
,cfcko
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16021 #define FLD(f) abuf->fields.sfmt_cfckne.f
16022 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16023 int UNUSED written
= 0;
16024 IADDR UNUSED pc
= abuf
->addr
;
16025 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16027 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
16028 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))))) {
16031 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16032 written
|= (1 << 3);
16033 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16038 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16039 written
|= (1 << 3);
16040 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16046 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16047 written
|= (1 << 3);
16048 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16052 abuf
->written
= written
;
16057 /* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16060 SEM_FN_NAME (frvbf
,cjmpl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16062 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16063 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16064 int UNUSED written
= 0;
16065 IADDR UNUSED pc
= abuf
->addr
;
16066 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16068 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
16070 if (EQSI (FLD (f_LI
), 1)) {
16071 frvbf_set_write_next_vliw_addr_to_LR (current_cpu
, 1);
16074 USI opval
= ANDSI (ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), 0xfffffffc);
16075 sim_queue_pc_write (current_cpu
, opval
);
16076 written
|= (1 << 6);
16077 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
16079 frvbf_model_branch (current_cpu
, pc
, 2);
16083 abuf
->written
= written
;
16088 /* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16091 SEM_FN_NAME (frvbf
,ccalll
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16093 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16094 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16095 int UNUSED written
= 0;
16096 IADDR UNUSED pc
= abuf
->addr
;
16097 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16099 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
16101 if (EQSI (FLD (f_LI
), 1)) {
16102 frvbf_set_write_next_vliw_addr_to_LR (current_cpu
, 1);
16105 USI opval
= ANDSI (ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), 0xfffffffc);
16106 sim_queue_pc_write (current_cpu
, opval
);
16107 written
|= (1 << 6);
16108 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
16110 frvbf_model_branch (current_cpu
, pc
, 2);
16114 abuf
->written
= written
;
16119 /* ici: ici$pack @($GRi,$GRj) */
16122 SEM_FN_NAME (frvbf
,ici
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16124 #define FLD(f) abuf->fields.sfmt_icpl.f
16125 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16126 int UNUSED written
= 0;
16127 IADDR UNUSED pc
= abuf
->addr
;
16128 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16130 frvbf_insn_cache_invalidate (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), 0);
16136 /* dci: dci$pack @($GRi,$GRj) */
16139 SEM_FN_NAME (frvbf
,dci
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16141 #define FLD(f) abuf->fields.sfmt_icpl.f
16142 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16143 int UNUSED written
= 0;
16144 IADDR UNUSED pc
= abuf
->addr
;
16145 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16147 frvbf_data_cache_invalidate (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), 0);
16153 /* icei: icei$pack @($GRi,$GRj),$ae */
16156 SEM_FN_NAME (frvbf
,icei
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16158 #define FLD(f) abuf->fields.sfmt_icei.f
16159 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16160 int UNUSED written
= 0;
16161 IADDR UNUSED pc
= abuf
->addr
;
16162 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16164 if (EQSI (FLD (f_ae
), 0)) {
16165 frvbf_insn_cache_invalidate (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), -1);
16167 frvbf_insn_cache_invalidate (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), FLD (f_ae
));
16174 /* dcei: dcei$pack @($GRi,$GRj),$ae */
16177 SEM_FN_NAME (frvbf
,dcei
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16179 #define FLD(f) abuf->fields.sfmt_icei.f
16180 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16181 int UNUSED written
= 0;
16182 IADDR UNUSED pc
= abuf
->addr
;
16183 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16185 if (EQSI (FLD (f_ae
), 0)) {
16186 frvbf_data_cache_invalidate (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), -1);
16188 frvbf_data_cache_invalidate (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), FLD (f_ae
));
16195 /* dcf: dcf$pack @($GRi,$GRj) */
16198 SEM_FN_NAME (frvbf
,dcf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16200 #define FLD(f) abuf->fields.sfmt_icpl.f
16201 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16202 int UNUSED written
= 0;
16203 IADDR UNUSED pc
= abuf
->addr
;
16204 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16206 frvbf_data_cache_flush (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), 0);
16212 /* dcef: dcef$pack @($GRi,$GRj),$ae */
16215 SEM_FN_NAME (frvbf
,dcef
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16217 #define FLD(f) abuf->fields.sfmt_icei.f
16218 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16219 int UNUSED written
= 0;
16220 IADDR UNUSED pc
= abuf
->addr
;
16221 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16223 if (EQSI (FLD (f_ae
), 0)) {
16224 frvbf_data_cache_flush (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), -1);
16226 frvbf_data_cache_flush (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), FLD (f_ae
));
16233 /* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16236 SEM_FN_NAME (frvbf
,witlb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16238 #define FLD(f) abuf->fields.sfmt_empty.f
16239 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16240 int UNUSED written
= 0;
16241 IADDR UNUSED pc
= abuf
->addr
;
16242 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16244 ((void) 0); /*nop*/
16250 /* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16253 SEM_FN_NAME (frvbf
,wdtlb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16255 #define FLD(f) abuf->fields.sfmt_empty.f
16256 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16257 int UNUSED written
= 0;
16258 IADDR UNUSED pc
= abuf
->addr
;
16259 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16261 ((void) 0); /*nop*/
16267 /* itlbi: itlbi$pack @($GRi,$GRj) */
16270 SEM_FN_NAME (frvbf
,itlbi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16272 #define FLD(f) abuf->fields.sfmt_empty.f
16273 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16274 int UNUSED written
= 0;
16275 IADDR UNUSED pc
= abuf
->addr
;
16276 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16278 ((void) 0); /*nop*/
16284 /* dtlbi: dtlbi$pack @($GRi,$GRj) */
16287 SEM_FN_NAME (frvbf
,dtlbi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16289 #define FLD(f) abuf->fields.sfmt_empty.f
16290 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16291 int UNUSED written
= 0;
16292 IADDR UNUSED pc
= abuf
->addr
;
16293 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16295 ((void) 0); /*nop*/
16301 /* icpl: icpl$pack $GRi,$GRj,$lock */
16304 SEM_FN_NAME (frvbf
,icpl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16306 #define FLD(f) abuf->fields.sfmt_icpl.f
16307 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16308 int UNUSED written
= 0;
16309 IADDR UNUSED pc
= abuf
->addr
;
16310 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16312 frvbf_insn_cache_preload (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_lock
));
16318 /* dcpl: dcpl$pack $GRi,$GRj,$lock */
16321 SEM_FN_NAME (frvbf
,dcpl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16323 #define FLD(f) abuf->fields.sfmt_icpl.f
16324 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16325 int UNUSED written
= 0;
16326 IADDR UNUSED pc
= abuf
->addr
;
16327 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16329 frvbf_data_cache_preload (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_lock
));
16335 /* icul: icul$pack $GRi */
16338 SEM_FN_NAME (frvbf
,icul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16340 #define FLD(f) abuf->fields.sfmt_jmpil.f
16341 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16342 int UNUSED written
= 0;
16343 IADDR UNUSED pc
= abuf
->addr
;
16344 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16346 frvbf_insn_cache_unlock (current_cpu
, GET_H_GR (FLD (f_GRi
)));
16352 /* dcul: dcul$pack $GRi */
16355 SEM_FN_NAME (frvbf
,dcul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16357 #define FLD(f) abuf->fields.sfmt_jmpil.f
16358 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16359 int UNUSED written
= 0;
16360 IADDR UNUSED pc
= abuf
->addr
;
16361 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16363 frvbf_data_cache_unlock (current_cpu
, GET_H_GR (FLD (f_GRi
)));
16369 /* bar: bar$pack */
16372 SEM_FN_NAME (frvbf
,bar
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16374 #define FLD(f) abuf->fields.sfmt_empty.f
16375 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16376 int UNUSED written
= 0;
16377 IADDR UNUSED pc
= abuf
->addr
;
16378 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16380 ((void) 0); /*nop*/
16386 /* membar: membar$pack */
16389 SEM_FN_NAME (frvbf
,membar
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16391 #define FLD(f) abuf->fields.sfmt_empty.f
16392 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16393 int UNUSED written
= 0;
16394 IADDR UNUSED pc
= abuf
->addr
;
16395 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16397 ((void) 0); /*nop*/
16403 /* lrai: lrai$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
16406 SEM_FN_NAME (frvbf
,lrai
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16408 #define FLD(f) abuf->fields.sfmt_empty.f
16409 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16410 int UNUSED written
= 0;
16411 IADDR UNUSED pc
= abuf
->addr
;
16412 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16414 ((void) 0); /*nop*/
16420 /* lrad: lrad$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
16423 SEM_FN_NAME (frvbf
,lrad
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16425 #define FLD(f) abuf->fields.sfmt_empty.f
16426 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16427 int UNUSED written
= 0;
16428 IADDR UNUSED pc
= abuf
->addr
;
16429 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16431 ((void) 0); /*nop*/
16437 /* tlbpr: tlbpr$pack $GRi,$GRj,$TLBPRopx,$TLBPRL */
16440 SEM_FN_NAME (frvbf
,tlbpr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16442 #define FLD(f) abuf->fields.sfmt_empty.f
16443 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16444 int UNUSED written
= 0;
16445 IADDR UNUSED pc
= abuf
->addr
;
16446 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16448 ((void) 0); /*nop*/
16454 /* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16457 SEM_FN_NAME (frvbf
,cop1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16459 #define FLD(f) abuf->fields.sfmt_empty.f
16460 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16461 int UNUSED written
= 0;
16462 IADDR UNUSED pc
= abuf
->addr
;
16463 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16465 ((void) 0); /*nop*/
16471 /* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16474 SEM_FN_NAME (frvbf
,cop2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16476 #define FLD(f) abuf->fields.sfmt_empty.f
16477 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16478 int UNUSED written
= 0;
16479 IADDR UNUSED pc
= abuf
->addr
;
16480 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16482 ((void) 0); /*nop*/
16488 /* clrgr: clrgr$pack $GRk */
16491 SEM_FN_NAME (frvbf
,clrgr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16493 #define FLD(f) abuf->fields.sfmt_swapi.f
16494 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16495 int UNUSED written
= 0;
16496 IADDR UNUSED pc
= abuf
->addr
;
16497 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16500 frv_ref_SI (GET_H_GR (FLD (f_GRk
)));
16501 frvbf_clear_ne_flags (current_cpu
, FLD (f_GRk
), 0);
16508 /* clrfr: clrfr$pack $FRk */
16511 SEM_FN_NAME (frvbf
,clrfr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16513 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16514 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16515 int UNUSED written
= 0;
16516 IADDR UNUSED pc
= abuf
->addr
;
16517 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16520 frv_ref_SI (GET_H_FR (FLD (f_FRk
)));
16521 frvbf_clear_ne_flags (current_cpu
, FLD (f_FRk
), 1);
16528 /* clrga: clrga$pack */
16531 SEM_FN_NAME (frvbf
,clrga
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16533 #define FLD(f) abuf->fields.sfmt_empty.f
16534 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16535 int UNUSED written
= 0;
16536 IADDR UNUSED pc
= abuf
->addr
;
16537 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16539 frvbf_clear_ne_flags (current_cpu
, -1, 0);
16545 /* clrfa: clrfa$pack */
16548 SEM_FN_NAME (frvbf
,clrfa
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16550 #define FLD(f) abuf->fields.sfmt_empty.f
16551 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16552 int UNUSED written
= 0;
16553 IADDR UNUSED pc
= abuf
->addr
;
16554 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16556 frvbf_clear_ne_flags (current_cpu
, -1, 1);
16562 /* commitgr: commitgr$pack $GRk */
16565 SEM_FN_NAME (frvbf
,commitgr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16567 #define FLD(f) abuf->fields.sfmt_setlos.f
16568 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16569 int UNUSED written
= 0;
16570 IADDR UNUSED pc
= abuf
->addr
;
16571 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16573 frvbf_commit (current_cpu
, FLD (f_GRk
), 0);
16579 /* commitfr: commitfr$pack $FRk */
16582 SEM_FN_NAME (frvbf
,commitfr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16584 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16585 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16586 int UNUSED written
= 0;
16587 IADDR UNUSED pc
= abuf
->addr
;
16588 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16590 frvbf_commit (current_cpu
, FLD (f_FRk
), 1);
16596 /* commitga: commitga$pack */
16599 SEM_FN_NAME (frvbf
,commitga
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16601 #define FLD(f) abuf->fields.sfmt_empty.f
16602 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16603 int UNUSED written
= 0;
16604 IADDR UNUSED pc
= abuf
->addr
;
16605 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16607 frvbf_commit (current_cpu
, -1, 0);
16613 /* commitfa: commitfa$pack */
16616 SEM_FN_NAME (frvbf
,commitfa
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16618 #define FLD(f) abuf->fields.sfmt_empty.f
16619 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16620 int UNUSED written
= 0;
16621 IADDR UNUSED pc
= abuf
->addr
;
16622 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16624 frvbf_commit (current_cpu
, -1, 1);
16630 /* fitos: fitos$pack $FRintj,$FRk */
16633 SEM_FN_NAME (frvbf
,fitos
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16635 #define FLD(f) abuf->fields.sfmt_fditos.f
16636 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16637 int UNUSED written
= 0;
16638 IADDR UNUSED pc
= abuf
->addr
;
16639 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16642 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->floatsisf (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR_INT (FLD (f_FRj
)));
16643 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
16644 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16651 /* fstoi: fstoi$pack $FRj,$FRintk */
16654 SEM_FN_NAME (frvbf
,fstoi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16656 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16657 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16658 int UNUSED written
= 0;
16659 IADDR UNUSED pc
= abuf
->addr
;
16660 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16663 SI opval
= CGEN_CPU_FPU (current_cpu
)->ops
->fixsfsi (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR (FLD (f_FRj
)));
16664 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
16665 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
16672 /* fitod: fitod$pack $FRintj,$FRdoublek */
16675 SEM_FN_NAME (frvbf
,fitod
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16677 #define FLD(f) abuf->fields.sfmt_fitod.f
16678 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16679 int UNUSED written
= 0;
16680 IADDR UNUSED pc
= abuf
->addr
;
16681 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16684 DF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->floatsidf (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR_INT (FLD (f_FRj
)));
16685 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
16686 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
16693 /* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16696 SEM_FN_NAME (frvbf
,fdtoi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16698 #define FLD(f) abuf->fields.sfmt_fdtoi.f
16699 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16700 int UNUSED written
= 0;
16701 IADDR UNUSED pc
= abuf
->addr
;
16702 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16705 SI opval
= CGEN_CPU_FPU (current_cpu
)->ops
->fixdfsi (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR_DOUBLE (FLD (f_FRj
)));
16706 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
16707 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
16714 /* fditos: fditos$pack $FRintj,$FRk */
16717 SEM_FN_NAME (frvbf
,fditos
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16719 #define FLD(f) abuf->fields.sfmt_fditos.f
16720 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16721 int UNUSED written
= 0;
16722 IADDR UNUSED pc
= abuf
->addr
;
16723 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16727 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->floatsisf (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR_INT (FLD (f_FRj
)));
16728 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
16729 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16732 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->floatsisf (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR_INT (ADDSI (FLD (f_FRj
), 1)));
16733 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
16734 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16742 /* fdstoi: fdstoi$pack $FRj,$FRintk */
16745 SEM_FN_NAME (frvbf
,fdstoi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16747 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16748 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16749 int UNUSED written
= 0;
16750 IADDR UNUSED pc
= abuf
->addr
;
16751 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16755 SI opval
= CGEN_CPU_FPU (current_cpu
)->ops
->fixsfsi (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR (FLD (f_FRj
)));
16756 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
16757 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
16760 USI opval
= CGEN_CPU_FPU (current_cpu
)->ops
->fixsfsi (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
16761 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ADDSI (FLD (f_FRk
), 1), opval
);
16762 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
16770 /* nfditos: nfditos$pack $FRintj,$FRk */
16773 SEM_FN_NAME (frvbf
,nfditos
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16775 #define FLD(f) abuf->fields.sfmt_fditos.f
16776 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16777 int UNUSED written
= 0;
16778 IADDR UNUSED pc
= abuf
->addr
;
16779 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16782 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
16784 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->floatsisf (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR_INT (FLD (f_FRj
)));
16785 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
16786 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16788 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
16790 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->floatsisf (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR_INT (ADDSI (FLD (f_FRj
), 1)));
16791 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
16792 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16800 /* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16803 SEM_FN_NAME (frvbf
,nfdstoi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16805 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16806 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16807 int UNUSED written
= 0;
16808 IADDR UNUSED pc
= abuf
->addr
;
16809 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16812 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
16814 SI opval
= CGEN_CPU_FPU (current_cpu
)->ops
->fixsfsi (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR (FLD (f_FRj
)));
16815 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
16816 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
16818 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
16820 USI opval
= CGEN_CPU_FPU (current_cpu
)->ops
->fixsfsi (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
16821 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ADDSI (FLD (f_FRk
), 1), opval
);
16822 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
16830 /* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
16833 SEM_FN_NAME (frvbf
,cfitos
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16835 #define FLD(f) abuf->fields.sfmt_cfitos.f
16836 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16837 int UNUSED written
= 0;
16838 IADDR UNUSED pc
= abuf
->addr
;
16839 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16841 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
16843 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->floatsisf (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR_INT (FLD (f_FRj
)));
16844 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
16845 written
|= (1 << 3);
16846 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16850 abuf
->written
= written
;
16855 /* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
16858 SEM_FN_NAME (frvbf
,cfstoi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16860 #define FLD(f) abuf->fields.sfmt_cfstoi.f
16861 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16862 int UNUSED written
= 0;
16863 IADDR UNUSED pc
= abuf
->addr
;
16864 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16866 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
16868 SI opval
= CGEN_CPU_FPU (current_cpu
)->ops
->fixsfsi (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR (FLD (f_FRj
)));
16869 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
16870 written
|= (1 << 3);
16871 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
16875 abuf
->written
= written
;
16880 /* nfitos: nfitos$pack $FRintj,$FRk */
16883 SEM_FN_NAME (frvbf
,nfitos
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16885 #define FLD(f) abuf->fields.sfmt_fditos.f
16886 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16887 int UNUSED written
= 0;
16888 IADDR UNUSED pc
= abuf
->addr
;
16889 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16892 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
16894 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->floatsisf (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR_INT (FLD (f_FRj
)));
16895 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
16896 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16904 /* nfstoi: nfstoi$pack $FRj,$FRintk */
16907 SEM_FN_NAME (frvbf
,nfstoi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16909 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16910 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16911 int UNUSED written
= 0;
16912 IADDR UNUSED pc
= abuf
->addr
;
16913 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16916 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
16918 SI opval
= CGEN_CPU_FPU (current_cpu
)->ops
->fixsfsi (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR (FLD (f_FRj
)));
16919 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
16920 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
16928 /* fmovs: fmovs$pack $FRj,$FRk */
16931 SEM_FN_NAME (frvbf
,fmovs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16933 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16934 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16935 int UNUSED written
= 0;
16936 IADDR UNUSED pc
= abuf
->addr
;
16937 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16940 SF opval
= GET_H_FR (FLD (f_FRj
));
16941 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
16942 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16949 /* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
16952 SEM_FN_NAME (frvbf
,fmovd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16954 #define FLD(f) abuf->fields.sfmt_fmaddd.f
16955 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16956 int UNUSED written
= 0;
16957 IADDR UNUSED pc
= abuf
->addr
;
16958 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16961 DF opval
= GET_H_FR_DOUBLE (FLD (f_FRj
));
16962 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
16963 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
16970 /* fdmovs: fdmovs$pack $FRj,$FRk */
16973 SEM_FN_NAME (frvbf
,fdmovs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16975 #define FLD(f) abuf->fields.sfmt_fdmadds.f
16976 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16977 int UNUSED written
= 0;
16978 IADDR UNUSED pc
= abuf
->addr
;
16979 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16983 SF opval
= GET_H_FR (FLD (f_FRj
));
16984 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
16985 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16988 SF opval
= GET_H_FR (ADDSI (FLD (f_FRj
), 1));
16989 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
16990 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16998 /* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
17001 SEM_FN_NAME (frvbf
,cfmovs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17003 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17004 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17005 int UNUSED written
= 0;
17006 IADDR UNUSED pc
= abuf
->addr
;
17007 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17009 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17011 SF opval
= GET_H_FR (FLD (f_FRj
));
17012 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17013 written
|= (1 << 3);
17014 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17018 abuf
->written
= written
;
17023 /* fnegs: fnegs$pack $FRj,$FRk */
17026 SEM_FN_NAME (frvbf
,fnegs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17028 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17029 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17030 int UNUSED written
= 0;
17031 IADDR UNUSED pc
= abuf
->addr
;
17032 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17035 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->negsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17036 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17037 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17044 /* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17047 SEM_FN_NAME (frvbf
,fnegd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17049 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17050 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17051 int UNUSED written
= 0;
17052 IADDR UNUSED pc
= abuf
->addr
;
17053 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17056 DF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->negdf (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRj
)));
17057 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17058 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17065 /* fdnegs: fdnegs$pack $FRj,$FRk */
17068 SEM_FN_NAME (frvbf
,fdnegs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17070 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17071 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17072 int UNUSED written
= 0;
17073 IADDR UNUSED pc
= abuf
->addr
;
17074 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17078 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->negsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17079 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17080 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17083 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->negsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
17084 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
17085 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17093 /* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17096 SEM_FN_NAME (frvbf
,cfnegs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17098 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17099 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17100 int UNUSED written
= 0;
17101 IADDR UNUSED pc
= abuf
->addr
;
17102 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17104 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17106 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->negsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17107 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17108 written
|= (1 << 3);
17109 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17113 abuf
->written
= written
;
17118 /* fabss: fabss$pack $FRj,$FRk */
17121 SEM_FN_NAME (frvbf
,fabss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17123 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17124 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17125 int UNUSED written
= 0;
17126 IADDR UNUSED pc
= abuf
->addr
;
17127 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17130 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->abssf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17131 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17132 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17139 /* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17142 SEM_FN_NAME (frvbf
,fabsd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17144 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17145 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17146 int UNUSED written
= 0;
17147 IADDR UNUSED pc
= abuf
->addr
;
17148 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17151 DF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->absdf (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRj
)));
17152 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17153 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17160 /* fdabss: fdabss$pack $FRj,$FRk */
17163 SEM_FN_NAME (frvbf
,fdabss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17165 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17166 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17167 int UNUSED written
= 0;
17168 IADDR UNUSED pc
= abuf
->addr
;
17169 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17173 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->abssf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17174 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17175 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17178 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->abssf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
17179 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
17180 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17188 /* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17191 SEM_FN_NAME (frvbf
,cfabss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17193 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17194 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17195 int UNUSED written
= 0;
17196 IADDR UNUSED pc
= abuf
->addr
;
17197 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17199 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17201 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->abssf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17202 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17203 written
|= (1 << 3);
17204 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17208 abuf
->written
= written
;
17213 /* fsqrts: fsqrts$pack $FRj,$FRk */
17216 SEM_FN_NAME (frvbf
,fsqrts
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17218 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17219 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17220 int UNUSED written
= 0;
17221 IADDR UNUSED pc
= abuf
->addr
;
17222 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17225 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->sqrtsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17226 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17227 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17234 /* fdsqrts: fdsqrts$pack $FRj,$FRk */
17237 SEM_FN_NAME (frvbf
,fdsqrts
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17239 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17240 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17241 int UNUSED written
= 0;
17242 IADDR UNUSED pc
= abuf
->addr
;
17243 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17247 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->sqrtsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17248 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17249 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17252 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->sqrtsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
17253 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
17254 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17262 /* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17265 SEM_FN_NAME (frvbf
,nfdsqrts
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17267 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17268 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17269 int UNUSED written
= 0;
17270 IADDR UNUSED pc
= abuf
->addr
;
17271 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17274 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
17276 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->sqrtsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17277 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17278 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17280 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
17282 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->sqrtsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
17283 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
17284 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17292 /* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17295 SEM_FN_NAME (frvbf
,fsqrtd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17297 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17298 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17299 int UNUSED written
= 0;
17300 IADDR UNUSED pc
= abuf
->addr
;
17301 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17304 DF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->sqrtdf (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRj
)));
17305 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17306 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17313 /* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17316 SEM_FN_NAME (frvbf
,cfsqrts
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17318 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17319 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17320 int UNUSED written
= 0;
17321 IADDR UNUSED pc
= abuf
->addr
;
17322 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17324 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17326 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->sqrtsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17327 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17328 written
|= (1 << 3);
17329 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17333 abuf
->written
= written
;
17338 /* nfsqrts: nfsqrts$pack $FRj,$FRk */
17341 SEM_FN_NAME (frvbf
,nfsqrts
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17343 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17344 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17345 int UNUSED written
= 0;
17346 IADDR UNUSED pc
= abuf
->addr
;
17347 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17350 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
17352 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->sqrtsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17353 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17354 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17362 /* fadds: fadds$pack $FRi,$FRj,$FRk */
17365 SEM_FN_NAME (frvbf
,fadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17367 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17368 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17369 int UNUSED written
= 0;
17370 IADDR UNUSED pc
= abuf
->addr
;
17371 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17374 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
)));
17375 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17376 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17383 /* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17386 SEM_FN_NAME (frvbf
,fsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17388 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17389 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17390 int UNUSED written
= 0;
17391 IADDR UNUSED pc
= abuf
->addr
;
17392 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17395 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
)));
17396 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17397 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17404 /* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17407 SEM_FN_NAME (frvbf
,fmuls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17409 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17410 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17411 int UNUSED written
= 0;
17412 IADDR UNUSED pc
= abuf
->addr
;
17413 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17416 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
)));
17417 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17418 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17425 /* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17428 SEM_FN_NAME (frvbf
,fdivs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17430 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17431 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17432 int UNUSED written
= 0;
17433 IADDR UNUSED pc
= abuf
->addr
;
17434 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17437 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
)));
17438 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17439 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17446 /* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17449 SEM_FN_NAME (frvbf
,faddd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17451 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17452 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17453 int UNUSED written
= 0;
17454 IADDR UNUSED pc
= abuf
->addr
;
17455 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17458 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
)));
17459 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17460 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17467 /* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17470 SEM_FN_NAME (frvbf
,fsubd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17472 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17473 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17474 int UNUSED written
= 0;
17475 IADDR UNUSED pc
= abuf
->addr
;
17476 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17479 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
)));
17480 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17481 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17488 /* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17491 SEM_FN_NAME (frvbf
,fmuld
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17493 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17494 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17495 int UNUSED written
= 0;
17496 IADDR UNUSED pc
= abuf
->addr
;
17497 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17500 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
)));
17501 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17502 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17509 /* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17512 SEM_FN_NAME (frvbf
,fdivd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17514 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17515 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17516 int UNUSED written
= 0;
17517 IADDR UNUSED pc
= abuf
->addr
;
17518 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17521 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
)));
17522 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17523 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17530 /* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17533 SEM_FN_NAME (frvbf
,cfadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17535 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17536 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17537 int UNUSED written
= 0;
17538 IADDR UNUSED pc
= abuf
->addr
;
17539 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17541 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17543 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
)));
17544 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17545 written
|= (1 << 4);
17546 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17550 abuf
->written
= written
;
17555 /* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17558 SEM_FN_NAME (frvbf
,cfsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17560 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17561 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17562 int UNUSED written
= 0;
17563 IADDR UNUSED pc
= abuf
->addr
;
17564 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17566 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17568 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
)));
17569 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17570 written
|= (1 << 4);
17571 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17575 abuf
->written
= written
;
17580 /* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17583 SEM_FN_NAME (frvbf
,cfmuls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17585 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17586 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17587 int UNUSED written
= 0;
17588 IADDR UNUSED pc
= abuf
->addr
;
17589 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17591 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17593 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
)));
17594 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17595 written
|= (1 << 4);
17596 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17600 abuf
->written
= written
;
17605 /* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17608 SEM_FN_NAME (frvbf
,cfdivs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17610 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17611 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17612 int UNUSED written
= 0;
17613 IADDR UNUSED pc
= abuf
->addr
;
17614 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17616 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17618 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->divsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17619 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17620 written
|= (1 << 4);
17621 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17625 abuf
->written
= written
;
17630 /* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17633 SEM_FN_NAME (frvbf
,nfadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17635 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17636 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17637 int UNUSED written
= 0;
17638 IADDR UNUSED pc
= abuf
->addr
;
17639 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17642 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
17644 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
)));
17645 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17646 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17654 /* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17657 SEM_FN_NAME (frvbf
,nfsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17659 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17660 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17661 int UNUSED written
= 0;
17662 IADDR UNUSED pc
= abuf
->addr
;
17663 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17666 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
17668 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
)));
17669 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17670 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17678 /* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17681 SEM_FN_NAME (frvbf
,nfmuls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17683 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17684 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17685 int UNUSED written
= 0;
17686 IADDR UNUSED pc
= abuf
->addr
;
17687 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17690 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
17692 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
)));
17693 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17694 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17702 /* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17705 SEM_FN_NAME (frvbf
,nfdivs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17707 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17708 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17709 int UNUSED written
= 0;
17710 IADDR UNUSED pc
= abuf
->addr
;
17711 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17714 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
17716 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
)));
17717 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17718 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17726 /* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17729 SEM_FN_NAME (frvbf
,fcmps
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17731 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17732 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17733 int UNUSED written
= 0;
17734 IADDR UNUSED pc
= abuf
->addr
;
17735 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17737 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
)))) {
17740 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17741 written
|= (1 << 2);
17742 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17745 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
)))) {
17748 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17749 written
|= (1 << 2);
17750 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17753 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
)))) {
17756 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17757 written
|= (1 << 2);
17758 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17763 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17764 written
|= (1 << 2);
17765 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17771 abuf
->written
= written
;
17776 /* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17779 SEM_FN_NAME (frvbf
,fcmpd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17781 #define FLD(f) abuf->fields.sfmt_fcmpd.f
17782 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17783 int UNUSED written
= 0;
17784 IADDR UNUSED pc
= abuf
->addr
;
17785 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17787 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
)))) {
17790 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17791 written
|= (1 << 2);
17792 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17795 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
)))) {
17798 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17799 written
|= (1 << 2);
17800 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17803 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
)))) {
17806 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17807 written
|= (1 << 2);
17808 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17813 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17814 written
|= (1 << 2);
17815 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17821 abuf
->written
= written
;
17826 /* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
17829 SEM_FN_NAME (frvbf
,cfcmps
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17831 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17832 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17833 int UNUSED written
= 0;
17834 IADDR UNUSED pc
= abuf
->addr
;
17835 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17837 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17838 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
)))) {
17841 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17842 written
|= (1 << 4);
17843 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17846 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
)))) {
17849 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17850 written
|= (1 << 4);
17851 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17854 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
)))) {
17857 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17858 written
|= (1 << 4);
17859 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17864 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17865 written
|= (1 << 4);
17866 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17873 abuf
->written
= written
;
17878 /* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
17881 SEM_FN_NAME (frvbf
,fdcmps
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17883 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
17884 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17885 int UNUSED written
= 0;
17886 IADDR UNUSED pc
= abuf
->addr
;
17887 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17890 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
)))) {
17893 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17894 written
|= (1 << 7);
17895 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17898 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
)))) {
17901 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17902 written
|= (1 << 7);
17903 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17906 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
)))) {
17909 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17910 written
|= (1 << 7);
17911 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17916 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17917 written
|= (1 << 7);
17918 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17923 if (CGEN_CPU_FPU (current_cpu
)->ops
->gtsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)))) {
17926 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[ADDSI (FLD (f_FCCi_2
), 1)]), opval
);
17927 written
|= (1 << 8);
17928 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17931 if (CGEN_CPU_FPU (current_cpu
)->ops
->eqsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)))) {
17934 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[ADDSI (FLD (f_FCCi_2
), 1)]), opval
);
17935 written
|= (1 << 8);
17936 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17939 if (CGEN_CPU_FPU (current_cpu
)->ops
->ltsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)))) {
17942 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[ADDSI (FLD (f_FCCi_2
), 1)]), opval
);
17943 written
|= (1 << 8);
17944 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17949 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[ADDSI (FLD (f_FCCi_2
), 1)]), opval
);
17950 written
|= (1 << 8);
17951 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17958 abuf
->written
= written
;
17963 /* fmadds: fmadds$pack $FRi,$FRj,$FRk */
17966 SEM_FN_NAME (frvbf
,fmadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17968 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17969 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17970 int UNUSED written
= 0;
17971 IADDR UNUSED pc
= abuf
->addr
;
17972 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17975 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
)));
17976 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17977 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17984 /* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
17987 SEM_FN_NAME (frvbf
,fmsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17989 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17990 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17991 int UNUSED written
= 0;
17992 IADDR UNUSED pc
= abuf
->addr
;
17993 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17996 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
)));
17997 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17998 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18005 /* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18008 SEM_FN_NAME (frvbf
,fmaddd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18010 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18011 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18012 int UNUSED written
= 0;
18013 IADDR UNUSED pc
= abuf
->addr
;
18014 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18017 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
)));
18018 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
18019 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
18026 /* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18029 SEM_FN_NAME (frvbf
,fmsubd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18031 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18032 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18033 int UNUSED written
= 0;
18034 IADDR UNUSED pc
= abuf
->addr
;
18035 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18038 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
)));
18039 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
18040 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
18047 /* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18050 SEM_FN_NAME (frvbf
,fdmadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18052 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18053 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18054 int UNUSED written
= 0;
18055 IADDR UNUSED pc
= abuf
->addr
;
18056 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18060 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
)));
18061 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18062 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18065 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->addsf (CGEN_CPU_FPU (current_cpu
), CGEN_CPU_FPU (current_cpu
)->ops
->mulsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1))), GET_H_FR (ADDSI (FLD (f_FRk
), 1)));
18066 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18067 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18075 /* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18078 SEM_FN_NAME (frvbf
,nfdmadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18080 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18081 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18082 int UNUSED written
= 0;
18083 IADDR UNUSED pc
= abuf
->addr
;
18084 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18087 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18089 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
)));
18090 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18091 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18093 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18095 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->addsf (CGEN_CPU_FPU (current_cpu
), CGEN_CPU_FPU (current_cpu
)->ops
->mulsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1))), GET_H_FR (ADDSI (FLD (f_FRk
), 1)));
18096 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18097 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18105 /* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18108 SEM_FN_NAME (frvbf
,cfmadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18110 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18111 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18112 int UNUSED written
= 0;
18113 IADDR UNUSED pc
= abuf
->addr
;
18114 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18116 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
18118 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
)));
18119 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18120 written
|= (1 << 5);
18121 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18125 abuf
->written
= written
;
18130 /* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18133 SEM_FN_NAME (frvbf
,cfmsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18135 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18136 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18137 int UNUSED written
= 0;
18138 IADDR UNUSED pc
= abuf
->addr
;
18139 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18141 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
18143 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
)));
18144 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18145 written
|= (1 << 5);
18146 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18150 abuf
->written
= written
;
18155 /* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18158 SEM_FN_NAME (frvbf
,nfmadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18160 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18161 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18162 int UNUSED written
= 0;
18163 IADDR UNUSED pc
= abuf
->addr
;
18164 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18167 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18169 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
)));
18170 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18171 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18179 /* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18182 SEM_FN_NAME (frvbf
,nfmsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18184 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18185 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18186 int UNUSED written
= 0;
18187 IADDR UNUSED pc
= abuf
->addr
;
18188 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18191 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18193 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
)));
18194 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18195 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18203 /* fmas: fmas$pack $FRi,$FRj,$FRk */
18206 SEM_FN_NAME (frvbf
,fmas
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18208 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18209 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18210 int UNUSED written
= 0;
18211 IADDR UNUSED pc
= abuf
->addr
;
18212 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18216 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
)));
18217 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18218 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18221 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->addsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18222 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18223 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18231 /* fmss: fmss$pack $FRi,$FRj,$FRk */
18234 SEM_FN_NAME (frvbf
,fmss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18236 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18237 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18238 int UNUSED written
= 0;
18239 IADDR UNUSED pc
= abuf
->addr
;
18240 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18244 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
)));
18245 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18246 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18249 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->subsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18250 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18251 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18259 /* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18262 SEM_FN_NAME (frvbf
,fdmas
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18264 #define FLD(f) abuf->fields.sfmt_fdmas.f
18265 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18266 int UNUSED written
= 0;
18267 IADDR UNUSED pc
= abuf
->addr
;
18268 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18272 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
)));
18273 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18274 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18277 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->addsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18278 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18279 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18282 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->mulsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 2)), GET_H_FR (ADDSI (FLD (f_FRj
), 2)));
18283 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 2), opval
);
18284 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18287 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->addsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 3)), GET_H_FR (ADDSI (FLD (f_FRj
), 3)));
18288 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 3), opval
);
18289 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18297 /* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18300 SEM_FN_NAME (frvbf
,fdmss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18302 #define FLD(f) abuf->fields.sfmt_fdmas.f
18303 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18304 int UNUSED written
= 0;
18305 IADDR UNUSED pc
= abuf
->addr
;
18306 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18310 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
)));
18311 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18312 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18315 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->subsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18316 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18317 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18320 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->mulsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 2)), GET_H_FR (ADDSI (FLD (f_FRj
), 2)));
18321 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 2), opval
);
18322 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18325 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->subsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 3)), GET_H_FR (ADDSI (FLD (f_FRj
), 3)));
18326 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 3), opval
);
18327 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18335 /* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18338 SEM_FN_NAME (frvbf
,nfdmas
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18340 #define FLD(f) abuf->fields.sfmt_fdmas.f
18341 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18342 int UNUSED written
= 0;
18343 IADDR UNUSED pc
= abuf
->addr
;
18344 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18347 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18348 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18349 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 2));
18350 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 3));
18352 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
)));
18353 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18354 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18357 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->addsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18358 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18359 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18362 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->mulsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 2)), GET_H_FR (ADDSI (FLD (f_FRj
), 2)));
18363 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 2), opval
);
18364 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18367 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->addsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 3)), GET_H_FR (ADDSI (FLD (f_FRj
), 3)));
18368 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 3), opval
);
18369 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18377 /* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18380 SEM_FN_NAME (frvbf
,nfdmss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18382 #define FLD(f) abuf->fields.sfmt_fdmas.f
18383 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18384 int UNUSED written
= 0;
18385 IADDR UNUSED pc
= abuf
->addr
;
18386 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18389 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18390 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18391 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 2));
18392 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 3));
18394 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
)));
18395 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18396 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18399 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->subsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18400 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18401 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18404 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->mulsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 2)), GET_H_FR (ADDSI (FLD (f_FRj
), 2)));
18405 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 2), opval
);
18406 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18409 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->subsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 3)), GET_H_FR (ADDSI (FLD (f_FRj
), 3)));
18410 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 3), opval
);
18411 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18419 /* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18422 SEM_FN_NAME (frvbf
,cfmas
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18424 #define FLD(f) abuf->fields.sfmt_cfmas.f
18425 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18426 int UNUSED written
= 0;
18427 IADDR UNUSED pc
= abuf
->addr
;
18428 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18430 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
18433 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
)));
18434 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18435 written
|= (1 << 9);
18436 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18439 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->addsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18440 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18441 written
|= (1 << 10);
18442 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18447 abuf
->written
= written
;
18452 /* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18455 SEM_FN_NAME (frvbf
,cfmss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18457 #define FLD(f) abuf->fields.sfmt_cfmas.f
18458 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18459 int UNUSED written
= 0;
18460 IADDR UNUSED pc
= abuf
->addr
;
18461 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18463 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
18466 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
)));
18467 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18468 written
|= (1 << 9);
18469 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18472 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->subsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18473 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18474 written
|= (1 << 10);
18475 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18480 abuf
->written
= written
;
18485 /* fmad: fmad$pack $FRi,$FRj,$FRk */
18488 SEM_FN_NAME (frvbf
,fmad
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18490 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18491 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18492 int UNUSED written
= 0;
18493 IADDR UNUSED pc
= abuf
->addr
;
18494 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18498 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->ftruncdfsf (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, CGEN_CPU_FPU (current_cpu
)->ops
->muldf (CGEN_CPU_FPU (current_cpu
), CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR (FLD (f_FRi
))), CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR (FLD (f_FRj
)))));
18499 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18500 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18503 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->ftruncdfsf (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, CGEN_CPU_FPU (current_cpu
)->ops
->adddf (CGEN_CPU_FPU (current_cpu
), CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR (ADDSI (FLD (f_FRi
), 1))), CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR (ADDSI (FLD (f_FRj
), 1)))));
18504 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18505 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18513 /* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18516 SEM_FN_NAME (frvbf
,fmsd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18518 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18519 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18520 int UNUSED written
= 0;
18521 IADDR UNUSED pc
= abuf
->addr
;
18522 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18526 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->ftruncdfsf (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, CGEN_CPU_FPU (current_cpu
)->ops
->muldf (CGEN_CPU_FPU (current_cpu
), CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR (FLD (f_FRi
))), CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR (FLD (f_FRj
)))));
18527 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18528 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18531 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->ftruncdfsf (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, CGEN_CPU_FPU (current_cpu
)->ops
->subdf (CGEN_CPU_FPU (current_cpu
), CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR (ADDSI (FLD (f_FRi
), 1))), CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf (CGEN_CPU_FPU (current_cpu
), FPCONV_DEFAULT
, GET_H_FR (ADDSI (FLD (f_FRj
), 1)))));
18532 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18533 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18541 /* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18544 SEM_FN_NAME (frvbf
,nfmas
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18546 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18547 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18548 int UNUSED written
= 0;
18549 IADDR UNUSED pc
= abuf
->addr
;
18550 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18553 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18555 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
)));
18556 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18557 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18559 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18561 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->addsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18562 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18563 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18571 /* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18574 SEM_FN_NAME (frvbf
,nfmss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18576 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18577 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18578 int UNUSED written
= 0;
18579 IADDR UNUSED pc
= abuf
->addr
;
18580 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18583 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18585 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
)));
18586 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18587 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18589 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18591 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->subsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18592 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18593 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18601 /* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18604 SEM_FN_NAME (frvbf
,fdadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18606 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18607 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18608 int UNUSED written
= 0;
18609 IADDR UNUSED pc
= abuf
->addr
;
18610 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18614 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
)));
18615 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18616 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18619 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->addsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18620 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18621 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18629 /* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18632 SEM_FN_NAME (frvbf
,fdsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18634 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18635 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18636 int UNUSED written
= 0;
18637 IADDR UNUSED pc
= abuf
->addr
;
18638 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18642 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
)));
18643 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18644 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18647 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->subsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18648 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18649 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18657 /* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18660 SEM_FN_NAME (frvbf
,fdmuls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18662 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18663 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18664 int UNUSED written
= 0;
18665 IADDR UNUSED pc
= abuf
->addr
;
18666 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18670 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
)));
18671 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18672 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18675 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->mulsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18676 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18677 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18685 /* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18688 SEM_FN_NAME (frvbf
,fddivs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18690 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18691 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18692 int UNUSED written
= 0;
18693 IADDR UNUSED pc
= abuf
->addr
;
18694 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18698 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
)));
18699 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18700 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18703 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->divsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18704 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18705 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18713 /* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18716 SEM_FN_NAME (frvbf
,fdsads
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18718 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18719 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18720 int UNUSED written
= 0;
18721 IADDR UNUSED pc
= abuf
->addr
;
18722 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18726 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
)));
18727 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18728 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18731 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->subsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18732 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18733 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18741 /* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18744 SEM_FN_NAME (frvbf
,fdmulcs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18746 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18747 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18748 int UNUSED written
= 0;
18749 IADDR UNUSED pc
= abuf
->addr
;
18750 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18754 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->mulsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18755 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18756 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18759 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->mulsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (FLD (f_FRj
)));
18760 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18761 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18769 /* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18772 SEM_FN_NAME (frvbf
,nfdmulcs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18774 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18775 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18776 int UNUSED written
= 0;
18777 IADDR UNUSED pc
= abuf
->addr
;
18778 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18781 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18783 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->mulsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18784 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18785 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18787 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18789 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->mulsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (FLD (f_FRj
)));
18790 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18791 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18799 /* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18802 SEM_FN_NAME (frvbf
,nfdadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18804 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18805 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18806 int UNUSED written
= 0;
18807 IADDR UNUSED pc
= abuf
->addr
;
18808 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18811 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18813 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
)));
18814 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18815 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18817 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18819 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->addsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18820 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18821 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18829 /* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
18832 SEM_FN_NAME (frvbf
,nfdsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18834 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18835 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18836 int UNUSED written
= 0;
18837 IADDR UNUSED pc
= abuf
->addr
;
18838 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18841 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18843 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
)));
18844 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18845 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18847 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18849 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->subsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18850 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18851 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18859 /* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
18862 SEM_FN_NAME (frvbf
,nfdmuls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18864 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18865 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18866 int UNUSED written
= 0;
18867 IADDR UNUSED pc
= abuf
->addr
;
18868 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18871 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18873 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
)));
18874 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18875 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18877 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18879 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->mulsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18880 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18881 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18889 /* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
18892 SEM_FN_NAME (frvbf
,nfddivs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18894 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18895 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18896 int UNUSED written
= 0;
18897 IADDR UNUSED pc
= abuf
->addr
;
18898 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18901 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18903 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
)));
18904 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18905 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18907 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18909 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->divsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18910 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18911 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18919 /* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
18922 SEM_FN_NAME (frvbf
,nfdsads
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18924 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18925 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18926 int UNUSED written
= 0;
18927 IADDR UNUSED pc
= abuf
->addr
;
18928 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18931 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18933 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
)));
18934 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18935 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18937 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18939 SF opval
= CGEN_CPU_FPU (current_cpu
)->ops
->subsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)));
18940 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ADDSI (FLD (f_FRk
), 1), opval
);
18941 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18949 /* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
18952 SEM_FN_NAME (frvbf
,nfdcmps
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18954 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
18955 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18956 int UNUSED written
= 0;
18957 IADDR UNUSED pc
= abuf
->addr
;
18958 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18961 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18962 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
)))) {
18965 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
18966 written
|= (1 << 8);
18967 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
18970 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
)))) {
18973 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
18974 written
|= (1 << 8);
18975 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
18978 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
)))) {
18981 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
18982 written
|= (1 << 8);
18983 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
18988 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
18989 written
|= (1 << 8);
18990 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
18995 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18996 if (CGEN_CPU_FPU (current_cpu
)->ops
->gtsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)))) {
18999 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[ADDSI (FLD (f_FCCi_2
), 1)]), opval
);
19000 written
|= (1 << 9);
19001 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
19004 if (CGEN_CPU_FPU (current_cpu
)->ops
->eqsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)))) {
19007 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[ADDSI (FLD (f_FCCi_2
), 1)]), opval
);
19008 written
|= (1 << 9);
19009 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
19012 if (CGEN_CPU_FPU (current_cpu
)->ops
->ltsf (CGEN_CPU_FPU (current_cpu
), GET_H_FR (ADDSI (FLD (f_FRi
), 1)), GET_H_FR (ADDSI (FLD (f_FRj
), 1)))) {
19015 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[ADDSI (FLD (f_FCCi_2
), 1)]), opval
);
19016 written
|= (1 << 9);
19017 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
19022 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[ADDSI (FLD (f_FCCi_2
), 1)]), opval
);
19023 written
|= (1 << 9);
19024 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
19031 abuf
->written
= written
;
19036 /* mhsetlos: mhsetlos$pack $u12,$FRklo */
19039 SEM_FN_NAME (frvbf
,mhsetlos
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19041 #define FLD(f) abuf->fields.sfmt_mhsetlos.f
19042 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19043 int UNUSED written
= 0;
19044 IADDR UNUSED pc
= abuf
->addr
;
19045 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19048 UHI opval
= FLD (f_u12
);
19049 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, FLD (f_FRk
), opval
);
19050 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19057 /* mhsethis: mhsethis$pack $u12,$FRkhi */
19060 SEM_FN_NAME (frvbf
,mhsethis
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19062 #define FLD(f) abuf->fields.sfmt_mhsethis.f
19063 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19064 int UNUSED written
= 0;
19065 IADDR UNUSED pc
= abuf
->addr
;
19066 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19069 UHI opval
= FLD (f_u12
);
19070 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, FLD (f_FRk
), opval
);
19071 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19078 /* mhdsets: mhdsets$pack $u12,$FRintk */
19081 SEM_FN_NAME (frvbf
,mhdsets
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19083 #define FLD(f) abuf->fields.sfmt_mhdsets.f
19084 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19085 int UNUSED written
= 0;
19086 IADDR UNUSED pc
= abuf
->addr
;
19087 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19091 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
19092 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19093 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19096 UHI opval
= FLD (f_u12
);
19097 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19098 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19101 UHI opval
= FLD (f_u12
);
19102 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19103 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19111 /* mhsetloh: mhsetloh$pack $s5,$FRklo */
19114 SEM_FN_NAME (frvbf
,mhsetloh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19116 #define FLD(f) abuf->fields.sfmt_mhsetloh.f
19117 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19118 int UNUSED written
= 0;
19119 IADDR UNUSED pc
= abuf
->addr
;
19120 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19124 tmp_tmp
= GET_H_FR_LO (FLD (f_FRk
));
19125 tmp_tmp
= ANDHI (tmp_tmp
, 2047);
19126 tmp_tmp
= ORHI (tmp_tmp
, SLLSI (ANDSI (FLD (f_s5
), 31), 11));
19128 UHI opval
= tmp_tmp
;
19129 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, FLD (f_FRk
), opval
);
19130 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19138 /* mhsethih: mhsethih$pack $s5,$FRkhi */
19141 SEM_FN_NAME (frvbf
,mhsethih
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19143 #define FLD(f) abuf->fields.sfmt_mhsethih.f
19144 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19145 int UNUSED written
= 0;
19146 IADDR UNUSED pc
= abuf
->addr
;
19147 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19151 tmp_tmp
= GET_H_FR_HI (FLD (f_FRk
));
19152 tmp_tmp
= ANDHI (tmp_tmp
, 2047);
19153 tmp_tmp
= ORHI (tmp_tmp
, SLLSI (ANDSI (FLD (f_s5
), 31), 11));
19155 UHI opval
= tmp_tmp
;
19156 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, FLD (f_FRk
), opval
);
19157 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19165 /* mhdseth: mhdseth$pack $s5,$FRintk */
19168 SEM_FN_NAME (frvbf
,mhdseth
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19170 #define FLD(f) abuf->fields.sfmt_mhdseth.f
19171 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19172 int UNUSED written
= 0;
19173 IADDR UNUSED pc
= abuf
->addr
;
19174 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19178 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
19179 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19180 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19184 tmp_tmp
= GET_H_FR_HI (ADDSI (FLD (f_FRk
), 0));
19185 tmp_tmp
= ANDHI (tmp_tmp
, 2047);
19186 tmp_tmp
= ORHI (tmp_tmp
, SLLSI (ANDSI (FLD (f_s5
), 31), 11));
19188 UHI opval
= tmp_tmp
;
19189 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19190 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19195 tmp_tmp
= GET_H_FR_LO (ADDSI (FLD (f_FRk
), 0));
19196 tmp_tmp
= ANDHI (tmp_tmp
, 2047);
19197 tmp_tmp
= ORHI (tmp_tmp
, SLLSI (ANDSI (FLD (f_s5
), 31), 11));
19199 UHI opval
= tmp_tmp
;
19200 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19201 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19210 /* mand: mand$pack $FRinti,$FRintj,$FRintk */
19213 SEM_FN_NAME (frvbf
,mand
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19215 #define FLD(f) abuf->fields.sfmt_mwcut.f
19216 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19217 int UNUSED written
= 0;
19218 IADDR UNUSED pc
= abuf
->addr
;
19219 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19222 SI opval
= ANDSI (GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (FLD (f_FRj
)));
19223 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19224 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19231 /* mor: mor$pack $FRinti,$FRintj,$FRintk */
19234 SEM_FN_NAME (frvbf
,mor
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19236 #define FLD(f) abuf->fields.sfmt_mwcut.f
19237 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19238 int UNUSED written
= 0;
19239 IADDR UNUSED pc
= abuf
->addr
;
19240 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19243 SI opval
= ORSI (GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (FLD (f_FRj
)));
19244 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19245 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19252 /* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19255 SEM_FN_NAME (frvbf
,mxor
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19257 #define FLD(f) abuf->fields.sfmt_mwcut.f
19258 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19259 int UNUSED written
= 0;
19260 IADDR UNUSED pc
= abuf
->addr
;
19261 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19264 SI opval
= XORSI (GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (FLD (f_FRj
)));
19265 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19266 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19273 /* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19276 SEM_FN_NAME (frvbf
,cmand
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19278 #define FLD(f) abuf->fields.sfmt_cmand.f
19279 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19280 int UNUSED written
= 0;
19281 IADDR UNUSED pc
= abuf
->addr
;
19282 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19284 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
19286 SI opval
= ANDSI (GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (FLD (f_FRj
)));
19287 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19288 written
|= (1 << 4);
19289 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19293 abuf
->written
= written
;
19298 /* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19301 SEM_FN_NAME (frvbf
,cmor
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19303 #define FLD(f) abuf->fields.sfmt_cmand.f
19304 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19305 int UNUSED written
= 0;
19306 IADDR UNUSED pc
= abuf
->addr
;
19307 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19309 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
19311 SI opval
= ORSI (GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (FLD (f_FRj
)));
19312 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19313 written
|= (1 << 4);
19314 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19318 abuf
->written
= written
;
19323 /* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19326 SEM_FN_NAME (frvbf
,cmxor
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19328 #define FLD(f) abuf->fields.sfmt_cmand.f
19329 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19330 int UNUSED written
= 0;
19331 IADDR UNUSED pc
= abuf
->addr
;
19332 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19334 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
19336 SI opval
= XORSI (GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (FLD (f_FRj
)));
19337 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19338 written
|= (1 << 4);
19339 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19343 abuf
->written
= written
;
19348 /* mnot: mnot$pack $FRintj,$FRintk */
19351 SEM_FN_NAME (frvbf
,mnot
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19353 #define FLD(f) abuf->fields.sfmt_mcut.f
19354 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19355 int UNUSED written
= 0;
19356 IADDR UNUSED pc
= abuf
->addr
;
19357 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19360 SI opval
= INVSI (GET_H_FR_INT (FLD (f_FRj
)));
19361 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19362 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19369 /* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19372 SEM_FN_NAME (frvbf
,cmnot
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19374 #define FLD(f) abuf->fields.sfmt_cmand.f
19375 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19376 int UNUSED written
= 0;
19377 IADDR UNUSED pc
= abuf
->addr
;
19378 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19380 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
19382 SI opval
= INVSI (GET_H_FR_INT (FLD (f_FRj
)));
19383 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19384 written
|= (1 << 3);
19385 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19389 abuf
->written
= written
;
19394 /* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19397 SEM_FN_NAME (frvbf
,mrotli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19399 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19400 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19401 int UNUSED written
= 0;
19402 IADDR UNUSED pc
= abuf
->addr
;
19403 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19406 SI opval
= ROLSI (GET_H_FR_INT (FLD (f_FRi
)), ANDSI (FLD (f_u6
), 31));
19407 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19408 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19415 /* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19418 SEM_FN_NAME (frvbf
,mrotri
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19420 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19421 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19422 int UNUSED written
= 0;
19423 IADDR UNUSED pc
= abuf
->addr
;
19424 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19427 SI opval
= RORSI (GET_H_FR_INT (FLD (f_FRi
)), ANDSI (FLD (f_u6
), 31));
19428 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19429 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19436 /* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19439 SEM_FN_NAME (frvbf
,mwcut
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19441 #define FLD(f) abuf->fields.sfmt_mwcut.f
19442 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19443 int UNUSED written
= 0;
19444 IADDR UNUSED pc
= abuf
->addr
;
19445 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19448 SI opval
= frvbf_cut (current_cpu
, GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (ADDSI (FLD (f_FRi
), 1)), GET_H_FR_INT (FLD (f_FRj
)));
19449 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19450 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19457 /* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19460 SEM_FN_NAME (frvbf
,mwcuti
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19462 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19463 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19464 int UNUSED written
= 0;
19465 IADDR UNUSED pc
= abuf
->addr
;
19466 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19469 SI opval
= frvbf_cut (current_cpu
, GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (ADDSI (FLD (f_FRi
), 1)), FLD (f_u6
));
19470 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19471 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19478 /* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19481 SEM_FN_NAME (frvbf
,mcut
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19483 #define FLD(f) abuf->fields.sfmt_mcut.f
19484 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19485 int UNUSED written
= 0;
19486 IADDR UNUSED pc
= abuf
->addr
;
19487 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19490 SI opval
= frvbf_media_cut (current_cpu
, GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_FR_INT (FLD (f_FRj
)));
19491 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19492 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19499 /* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19502 SEM_FN_NAME (frvbf
,mcuti
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19504 #define FLD(f) abuf->fields.sfmt_mcuti.f
19505 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19506 int UNUSED written
= 0;
19507 IADDR UNUSED pc
= abuf
->addr
;
19508 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19511 SI opval
= frvbf_media_cut (current_cpu
, GET_H_ACC40S (FLD (f_ACC40Si
)), FLD (f_s6
));
19512 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19513 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19520 /* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19523 SEM_FN_NAME (frvbf
,mcutss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19525 #define FLD(f) abuf->fields.sfmt_mcut.f
19526 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19527 int UNUSED written
= 0;
19528 IADDR UNUSED pc
= abuf
->addr
;
19529 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19532 SI opval
= frvbf_media_cut_ss (current_cpu
, GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_FR_INT (FLD (f_FRj
)));
19533 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19534 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19541 /* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19544 SEM_FN_NAME (frvbf
,mcutssi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19546 #define FLD(f) abuf->fields.sfmt_mcuti.f
19547 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19548 int UNUSED written
= 0;
19549 IADDR UNUSED pc
= abuf
->addr
;
19550 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19553 SI opval
= frvbf_media_cut_ss (current_cpu
, GET_H_ACC40S (FLD (f_ACC40Si
)), FLD (f_s6
));
19554 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19555 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19562 /* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19565 SEM_FN_NAME (frvbf
,mdcutssi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19567 #define FLD(f) abuf->fields.sfmt_mdcutssi.f
19568 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19569 int UNUSED written
= 0;
19570 IADDR UNUSED pc
= abuf
->addr
;
19571 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19573 if (ANDSI (FLD (f_ACC40Si
), SUBSI (2, 1))) {
19574 frvbf_media_acc_not_aligned (current_cpu
);
19576 if (ANDSI (FLD (f_FRk
), SUBSI (2, 1))) {
19577 frvbf_media_register_not_aligned (current_cpu
);
19581 SI opval
= frvbf_media_cut_ss (current_cpu
, GET_H_ACC40S (FLD (f_ACC40Si
)), FLD (f_s6
));
19582 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19583 written
|= (1 << 5);
19584 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19587 USI opval
= frvbf_media_cut_ss (current_cpu
, GET_H_ACC40S (ADDSI (FLD (f_ACC40Si
), 1)), FLD (f_s6
));
19588 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ADDSI (FLD (f_FRk
), 1), opval
);
19589 written
|= (1 << 6);
19590 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19596 abuf
->written
= written
;
19601 /* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19604 SEM_FN_NAME (frvbf
,maveh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19606 #define FLD(f) abuf->fields.sfmt_mwcut.f
19607 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19608 int UNUSED written
= 0;
19609 IADDR UNUSED pc
= abuf
->addr
;
19610 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19613 SI opval
= frvbf_media_average (current_cpu
, GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (FLD (f_FRj
)));
19614 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19615 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19622 /* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19625 SEM_FN_NAME (frvbf
,msllhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19627 #define FLD(f) abuf->fields.sfmt_msllhi.f
19628 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19629 int UNUSED written
= 0;
19630 IADDR UNUSED pc
= abuf
->addr
;
19631 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19635 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
19636 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
19637 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19640 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
19641 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19642 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19645 UHI opval
= SLLHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), ANDSI (FLD (f_u6
), 15));
19646 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19647 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19650 UHI opval
= SLLHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), ANDSI (FLD (f_u6
), 15));
19651 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19652 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19660 /* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19663 SEM_FN_NAME (frvbf
,msrlhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19665 #define FLD(f) abuf->fields.sfmt_msllhi.f
19666 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19667 int UNUSED written
= 0;
19668 IADDR UNUSED pc
= abuf
->addr
;
19669 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19673 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
19674 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
19675 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19678 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
19679 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19680 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19683 UHI opval
= SRLHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), ANDSI (FLD (f_u6
), 15));
19684 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19685 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19688 UHI opval
= SRLHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), ANDSI (FLD (f_u6
), 15));
19689 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19690 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19698 /* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19701 SEM_FN_NAME (frvbf
,msrahi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19703 #define FLD(f) abuf->fields.sfmt_msllhi.f
19704 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19705 int UNUSED written
= 0;
19706 IADDR UNUSED pc
= abuf
->addr
;
19707 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19711 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
19712 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
19713 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19716 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
19717 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19718 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19721 UHI opval
= SRAHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), ANDSI (FLD (f_u6
), 15));
19722 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19723 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19726 UHI opval
= SRAHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), ANDSI (FLD (f_u6
), 15));
19727 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19728 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19736 /* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19739 SEM_FN_NAME (frvbf
,mdrotli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19741 #define FLD(f) abuf->fields.sfmt_mdrotli.f
19742 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19743 int UNUSED written
= 0;
19744 IADDR UNUSED pc
= abuf
->addr
;
19745 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19747 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1)))) {
19748 frvbf_media_register_not_aligned (current_cpu
);
19752 SI opval
= ROLSI (GET_H_FR_INT (FLD (f_FRi
)), ANDSI (FLD (f_s6
), 31));
19753 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19754 written
|= (1 << 5);
19755 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19758 USI opval
= ROLSI (GET_H_FR_INT (ADDSI (FLD (f_FRi
), 1)), ANDSI (FLD (f_s6
), 31));
19759 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ADDSI (FLD (f_FRk
), 1), opval
);
19760 written
|= (1 << 6);
19761 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19766 abuf
->written
= written
;
19771 /* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19774 SEM_FN_NAME (frvbf
,mcplhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19776 #define FLD(f) abuf->fields.sfmt_mcplhi.f
19777 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19778 int UNUSED written
= 0;
19779 IADDR UNUSED pc
= abuf
->addr
;
19780 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19787 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
19788 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
19789 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19792 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
19793 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19794 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19796 tmp_shift
= ANDSI (FLD (f_u6
), 15);
19797 tmp_arg1
= SLLHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), tmp_shift
);
19798 if (NEHI (tmp_shift
, 0)) {
19800 tmp_arg2
= GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1));
19801 tmp_arg2
= SRLHI (SLLHI (tmp_arg2
, SUBSI (15, tmp_shift
)), SUBSI (15, tmp_shift
));
19802 tmp_arg1
= ORHI (tmp_arg1
, tmp_arg2
);
19806 UHI opval
= tmp_arg1
;
19807 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19808 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19816 /* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19819 SEM_FN_NAME (frvbf
,mcpli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19821 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19822 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19823 int UNUSED written
= 0;
19824 IADDR UNUSED pc
= abuf
->addr
;
19825 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19830 tmp_shift
= ANDSI (FLD (f_u6
), 31);
19831 tmp_tmp
= SLLSI (GET_H_FR_INT (FLD (f_FRi
)), tmp_shift
);
19832 if (NESI (tmp_shift
, 0)) {
19835 tmp_tmp1
= SRLSI (SLLSI (GET_H_FR_INT (ADDSI (FLD (f_FRi
), 1)), SUBSI (31, tmp_shift
)), SUBSI (31, tmp_shift
));
19836 tmp_tmp
= ORSI (tmp_tmp
, tmp_tmp1
);
19840 SI opval
= tmp_tmp
;
19841 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19842 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19850 /* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
19853 SEM_FN_NAME (frvbf
,msaths
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19855 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
19856 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19857 int UNUSED written
= 0;
19858 IADDR UNUSED pc
= abuf
->addr
;
19859 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19867 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
19868 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
19869 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
19870 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
19872 if (GTHI (tmp_argihi
, tmp_argjhi
)) {
19874 UHI opval
= tmp_argjhi
;
19875 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19876 written
|= (1 << 9);
19877 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19880 if (LTHI (tmp_argihi
, INVHI (tmp_argjhi
))) {
19882 UHI opval
= INVHI (tmp_argjhi
);
19883 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19884 written
|= (1 << 9);
19885 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19889 UHI opval
= tmp_argihi
;
19890 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19891 written
|= (1 << 9);
19892 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19896 if (GTHI (tmp_argilo
, tmp_argjlo
)) {
19898 UHI opval
= tmp_argjlo
;
19899 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19900 written
|= (1 << 10);
19901 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19904 if (LTHI (tmp_argilo
, INVHI (tmp_argjlo
))) {
19906 UHI opval
= INVHI (tmp_argjlo
);
19907 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19908 written
|= (1 << 10);
19909 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19913 UHI opval
= tmp_argilo
;
19914 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19915 written
|= (1 << 10);
19916 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19922 abuf
->written
= written
;
19927 /* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
19930 SEM_FN_NAME (frvbf
,mqsaths
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19932 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
19933 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19934 int UNUSED written
= 0;
19935 IADDR UNUSED pc
= abuf
->addr
;
19936 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19938 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
19939 frvbf_media_register_not_aligned (current_cpu
);
19947 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
19948 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19949 written
|= (1 << 14);
19950 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19953 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
19954 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
19955 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
19956 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
19958 if (GTHI (tmp_argihi
, tmp_argjhi
)) {
19960 UHI opval
= tmp_argjhi
;
19961 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19962 written
|= (1 << 15);
19963 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19966 if (LTHI (tmp_argihi
, INVHI (tmp_argjhi
))) {
19968 UHI opval
= INVHI (tmp_argjhi
);
19969 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19970 written
|= (1 << 15);
19971 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19975 UHI opval
= tmp_argihi
;
19976 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19977 written
|= (1 << 15);
19978 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19982 if (GTHI (tmp_argilo
, tmp_argjlo
)) {
19984 UHI opval
= tmp_argjlo
;
19985 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19986 written
|= (1 << 17);
19987 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19990 if (LTHI (tmp_argilo
, INVHI (tmp_argjlo
))) {
19992 UHI opval
= INVHI (tmp_argjlo
);
19993 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
19994 written
|= (1 << 17);
19995 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19999 UHI opval
= tmp_argilo
;
20000 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20001 written
|= (1 << 17);
20002 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20007 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20008 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20009 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20010 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20012 if (GTHI (tmp_argihi
, tmp_argjhi
)) {
20014 UHI opval
= tmp_argjhi
;
20015 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
20016 written
|= (1 << 16);
20017 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20020 if (LTHI (tmp_argihi
, INVHI (tmp_argjhi
))) {
20022 UHI opval
= INVHI (tmp_argjhi
);
20023 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
20024 written
|= (1 << 16);
20025 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20029 UHI opval
= tmp_argihi
;
20030 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
20031 written
|= (1 << 16);
20032 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20036 if (GTHI (tmp_argilo
, tmp_argjlo
)) {
20038 UHI opval
= tmp_argjlo
;
20039 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
20040 written
|= (1 << 18);
20041 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20044 if (LTHI (tmp_argilo
, INVHI (tmp_argjlo
))) {
20046 UHI opval
= INVHI (tmp_argjlo
);
20047 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
20048 written
|= (1 << 18);
20049 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20053 UHI opval
= tmp_argilo
;
20054 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
20055 written
|= (1 << 18);
20056 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20063 abuf
->written
= written
;
20068 /* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20071 SEM_FN_NAME (frvbf
,msathu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20073 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20074 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20075 int UNUSED written
= 0;
20076 IADDR UNUSED pc
= abuf
->addr
;
20077 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20085 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20086 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20087 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20088 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20090 if (GTUHI (tmp_argihi
, tmp_argjhi
)) {
20092 UHI opval
= tmp_argjhi
;
20093 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20094 written
|= (1 << 9);
20095 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20099 UHI opval
= tmp_argihi
;
20100 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20101 written
|= (1 << 9);
20102 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20105 if (GTUHI (tmp_argilo
, tmp_argjlo
)) {
20107 UHI opval
= tmp_argjlo
;
20108 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20109 written
|= (1 << 10);
20110 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20114 UHI opval
= tmp_argilo
;
20115 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20116 written
|= (1 << 10);
20117 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20122 abuf
->written
= written
;
20127 /* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20130 SEM_FN_NAME (frvbf
,mcmpsh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20132 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20133 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20134 int UNUSED written
= 0;
20135 IADDR UNUSED pc
= abuf
->addr
;
20136 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20138 if (ANDSI (FLD (f_FCCk
), SUBSI (2, 1))) {
20139 frvbf_media_cr_not_aligned (current_cpu
);
20147 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20148 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20149 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20150 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20152 if (GTHI (tmp_argihi
, tmp_argjhi
)) {
20155 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20156 written
|= (1 << 9);
20157 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20160 if (EQHI (tmp_argihi
, tmp_argjhi
)) {
20163 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20164 written
|= (1 << 9);
20165 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20168 if (LTHI (tmp_argihi
, tmp_argjhi
)) {
20171 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20172 written
|= (1 << 9);
20173 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20178 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20179 written
|= (1 << 9);
20180 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20185 if (GTHI (tmp_argilo
, tmp_argjlo
)) {
20188 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[ADDSI (FLD (f_FCCk
), 1)]), opval
);
20189 written
|= (1 << 10);
20190 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20193 if (EQHI (tmp_argilo
, tmp_argjlo
)) {
20196 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[ADDSI (FLD (f_FCCk
), 1)]), opval
);
20197 written
|= (1 << 10);
20198 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20201 if (LTHI (tmp_argilo
, tmp_argjlo
)) {
20204 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[ADDSI (FLD (f_FCCk
), 1)]), opval
);
20205 written
|= (1 << 10);
20206 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20211 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[ADDSI (FLD (f_FCCk
), 1)]), opval
);
20212 written
|= (1 << 10);
20213 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20221 abuf
->written
= written
;
20226 /* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20229 SEM_FN_NAME (frvbf
,mcmpuh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20231 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20232 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20233 int UNUSED written
= 0;
20234 IADDR UNUSED pc
= abuf
->addr
;
20235 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20237 if (ANDSI (FLD (f_FCCk
), SUBSI (2, 1))) {
20238 frvbf_media_cr_not_aligned (current_cpu
);
20246 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20247 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20248 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20249 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20251 if (GTUHI (tmp_argihi
, tmp_argjhi
)) {
20254 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20255 written
|= (1 << 9);
20256 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20259 if (EQHI (tmp_argihi
, tmp_argjhi
)) {
20262 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20263 written
|= (1 << 9);
20264 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20267 if (LTUHI (tmp_argihi
, tmp_argjhi
)) {
20270 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20271 written
|= (1 << 9);
20272 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20277 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20278 written
|= (1 << 9);
20279 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20284 if (GTUHI (tmp_argilo
, tmp_argjlo
)) {
20287 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[ADDSI (FLD (f_FCCk
), 1)]), opval
);
20288 written
|= (1 << 10);
20289 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20292 if (EQHI (tmp_argilo
, tmp_argjlo
)) {
20295 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[ADDSI (FLD (f_FCCk
), 1)]), opval
);
20296 written
|= (1 << 10);
20297 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20300 if (LTUHI (tmp_argilo
, tmp_argjlo
)) {
20303 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[ADDSI (FLD (f_FCCk
), 1)]), opval
);
20304 written
|= (1 << 10);
20305 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20310 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[ADDSI (FLD (f_FCCk
), 1)]), opval
);
20311 written
|= (1 << 10);
20312 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20320 abuf
->written
= written
;
20325 /* mabshs: mabshs$pack $FRintj,$FRintk */
20328 SEM_FN_NAME (frvbf
,mabshs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20330 #define FLD(f) abuf->fields.sfmt_mabshs.f
20331 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20332 int UNUSED written
= 0;
20333 IADDR UNUSED pc
= abuf
->addr
;
20334 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20340 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
20341 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
20342 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
20345 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
20346 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
20347 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
20349 tmp_arghi
= GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0));
20350 tmp_arglo
= GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0));
20351 if (GTDI (ABSDI (EXTHIDI (tmp_arghi
)), 32767)) {
20355 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20356 written
|= (1 << 8);
20357 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20359 frvbf_media_overflow (current_cpu
, 8);
20362 if (LTDI (ABSDI (EXTHIDI (tmp_arghi
)), -32768)) {
20365 UHI opval
= -32768;
20366 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20367 written
|= (1 << 8);
20368 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20370 frvbf_media_overflow (current_cpu
, 8);
20374 UHI opval
= ABSDI (EXTHIDI (tmp_arghi
));
20375 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20376 written
|= (1 << 8);
20377 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20381 if (GTDI (ABSDI (EXTHIDI (tmp_arglo
)), 32767)) {
20385 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20386 written
|= (1 << 9);
20387 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20389 frvbf_media_overflow (current_cpu
, 4);
20392 if (LTDI (ABSDI (EXTHIDI (tmp_arglo
)), -32768)) {
20395 UHI opval
= -32768;
20396 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20397 written
|= (1 << 9);
20398 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20400 frvbf_media_overflow (current_cpu
, 4);
20404 UHI opval
= ABSDI (EXTHIDI (tmp_arglo
));
20405 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20406 written
|= (1 << 9);
20407 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20413 abuf
->written
= written
;
20418 /* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20421 SEM_FN_NAME (frvbf
,maddhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20423 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20424 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20425 int UNUSED written
= 0;
20426 IADDR UNUSED pc
= abuf
->addr
;
20427 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20435 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20436 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20437 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20438 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20442 tmp_tmp
= ADDDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
20443 if (GTDI (tmp_tmp
, 32767)) {
20447 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20448 written
|= (1 << 9);
20449 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20451 frvbf_media_overflow (current_cpu
, 8);
20454 if (LTDI (tmp_tmp
, -32768)) {
20457 UHI opval
= -32768;
20458 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20459 written
|= (1 << 9);
20460 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20462 frvbf_media_overflow (current_cpu
, 8);
20466 UHI opval
= tmp_tmp
;
20467 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20468 written
|= (1 << 9);
20469 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20476 tmp_tmp
= ADDDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
20477 if (GTDI (tmp_tmp
, 32767)) {
20481 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20482 written
|= (1 << 10);
20483 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20485 frvbf_media_overflow (current_cpu
, 4);
20488 if (LTDI (tmp_tmp
, -32768)) {
20491 UHI opval
= -32768;
20492 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20493 written
|= (1 << 10);
20494 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20496 frvbf_media_overflow (current_cpu
, 4);
20500 UHI opval
= tmp_tmp
;
20501 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20502 written
|= (1 << 10);
20503 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20510 abuf
->written
= written
;
20515 /* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20518 SEM_FN_NAME (frvbf
,maddhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20520 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20521 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20522 int UNUSED written
= 0;
20523 IADDR UNUSED pc
= abuf
->addr
;
20524 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20532 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20533 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20534 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20535 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20539 tmp_tmp
= ADDDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
20540 if (GTDI (tmp_tmp
, 65535)) {
20544 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20545 written
|= (1 << 9);
20546 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20548 frvbf_media_overflow (current_cpu
, 8);
20551 if (LTDI (tmp_tmp
, 0)) {
20555 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20556 written
|= (1 << 9);
20557 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20559 frvbf_media_overflow (current_cpu
, 8);
20563 UHI opval
= tmp_tmp
;
20564 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20565 written
|= (1 << 9);
20566 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20573 tmp_tmp
= ADDDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
20574 if (GTDI (tmp_tmp
, 65535)) {
20578 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20579 written
|= (1 << 10);
20580 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20582 frvbf_media_overflow (current_cpu
, 4);
20585 if (LTDI (tmp_tmp
, 0)) {
20589 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20590 written
|= (1 << 10);
20591 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20593 frvbf_media_overflow (current_cpu
, 4);
20597 UHI opval
= tmp_tmp
;
20598 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20599 written
|= (1 << 10);
20600 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20607 abuf
->written
= written
;
20612 /* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20615 SEM_FN_NAME (frvbf
,msubhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20617 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20618 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20619 int UNUSED written
= 0;
20620 IADDR UNUSED pc
= abuf
->addr
;
20621 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20629 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20630 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20631 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20632 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20636 tmp_tmp
= SUBDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
20637 if (GTDI (tmp_tmp
, 32767)) {
20641 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20642 written
|= (1 << 9);
20643 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20645 frvbf_media_overflow (current_cpu
, 8);
20648 if (LTDI (tmp_tmp
, -32768)) {
20651 UHI opval
= -32768;
20652 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20653 written
|= (1 << 9);
20654 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20656 frvbf_media_overflow (current_cpu
, 8);
20660 UHI opval
= tmp_tmp
;
20661 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20662 written
|= (1 << 9);
20663 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20670 tmp_tmp
= SUBDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
20671 if (GTDI (tmp_tmp
, 32767)) {
20675 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20676 written
|= (1 << 10);
20677 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20679 frvbf_media_overflow (current_cpu
, 4);
20682 if (LTDI (tmp_tmp
, -32768)) {
20685 UHI opval
= -32768;
20686 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20687 written
|= (1 << 10);
20688 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20690 frvbf_media_overflow (current_cpu
, 4);
20694 UHI opval
= tmp_tmp
;
20695 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20696 written
|= (1 << 10);
20697 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20704 abuf
->written
= written
;
20709 /* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20712 SEM_FN_NAME (frvbf
,msubhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20714 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20715 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20716 int UNUSED written
= 0;
20717 IADDR UNUSED pc
= abuf
->addr
;
20718 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20726 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20727 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20728 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20729 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20733 tmp_tmp
= SUBDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
20734 if (GTDI (tmp_tmp
, 65535)) {
20738 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20739 written
|= (1 << 9);
20740 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20742 frvbf_media_overflow (current_cpu
, 8);
20745 if (LTDI (tmp_tmp
, 0)) {
20749 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20750 written
|= (1 << 9);
20751 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20753 frvbf_media_overflow (current_cpu
, 8);
20757 UHI opval
= tmp_tmp
;
20758 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20759 written
|= (1 << 9);
20760 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20767 tmp_tmp
= SUBDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
20768 if (GTDI (tmp_tmp
, 65535)) {
20772 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20773 written
|= (1 << 10);
20774 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20776 frvbf_media_overflow (current_cpu
, 4);
20779 if (LTDI (tmp_tmp
, 0)) {
20783 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20784 written
|= (1 << 10);
20785 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20787 frvbf_media_overflow (current_cpu
, 4);
20791 UHI opval
= tmp_tmp
;
20792 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20793 written
|= (1 << 10);
20794 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20801 abuf
->written
= written
;
20806 /* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20809 SEM_FN_NAME (frvbf
,cmaddhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20811 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20812 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20813 int UNUSED written
= 0;
20814 IADDR UNUSED pc
= abuf
->addr
;
20815 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20817 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
20824 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20825 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20826 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20827 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20831 tmp_tmp
= ADDDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
20832 if (GTDI (tmp_tmp
, 32767)) {
20836 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20837 written
|= (1 << 11);
20838 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20840 frvbf_media_overflow (current_cpu
, 8);
20843 if (LTDI (tmp_tmp
, -32768)) {
20846 UHI opval
= -32768;
20847 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20848 written
|= (1 << 11);
20849 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20851 frvbf_media_overflow (current_cpu
, 8);
20855 UHI opval
= tmp_tmp
;
20856 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20857 written
|= (1 << 11);
20858 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20865 tmp_tmp
= ADDDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
20866 if (GTDI (tmp_tmp
, 32767)) {
20870 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20871 written
|= (1 << 12);
20872 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20874 frvbf_media_overflow (current_cpu
, 4);
20877 if (LTDI (tmp_tmp
, -32768)) {
20880 UHI opval
= -32768;
20881 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20882 written
|= (1 << 12);
20883 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20885 frvbf_media_overflow (current_cpu
, 4);
20889 UHI opval
= tmp_tmp
;
20890 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20891 written
|= (1 << 12);
20892 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20900 abuf
->written
= written
;
20905 /* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20908 SEM_FN_NAME (frvbf
,cmaddhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20910 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20911 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20912 int UNUSED written
= 0;
20913 IADDR UNUSED pc
= abuf
->addr
;
20914 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20916 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
20923 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20924 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20925 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20926 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20930 tmp_tmp
= ADDDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
20931 if (GTDI (tmp_tmp
, 65535)) {
20935 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20936 written
|= (1 << 11);
20937 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20939 frvbf_media_overflow (current_cpu
, 8);
20942 if (LTDI (tmp_tmp
, 0)) {
20946 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20947 written
|= (1 << 11);
20948 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20950 frvbf_media_overflow (current_cpu
, 8);
20954 UHI opval
= tmp_tmp
;
20955 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20956 written
|= (1 << 11);
20957 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20964 tmp_tmp
= ADDDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
20965 if (GTDI (tmp_tmp
, 65535)) {
20969 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20970 written
|= (1 << 12);
20971 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20973 frvbf_media_overflow (current_cpu
, 4);
20976 if (LTDI (tmp_tmp
, 0)) {
20980 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20981 written
|= (1 << 12);
20982 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20984 frvbf_media_overflow (current_cpu
, 4);
20988 UHI opval
= tmp_tmp
;
20989 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
20990 written
|= (1 << 12);
20991 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20999 abuf
->written
= written
;
21004 /* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21007 SEM_FN_NAME (frvbf
,cmsubhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
21009 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21010 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
21011 int UNUSED written
= 0;
21012 IADDR UNUSED pc
= abuf
->addr
;
21013 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
21015 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
21022 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21023 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21024 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21025 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21029 tmp_tmp
= SUBDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
21030 if (GTDI (tmp_tmp
, 32767)) {
21034 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21035 written
|= (1 << 11);
21036 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21038 frvbf_media_overflow (current_cpu
, 8);
21041 if (LTDI (tmp_tmp
, -32768)) {
21044 UHI opval
= -32768;
21045 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21046 written
|= (1 << 11);
21047 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21049 frvbf_media_overflow (current_cpu
, 8);
21053 UHI opval
= tmp_tmp
;
21054 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21055 written
|= (1 << 11);
21056 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21063 tmp_tmp
= SUBDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
21064 if (GTDI (tmp_tmp
, 32767)) {
21068 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21069 written
|= (1 << 12);
21070 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21072 frvbf_media_overflow (current_cpu
, 4);
21075 if (LTDI (tmp_tmp
, -32768)) {
21078 UHI opval
= -32768;
21079 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21080 written
|= (1 << 12);
21081 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21083 frvbf_media_overflow (current_cpu
, 4);
21087 UHI opval
= tmp_tmp
;
21088 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21089 written
|= (1 << 12);
21090 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21098 abuf
->written
= written
;
21103 /* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21106 SEM_FN_NAME (frvbf
,cmsubhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
21108 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21109 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
21110 int UNUSED written
= 0;
21111 IADDR UNUSED pc
= abuf
->addr
;
21112 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
21114 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
21121 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21122 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21123 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21124 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21128 tmp_tmp
= SUBDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
21129 if (GTDI (tmp_tmp
, 65535)) {
21133 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21134 written
|= (1 << 11);
21135 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21137 frvbf_media_overflow (current_cpu
, 8);
21140 if (LTDI (tmp_tmp
, 0)) {
21144 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21145 written
|= (1 << 11);
21146 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21148 frvbf_media_overflow (current_cpu
, 8);
21152 UHI opval
= tmp_tmp
;
21153 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21154 written
|= (1 << 11);
21155 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21162 tmp_tmp
= SUBDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
21163 if (GTDI (tmp_tmp
, 65535)) {
21167 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21168 written
|= (1 << 12);
21169 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21171 frvbf_media_overflow (current_cpu
, 4);
21174 if (LTDI (tmp_tmp
, 0)) {
21178 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21179 written
|= (1 << 12);
21180 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21182 frvbf_media_overflow (current_cpu
, 4);
21186 UHI opval
= tmp_tmp
;
21187 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21188 written
|= (1 << 12);
21189 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21197 abuf
->written
= written
;
21202 /* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21205 SEM_FN_NAME (frvbf
,mqaddhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
21207 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21208 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
21209 int UNUSED written
= 0;
21210 IADDR UNUSED pc
= abuf
->addr
;
21211 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
21213 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
21214 frvbf_media_register_not_aligned (current_cpu
);
21222 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
21223 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
21224 written
|= (1 << 14);
21225 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
21228 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21229 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21230 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21231 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21235 tmp_tmp
= ADDDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
21236 if (GTDI (tmp_tmp
, 32767)) {
21240 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21241 written
|= (1 << 15);
21242 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21244 frvbf_media_overflow (current_cpu
, 8);
21247 if (LTDI (tmp_tmp
, -32768)) {
21250 UHI opval
= -32768;
21251 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21252 written
|= (1 << 15);
21253 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21255 frvbf_media_overflow (current_cpu
, 8);
21259 UHI opval
= tmp_tmp
;
21260 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21261 written
|= (1 << 15);
21262 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21269 tmp_tmp
= ADDDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
21270 if (GTDI (tmp_tmp
, 32767)) {
21274 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21275 written
|= (1 << 17);
21276 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21278 frvbf_media_overflow (current_cpu
, 4);
21281 if (LTDI (tmp_tmp
, -32768)) {
21284 UHI opval
= -32768;
21285 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21286 written
|= (1 << 17);
21287 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21289 frvbf_media_overflow (current_cpu
, 4);
21293 UHI opval
= tmp_tmp
;
21294 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21295 written
|= (1 << 17);
21296 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21302 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21303 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21304 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21305 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21309 tmp_tmp
= ADDDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
21310 if (GTDI (tmp_tmp
, 32767)) {
21314 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21315 written
|= (1 << 16);
21316 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21318 frvbf_media_overflow (current_cpu
, 2);
21321 if (LTDI (tmp_tmp
, -32768)) {
21324 UHI opval
= -32768;
21325 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21326 written
|= (1 << 16);
21327 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21329 frvbf_media_overflow (current_cpu
, 2);
21333 UHI opval
= tmp_tmp
;
21334 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21335 written
|= (1 << 16);
21336 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21343 tmp_tmp
= ADDDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
21344 if (GTDI (tmp_tmp
, 32767)) {
21348 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21349 written
|= (1 << 18);
21350 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21352 frvbf_media_overflow (current_cpu
, 1);
21355 if (LTDI (tmp_tmp
, -32768)) {
21358 UHI opval
= -32768;
21359 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21360 written
|= (1 << 18);
21361 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21363 frvbf_media_overflow (current_cpu
, 1);
21367 UHI opval
= tmp_tmp
;
21368 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21369 written
|= (1 << 18);
21370 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21378 abuf
->written
= written
;
21383 /* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21386 SEM_FN_NAME (frvbf
,mqaddhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
21388 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21389 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
21390 int UNUSED written
= 0;
21391 IADDR UNUSED pc
= abuf
->addr
;
21392 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
21394 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
21395 frvbf_media_register_not_aligned (current_cpu
);
21403 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
21404 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
21405 written
|= (1 << 14);
21406 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
21409 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21410 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21411 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21412 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21416 tmp_tmp
= ADDDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
21417 if (GTDI (tmp_tmp
, 65535)) {
21421 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21422 written
|= (1 << 15);
21423 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21425 frvbf_media_overflow (current_cpu
, 8);
21428 if (LTDI (tmp_tmp
, 0)) {
21432 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21433 written
|= (1 << 15);
21434 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21436 frvbf_media_overflow (current_cpu
, 8);
21440 UHI opval
= tmp_tmp
;
21441 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21442 written
|= (1 << 15);
21443 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21450 tmp_tmp
= ADDDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
21451 if (GTDI (tmp_tmp
, 65535)) {
21455 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21456 written
|= (1 << 17);
21457 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21459 frvbf_media_overflow (current_cpu
, 4);
21462 if (LTDI (tmp_tmp
, 0)) {
21466 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21467 written
|= (1 << 17);
21468 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21470 frvbf_media_overflow (current_cpu
, 4);
21474 UHI opval
= tmp_tmp
;
21475 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21476 written
|= (1 << 17);
21477 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21483 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21484 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21485 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21486 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21490 tmp_tmp
= ADDDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
21491 if (GTDI (tmp_tmp
, 65535)) {
21495 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21496 written
|= (1 << 16);
21497 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21499 frvbf_media_overflow (current_cpu
, 2);
21502 if (LTDI (tmp_tmp
, 0)) {
21506 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21507 written
|= (1 << 16);
21508 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21510 frvbf_media_overflow (current_cpu
, 2);
21514 UHI opval
= tmp_tmp
;
21515 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21516 written
|= (1 << 16);
21517 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21524 tmp_tmp
= ADDDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
21525 if (GTDI (tmp_tmp
, 65535)) {
21529 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21530 written
|= (1 << 18);
21531 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21533 frvbf_media_overflow (current_cpu
, 1);
21536 if (LTDI (tmp_tmp
, 0)) {
21540 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21541 written
|= (1 << 18);
21542 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21544 frvbf_media_overflow (current_cpu
, 1);
21548 UHI opval
= tmp_tmp
;
21549 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21550 written
|= (1 << 18);
21551 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21559 abuf
->written
= written
;
21564 /* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21567 SEM_FN_NAME (frvbf
,mqsubhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
21569 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21570 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
21571 int UNUSED written
= 0;
21572 IADDR UNUSED pc
= abuf
->addr
;
21573 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
21575 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
21576 frvbf_media_register_not_aligned (current_cpu
);
21584 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
21585 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
21586 written
|= (1 << 14);
21587 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
21590 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21591 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21592 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21593 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21597 tmp_tmp
= SUBDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
21598 if (GTDI (tmp_tmp
, 32767)) {
21602 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21603 written
|= (1 << 15);
21604 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21606 frvbf_media_overflow (current_cpu
, 8);
21609 if (LTDI (tmp_tmp
, -32768)) {
21612 UHI opval
= -32768;
21613 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21614 written
|= (1 << 15);
21615 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21617 frvbf_media_overflow (current_cpu
, 8);
21621 UHI opval
= tmp_tmp
;
21622 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21623 written
|= (1 << 15);
21624 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21631 tmp_tmp
= SUBDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
21632 if (GTDI (tmp_tmp
, 32767)) {
21636 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21637 written
|= (1 << 17);
21638 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21640 frvbf_media_overflow (current_cpu
, 4);
21643 if (LTDI (tmp_tmp
, -32768)) {
21646 UHI opval
= -32768;
21647 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21648 written
|= (1 << 17);
21649 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21651 frvbf_media_overflow (current_cpu
, 4);
21655 UHI opval
= tmp_tmp
;
21656 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21657 written
|= (1 << 17);
21658 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21664 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21665 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21666 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21667 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21671 tmp_tmp
= SUBDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
21672 if (GTDI (tmp_tmp
, 32767)) {
21676 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21677 written
|= (1 << 16);
21678 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21680 frvbf_media_overflow (current_cpu
, 2);
21683 if (LTDI (tmp_tmp
, -32768)) {
21686 UHI opval
= -32768;
21687 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21688 written
|= (1 << 16);
21689 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21691 frvbf_media_overflow (current_cpu
, 2);
21695 UHI opval
= tmp_tmp
;
21696 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21697 written
|= (1 << 16);
21698 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21705 tmp_tmp
= SUBDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
21706 if (GTDI (tmp_tmp
, 32767)) {
21710 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21711 written
|= (1 << 18);
21712 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21714 frvbf_media_overflow (current_cpu
, 1);
21717 if (LTDI (tmp_tmp
, -32768)) {
21720 UHI opval
= -32768;
21721 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21722 written
|= (1 << 18);
21723 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21725 frvbf_media_overflow (current_cpu
, 1);
21729 UHI opval
= tmp_tmp
;
21730 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21731 written
|= (1 << 18);
21732 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21740 abuf
->written
= written
;
21745 /* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21748 SEM_FN_NAME (frvbf
,mqsubhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
21750 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21751 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
21752 int UNUSED written
= 0;
21753 IADDR UNUSED pc
= abuf
->addr
;
21754 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
21756 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
21757 frvbf_media_register_not_aligned (current_cpu
);
21765 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
21766 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
21767 written
|= (1 << 14);
21768 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
21771 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21772 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21773 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21774 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21778 tmp_tmp
= SUBDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
21779 if (GTDI (tmp_tmp
, 65535)) {
21783 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21784 written
|= (1 << 15);
21785 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21787 frvbf_media_overflow (current_cpu
, 8);
21790 if (LTDI (tmp_tmp
, 0)) {
21794 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21795 written
|= (1 << 15);
21796 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21798 frvbf_media_overflow (current_cpu
, 8);
21802 UHI opval
= tmp_tmp
;
21803 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21804 written
|= (1 << 15);
21805 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21812 tmp_tmp
= SUBDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
21813 if (GTDI (tmp_tmp
, 65535)) {
21817 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21818 written
|= (1 << 17);
21819 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21821 frvbf_media_overflow (current_cpu
, 4);
21824 if (LTDI (tmp_tmp
, 0)) {
21828 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21829 written
|= (1 << 17);
21830 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21832 frvbf_media_overflow (current_cpu
, 4);
21836 UHI opval
= tmp_tmp
;
21837 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21838 written
|= (1 << 17);
21839 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21845 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21846 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21847 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21848 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21852 tmp_tmp
= SUBDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
21853 if (GTDI (tmp_tmp
, 65535)) {
21857 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21858 written
|= (1 << 16);
21859 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21861 frvbf_media_overflow (current_cpu
, 2);
21864 if (LTDI (tmp_tmp
, 0)) {
21868 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21869 written
|= (1 << 16);
21870 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21872 frvbf_media_overflow (current_cpu
, 2);
21876 UHI opval
= tmp_tmp
;
21877 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21878 written
|= (1 << 16);
21879 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21886 tmp_tmp
= SUBDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
21887 if (GTDI (tmp_tmp
, 65535)) {
21891 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21892 written
|= (1 << 18);
21893 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21895 frvbf_media_overflow (current_cpu
, 1);
21898 if (LTDI (tmp_tmp
, 0)) {
21902 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21903 written
|= (1 << 18);
21904 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21906 frvbf_media_overflow (current_cpu
, 1);
21910 UHI opval
= tmp_tmp
;
21911 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
21912 written
|= (1 << 18);
21913 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21921 abuf
->written
= written
;
21926 /* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
21929 SEM_FN_NAME (frvbf
,cmqaddhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
21931 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21932 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
21933 int UNUSED written
= 0;
21934 IADDR UNUSED pc
= abuf
->addr
;
21935 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
21937 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
21938 frvbf_media_register_not_aligned (current_cpu
);
21940 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
21947 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
21948 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
21949 written
|= (1 << 16);
21950 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
21953 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21954 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21955 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21956 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21960 tmp_tmp
= ADDDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
21961 if (GTDI (tmp_tmp
, 32767)) {
21965 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21966 written
|= (1 << 17);
21967 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21969 frvbf_media_overflow (current_cpu
, 8);
21972 if (LTDI (tmp_tmp
, -32768)) {
21975 UHI opval
= -32768;
21976 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21977 written
|= (1 << 17);
21978 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21980 frvbf_media_overflow (current_cpu
, 8);
21984 UHI opval
= tmp_tmp
;
21985 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
21986 written
|= (1 << 17);
21987 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21994 tmp_tmp
= ADDDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
21995 if (GTDI (tmp_tmp
, 32767)) {
21999 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22000 written
|= (1 << 19);
22001 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22003 frvbf_media_overflow (current_cpu
, 4);
22006 if (LTDI (tmp_tmp
, -32768)) {
22009 UHI opval
= -32768;
22010 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22011 written
|= (1 << 19);
22012 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22014 frvbf_media_overflow (current_cpu
, 4);
22018 UHI opval
= tmp_tmp
;
22019 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22020 written
|= (1 << 19);
22021 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22027 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22028 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22029 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22030 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22034 tmp_tmp
= ADDDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
22035 if (GTDI (tmp_tmp
, 32767)) {
22039 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22040 written
|= (1 << 18);
22041 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22043 frvbf_media_overflow (current_cpu
, 2);
22046 if (LTDI (tmp_tmp
, -32768)) {
22049 UHI opval
= -32768;
22050 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22051 written
|= (1 << 18);
22052 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22054 frvbf_media_overflow (current_cpu
, 2);
22058 UHI opval
= tmp_tmp
;
22059 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22060 written
|= (1 << 18);
22061 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22068 tmp_tmp
= ADDDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
22069 if (GTDI (tmp_tmp
, 32767)) {
22073 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22074 written
|= (1 << 20);
22075 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22077 frvbf_media_overflow (current_cpu
, 1);
22080 if (LTDI (tmp_tmp
, -32768)) {
22083 UHI opval
= -32768;
22084 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22085 written
|= (1 << 20);
22086 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22088 frvbf_media_overflow (current_cpu
, 1);
22092 UHI opval
= tmp_tmp
;
22093 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22094 written
|= (1 << 20);
22095 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22104 abuf
->written
= written
;
22109 /* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22112 SEM_FN_NAME (frvbf
,cmqaddhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22114 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22115 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22116 int UNUSED written
= 0;
22117 IADDR UNUSED pc
= abuf
->addr
;
22118 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22120 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
22121 frvbf_media_register_not_aligned (current_cpu
);
22123 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
22130 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
22131 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
22132 written
|= (1 << 16);
22133 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
22136 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22137 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22138 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22139 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22143 tmp_tmp
= ADDDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
22144 if (GTDI (tmp_tmp
, 65535)) {
22148 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22149 written
|= (1 << 17);
22150 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22152 frvbf_media_overflow (current_cpu
, 8);
22155 if (LTDI (tmp_tmp
, 0)) {
22159 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22160 written
|= (1 << 17);
22161 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22163 frvbf_media_overflow (current_cpu
, 8);
22167 UHI opval
= tmp_tmp
;
22168 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22169 written
|= (1 << 17);
22170 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22177 tmp_tmp
= ADDDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
22178 if (GTDI (tmp_tmp
, 65535)) {
22182 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22183 written
|= (1 << 19);
22184 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22186 frvbf_media_overflow (current_cpu
, 4);
22189 if (LTDI (tmp_tmp
, 0)) {
22193 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22194 written
|= (1 << 19);
22195 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22197 frvbf_media_overflow (current_cpu
, 4);
22201 UHI opval
= tmp_tmp
;
22202 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22203 written
|= (1 << 19);
22204 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22210 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22211 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22212 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22213 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22217 tmp_tmp
= ADDDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
22218 if (GTDI (tmp_tmp
, 65535)) {
22222 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22223 written
|= (1 << 18);
22224 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22226 frvbf_media_overflow (current_cpu
, 2);
22229 if (LTDI (tmp_tmp
, 0)) {
22233 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22234 written
|= (1 << 18);
22235 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22237 frvbf_media_overflow (current_cpu
, 2);
22241 UHI opval
= tmp_tmp
;
22242 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22243 written
|= (1 << 18);
22244 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22251 tmp_tmp
= ADDDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
22252 if (GTDI (tmp_tmp
, 65535)) {
22256 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22257 written
|= (1 << 20);
22258 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22260 frvbf_media_overflow (current_cpu
, 1);
22263 if (LTDI (tmp_tmp
, 0)) {
22267 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22268 written
|= (1 << 20);
22269 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22271 frvbf_media_overflow (current_cpu
, 1);
22275 UHI opval
= tmp_tmp
;
22276 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22277 written
|= (1 << 20);
22278 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22287 abuf
->written
= written
;
22292 /* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22295 SEM_FN_NAME (frvbf
,cmqsubhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22297 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22298 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22299 int UNUSED written
= 0;
22300 IADDR UNUSED pc
= abuf
->addr
;
22301 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22303 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
22304 frvbf_media_register_not_aligned (current_cpu
);
22306 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
22313 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
22314 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
22315 written
|= (1 << 16);
22316 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
22319 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22320 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22321 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22322 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22326 tmp_tmp
= SUBDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
22327 if (GTDI (tmp_tmp
, 32767)) {
22331 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22332 written
|= (1 << 17);
22333 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22335 frvbf_media_overflow (current_cpu
, 8);
22338 if (LTDI (tmp_tmp
, -32768)) {
22341 UHI opval
= -32768;
22342 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22343 written
|= (1 << 17);
22344 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22346 frvbf_media_overflow (current_cpu
, 8);
22350 UHI opval
= tmp_tmp
;
22351 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22352 written
|= (1 << 17);
22353 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22360 tmp_tmp
= SUBDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
22361 if (GTDI (tmp_tmp
, 32767)) {
22365 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22366 written
|= (1 << 19);
22367 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22369 frvbf_media_overflow (current_cpu
, 4);
22372 if (LTDI (tmp_tmp
, -32768)) {
22375 UHI opval
= -32768;
22376 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22377 written
|= (1 << 19);
22378 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22380 frvbf_media_overflow (current_cpu
, 4);
22384 UHI opval
= tmp_tmp
;
22385 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22386 written
|= (1 << 19);
22387 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22393 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22394 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22395 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22396 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22400 tmp_tmp
= SUBDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
22401 if (GTDI (tmp_tmp
, 32767)) {
22405 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22406 written
|= (1 << 18);
22407 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22409 frvbf_media_overflow (current_cpu
, 2);
22412 if (LTDI (tmp_tmp
, -32768)) {
22415 UHI opval
= -32768;
22416 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22417 written
|= (1 << 18);
22418 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22420 frvbf_media_overflow (current_cpu
, 2);
22424 UHI opval
= tmp_tmp
;
22425 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22426 written
|= (1 << 18);
22427 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22434 tmp_tmp
= SUBDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
22435 if (GTDI (tmp_tmp
, 32767)) {
22439 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22440 written
|= (1 << 20);
22441 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22443 frvbf_media_overflow (current_cpu
, 1);
22446 if (LTDI (tmp_tmp
, -32768)) {
22449 UHI opval
= -32768;
22450 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22451 written
|= (1 << 20);
22452 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22454 frvbf_media_overflow (current_cpu
, 1);
22458 UHI opval
= tmp_tmp
;
22459 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22460 written
|= (1 << 20);
22461 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22470 abuf
->written
= written
;
22475 /* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22478 SEM_FN_NAME (frvbf
,cmqsubhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22480 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22481 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22482 int UNUSED written
= 0;
22483 IADDR UNUSED pc
= abuf
->addr
;
22484 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22486 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
22487 frvbf_media_register_not_aligned (current_cpu
);
22489 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
22496 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
22497 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
22498 written
|= (1 << 16);
22499 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
22502 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22503 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22504 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22505 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22509 tmp_tmp
= SUBDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
22510 if (GTDI (tmp_tmp
, 65535)) {
22514 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22515 written
|= (1 << 17);
22516 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22518 frvbf_media_overflow (current_cpu
, 8);
22521 if (LTDI (tmp_tmp
, 0)) {
22525 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22526 written
|= (1 << 17);
22527 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22529 frvbf_media_overflow (current_cpu
, 8);
22533 UHI opval
= tmp_tmp
;
22534 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22535 written
|= (1 << 17);
22536 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22543 tmp_tmp
= SUBDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
22544 if (GTDI (tmp_tmp
, 65535)) {
22548 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22549 written
|= (1 << 19);
22550 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22552 frvbf_media_overflow (current_cpu
, 4);
22555 if (LTDI (tmp_tmp
, 0)) {
22559 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22560 written
|= (1 << 19);
22561 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22563 frvbf_media_overflow (current_cpu
, 4);
22567 UHI opval
= tmp_tmp
;
22568 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22569 written
|= (1 << 19);
22570 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22576 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22577 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22578 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22579 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22583 tmp_tmp
= SUBDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
22584 if (GTDI (tmp_tmp
, 65535)) {
22588 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22589 written
|= (1 << 18);
22590 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22592 frvbf_media_overflow (current_cpu
, 2);
22595 if (LTDI (tmp_tmp
, 0)) {
22599 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22600 written
|= (1 << 18);
22601 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22603 frvbf_media_overflow (current_cpu
, 2);
22607 UHI opval
= tmp_tmp
;
22608 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22609 written
|= (1 << 18);
22610 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22617 tmp_tmp
= SUBDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
22618 if (GTDI (tmp_tmp
, 65535)) {
22622 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22623 written
|= (1 << 20);
22624 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22626 frvbf_media_overflow (current_cpu
, 1);
22629 if (LTDI (tmp_tmp
, 0)) {
22633 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22634 written
|= (1 << 20);
22635 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22637 frvbf_media_overflow (current_cpu
, 1);
22641 UHI opval
= tmp_tmp
;
22642 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22643 written
|= (1 << 20);
22644 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22653 abuf
->written
= written
;
22658 /* mqlclrhs: mqlclrhs$pack $FRintieven,$FRintjeven,$FRintkeven */
22661 SEM_FN_NAME (frvbf
,mqlclrhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22663 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22664 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22665 int UNUSED written
= 0;
22666 IADDR UNUSED pc
= abuf
->addr
;
22667 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22669 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
22670 frvbf_media_register_not_aligned (current_cpu
);
22682 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
22683 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
22684 written
|= (1 << 14);
22685 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
22688 tmp_a1
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22689 tmp_a2
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22690 tmp_b1
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22691 tmp_b2
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22694 tmp_a3
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22695 tmp_a4
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22696 tmp_b3
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22697 tmp_b4
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22700 UHI opval
= (LEUHI (ABSHI (tmp_a1
), ABSHI (tmp_b1
))) ? (0) : (LEHI (0, tmp_b1
)) ? (tmp_a1
) : (EQHI (tmp_a1
, -32768)) ? (32767) : (NEGHI (tmp_a1
));
22701 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22702 written
|= (1 << 15);
22703 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22706 UHI opval
= (LEUHI (ABSHI (tmp_a2
), ABSHI (tmp_b2
))) ? (0) : (LEHI (0, tmp_b2
)) ? (tmp_a2
) : (EQHI (tmp_a2
, -32768)) ? (32767) : (NEGHI (tmp_a2
));
22707 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22708 written
|= (1 << 17);
22709 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22712 UHI opval
= (LEUHI (ABSHI (tmp_a3
), ABSHI (tmp_b3
))) ? (0) : (LEHI (0, tmp_b3
)) ? (tmp_a3
) : (EQHI (tmp_a3
, -32768)) ? (32767) : (NEGHI (tmp_a3
));
22713 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22714 written
|= (1 << 16);
22715 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22718 UHI opval
= (LEUHI (ABSHI (tmp_a4
), ABSHI (tmp_b4
))) ? (0) : (LEHI (0, tmp_b4
)) ? (tmp_a4
) : (EQHI (tmp_a4
, -32768)) ? (32767) : (NEGHI (tmp_a4
));
22719 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22720 written
|= (1 << 18);
22721 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22726 abuf
->written
= written
;
22731 /* mqlmths: mqlmths$pack $FRintieven,$FRintjeven,$FRintkeven */
22734 SEM_FN_NAME (frvbf
,mqlmths
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22736 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22737 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22738 int UNUSED written
= 0;
22739 IADDR UNUSED pc
= abuf
->addr
;
22740 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22742 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
22743 frvbf_media_register_not_aligned (current_cpu
);
22755 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
22756 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
22757 written
|= (1 << 14);
22758 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
22761 tmp_a1
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22762 tmp_a2
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22763 tmp_b1
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22764 tmp_b2
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22767 tmp_a3
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22768 tmp_a4
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22769 tmp_b3
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22770 tmp_b4
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22773 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
));
22774 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22775 written
|= (1 << 15);
22776 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22779 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
));
22780 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22781 written
|= (1 << 17);
22782 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22785 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
));
22786 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22787 written
|= (1 << 16);
22788 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22791 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
));
22792 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22793 written
|= (1 << 18);
22794 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22799 abuf
->written
= written
;
22804 /* mqsllhi: mqsllhi$pack $FRintieven,$u6,$FRintkeven */
22807 SEM_FN_NAME (frvbf
,mqsllhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22809 #define FLD(f) abuf->fields.sfmt_mqsllhi.f
22810 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22811 int UNUSED written
= 0;
22812 IADDR UNUSED pc
= abuf
->addr
;
22813 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22815 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1)))) {
22816 frvbf_media_register_not_aligned (current_cpu
);
22820 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
22821 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
22822 written
|= (1 << 9);
22823 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
22826 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
22827 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
22828 written
|= (1 << 10);
22829 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
22832 UHI opval
= SLLHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), ANDSI (FLD (f_u6
), 15));
22833 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22834 written
|= (1 << 11);
22835 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22838 UHI opval
= SLLHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), ANDSI (FLD (f_u6
), 15));
22839 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22840 written
|= (1 << 13);
22841 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22844 UHI opval
= SLLHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), ANDSI (FLD (f_u6
), 15));
22845 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22846 written
|= (1 << 12);
22847 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22850 UHI opval
= SLLHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), ANDSI (FLD (f_u6
), 15));
22851 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22852 written
|= (1 << 14);
22853 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22858 abuf
->written
= written
;
22863 /* mqsrahi: mqsrahi$pack $FRintieven,$u6,$FRintkeven */
22866 SEM_FN_NAME (frvbf
,mqsrahi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22868 #define FLD(f) abuf->fields.sfmt_mqsllhi.f
22869 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22870 int UNUSED written
= 0;
22871 IADDR UNUSED pc
= abuf
->addr
;
22872 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22874 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1)))) {
22875 frvbf_media_register_not_aligned (current_cpu
);
22879 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
22880 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
22881 written
|= (1 << 9);
22882 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
22885 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
22886 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
22887 written
|= (1 << 10);
22888 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
22891 UHI opval
= SRAHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), ANDSI (FLD (f_u6
), 15));
22892 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22893 written
|= (1 << 11);
22894 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22897 UHI opval
= SRAHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), ANDSI (FLD (f_u6
), 15));
22898 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
22899 written
|= (1 << 13);
22900 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22903 UHI opval
= SRAHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), ANDSI (FLD (f_u6
), 15));
22904 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22905 written
|= (1 << 12);
22906 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22909 UHI opval
= SRAHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), ANDSI (FLD (f_u6
), 15));
22910 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
22911 written
|= (1 << 14);
22912 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22917 abuf
->written
= written
;
22922 /* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22925 SEM_FN_NAME (frvbf
,maddaccs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22927 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22928 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22929 int UNUSED written
= 0;
22930 IADDR UNUSED pc
= abuf
->addr
;
22931 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22933 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Si
))) {
22934 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
22935 if (ANDSI (FLD (f_ACC40Si
), SUBSI (2, 1))) {
22936 frvbf_media_acc_not_aligned (current_cpu
);
22940 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si
), 1)));
22941 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
22944 DI opval
= MAKEDI (127, 0xffffffff);
22945 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22946 written
|= (1 << 4);
22947 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22949 frvbf_media_overflow (current_cpu
, 8);
22952 if (LTDI (tmp_tmp
, INVDI (MAKEDI (127, 0xffffffff)))) {
22955 DI opval
= INVDI (MAKEDI (127, 0xffffffff));
22956 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22957 written
|= (1 << 4);
22958 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22960 frvbf_media_overflow (current_cpu
, 8);
22964 DI opval
= tmp_tmp
;
22965 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22966 written
|= (1 << 4);
22967 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22976 abuf
->written
= written
;
22981 /* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22984 SEM_FN_NAME (frvbf
,msubaccs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22986 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22987 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22988 int UNUSED written
= 0;
22989 IADDR UNUSED pc
= abuf
->addr
;
22990 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22992 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Si
))) {
22993 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
22994 if (ANDSI (FLD (f_ACC40Si
), SUBSI (2, 1))) {
22995 frvbf_media_acc_not_aligned (current_cpu
);
22999 tmp_tmp
= SUBDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si
), 1)));
23000 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
23003 DI opval
= MAKEDI (127, 0xffffffff);
23004 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23005 written
|= (1 << 4);
23006 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23008 frvbf_media_overflow (current_cpu
, 8);
23011 if (LTDI (tmp_tmp
, INVDI (MAKEDI (127, 0xffffffff)))) {
23014 DI opval
= INVDI (MAKEDI (127, 0xffffffff));
23015 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23016 written
|= (1 << 4);
23017 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23019 frvbf_media_overflow (current_cpu
, 8);
23023 DI opval
= tmp_tmp
;
23024 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23025 written
|= (1 << 4);
23026 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23035 abuf
->written
= written
;
23040 /* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
23043 SEM_FN_NAME (frvbf
,mdaddaccs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23045 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23046 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23047 int UNUSED written
= 0;
23048 IADDR UNUSED pc
= abuf
->addr
;
23049 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23051 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Si
))) {
23052 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23053 if (ANDSI (FLD (f_ACC40Si
), SUBSI (4, 1))) {
23054 frvbf_media_acc_not_aligned (current_cpu
);
23056 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23057 frvbf_media_acc_not_aligned (current_cpu
);
23062 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si
), 1)));
23063 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
23066 DI opval
= MAKEDI (127, 0xffffffff);
23067 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23068 written
|= (1 << 6);
23069 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23071 frvbf_media_overflow (current_cpu
, 8);
23074 if (LTDI (tmp_tmp
, INVDI (MAKEDI (127, 0xffffffff)))) {
23077 DI opval
= INVDI (MAKEDI (127, 0xffffffff));
23078 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23079 written
|= (1 << 6);
23080 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23082 frvbf_media_overflow (current_cpu
, 8);
23086 DI opval
= tmp_tmp
;
23087 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23088 written
|= (1 << 6);
23089 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23096 tmp_tmp
= ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Si
), 2)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si
), 3)));
23097 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
23100 DI opval
= MAKEDI (127, 0xffffffff);
23101 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
23102 written
|= (1 << 7);
23103 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23105 frvbf_media_overflow (current_cpu
, 4);
23108 if (LTDI (tmp_tmp
, INVDI (MAKEDI (127, 0xffffffff)))) {
23111 DI opval
= INVDI (MAKEDI (127, 0xffffffff));
23112 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
23113 written
|= (1 << 7);
23114 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23116 frvbf_media_overflow (current_cpu
, 4);
23120 DI opval
= tmp_tmp
;
23121 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
23122 written
|= (1 << 7);
23123 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23134 abuf
->written
= written
;
23139 /* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
23142 SEM_FN_NAME (frvbf
,mdsubaccs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23144 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23145 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23146 int UNUSED written
= 0;
23147 IADDR UNUSED pc
= abuf
->addr
;
23148 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23150 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Si
))) {
23151 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23152 if (ANDSI (FLD (f_ACC40Si
), SUBSI (4, 1))) {
23153 frvbf_media_acc_not_aligned (current_cpu
);
23155 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23156 frvbf_media_acc_not_aligned (current_cpu
);
23161 tmp_tmp
= SUBDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si
), 1)));
23162 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
23165 DI opval
= MAKEDI (127, 0xffffffff);
23166 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23167 written
|= (1 << 6);
23168 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23170 frvbf_media_overflow (current_cpu
, 8);
23173 if (LTDI (tmp_tmp
, INVDI (MAKEDI (127, 0xffffffff)))) {
23176 DI opval
= INVDI (MAKEDI (127, 0xffffffff));
23177 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23178 written
|= (1 << 6);
23179 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23181 frvbf_media_overflow (current_cpu
, 8);
23185 DI opval
= tmp_tmp
;
23186 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23187 written
|= (1 << 6);
23188 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23195 tmp_tmp
= SUBDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Si
), 2)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si
), 3)));
23196 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
23199 DI opval
= MAKEDI (127, 0xffffffff);
23200 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
23201 written
|= (1 << 7);
23202 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23204 frvbf_media_overflow (current_cpu
, 4);
23207 if (LTDI (tmp_tmp
, INVDI (MAKEDI (127, 0xffffffff)))) {
23210 DI opval
= INVDI (MAKEDI (127, 0xffffffff));
23211 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
23212 written
|= (1 << 7);
23213 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23215 frvbf_media_overflow (current_cpu
, 4);
23219 DI opval
= tmp_tmp
;
23220 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
23221 written
|= (1 << 7);
23222 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23233 abuf
->written
= written
;
23238 /* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
23241 SEM_FN_NAME (frvbf
,masaccs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23243 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23244 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23245 int UNUSED written
= 0;
23246 IADDR UNUSED pc
= abuf
->addr
;
23247 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23249 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Si
))) {
23250 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23251 if (ANDSI (FLD (f_ACC40Si
), SUBSI (2, 1))) {
23252 frvbf_media_acc_not_aligned (current_cpu
);
23254 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23255 frvbf_media_acc_not_aligned (current_cpu
);
23260 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si
), 1)));
23261 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
23264 DI opval
= MAKEDI (127, 0xffffffff);
23265 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23266 written
|= (1 << 4);
23267 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23269 frvbf_media_overflow (current_cpu
, 8);
23272 if (LTDI (tmp_tmp
, INVDI (MAKEDI (127, 0xffffffff)))) {
23275 DI opval
= INVDI (MAKEDI (127, 0xffffffff));
23276 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23277 written
|= (1 << 4);
23278 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23280 frvbf_media_overflow (current_cpu
, 8);
23284 DI opval
= tmp_tmp
;
23285 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23286 written
|= (1 << 4);
23287 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23294 tmp_tmp
= SUBDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si
), 1)));
23295 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
23298 DI opval
= MAKEDI (127, 0xffffffff);
23299 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
23300 written
|= (1 << 5);
23301 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23303 frvbf_media_overflow (current_cpu
, 4);
23306 if (LTDI (tmp_tmp
, INVDI (MAKEDI (127, 0xffffffff)))) {
23309 DI opval
= INVDI (MAKEDI (127, 0xffffffff));
23310 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
23311 written
|= (1 << 5);
23312 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23314 frvbf_media_overflow (current_cpu
, 4);
23318 DI opval
= tmp_tmp
;
23319 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
23320 written
|= (1 << 5);
23321 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23332 abuf
->written
= written
;
23337 /* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23340 SEM_FN_NAME (frvbf
,mdasaccs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23342 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23343 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23344 int UNUSED written
= 0;
23345 IADDR UNUSED pc
= abuf
->addr
;
23346 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23348 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Si
))) {
23349 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23350 if (ANDSI (FLD (f_ACC40Si
), SUBSI (4, 1))) {
23351 frvbf_media_acc_not_aligned (current_cpu
);
23353 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
23354 frvbf_media_acc_not_aligned (current_cpu
);
23359 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si
), 1)));
23360 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
23363 DI opval
= MAKEDI (127, 0xffffffff);
23364 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23365 written
|= (1 << 6);
23366 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23368 frvbf_media_overflow (current_cpu
, 8);
23371 if (LTDI (tmp_tmp
, INVDI (MAKEDI (127, 0xffffffff)))) {
23374 DI opval
= INVDI (MAKEDI (127, 0xffffffff));
23375 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23376 written
|= (1 << 6);
23377 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23379 frvbf_media_overflow (current_cpu
, 8);
23383 DI opval
= tmp_tmp
;
23384 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23385 written
|= (1 << 6);
23386 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23393 tmp_tmp
= SUBDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si
), 1)));
23394 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
23397 DI opval
= MAKEDI (127, 0xffffffff);
23398 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
23399 written
|= (1 << 7);
23400 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23402 frvbf_media_overflow (current_cpu
, 4);
23405 if (LTDI (tmp_tmp
, INVDI (MAKEDI (127, 0xffffffff)))) {
23408 DI opval
= INVDI (MAKEDI (127, 0xffffffff));
23409 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
23410 written
|= (1 << 7);
23411 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23413 frvbf_media_overflow (current_cpu
, 4);
23417 DI opval
= tmp_tmp
;
23418 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
23419 written
|= (1 << 7);
23420 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23427 tmp_tmp
= ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Si
), 2)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si
), 3)));
23428 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
23431 DI opval
= MAKEDI (127, 0xffffffff);
23432 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
23433 written
|= (1 << 8);
23434 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23436 frvbf_media_overflow (current_cpu
, 2);
23439 if (LTDI (tmp_tmp
, INVDI (MAKEDI (127, 0xffffffff)))) {
23442 DI opval
= INVDI (MAKEDI (127, 0xffffffff));
23443 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
23444 written
|= (1 << 8);
23445 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23447 frvbf_media_overflow (current_cpu
, 2);
23451 DI opval
= tmp_tmp
;
23452 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
23453 written
|= (1 << 8);
23454 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23461 tmp_tmp
= SUBDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Si
), 2)), GET_H_ACC40S (ADDSI (FLD (f_ACC40Si
), 3)));
23462 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
23465 DI opval
= MAKEDI (127, 0xffffffff);
23466 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
23467 written
|= (1 << 9);
23468 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23470 frvbf_media_overflow (current_cpu
, 1);
23473 if (LTDI (tmp_tmp
, INVDI (MAKEDI (127, 0xffffffff)))) {
23476 DI opval
= INVDI (MAKEDI (127, 0xffffffff));
23477 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
23478 written
|= (1 << 9);
23479 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23481 frvbf_media_overflow (current_cpu
, 1);
23485 DI opval
= tmp_tmp
;
23486 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
23487 written
|= (1 << 9);
23488 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23499 abuf
->written
= written
;
23504 /* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23507 SEM_FN_NAME (frvbf
,mmulhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23509 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23510 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23511 int UNUSED written
= 0;
23512 IADDR UNUSED pc
= abuf
->addr
;
23513 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23515 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23516 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23517 frvbf_media_acc_not_aligned (current_cpu
);
23525 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23526 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23527 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23528 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23531 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
23532 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23533 written
|= (1 << 9);
23534 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23537 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
23538 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
23539 written
|= (1 << 10);
23540 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23546 abuf
->written
= written
;
23551 /* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23554 SEM_FN_NAME (frvbf
,mmulhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23556 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23557 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23558 int UNUSED written
= 0;
23559 IADDR UNUSED pc
= abuf
->addr
;
23560 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23562 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23563 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23564 frvbf_media_acc_not_aligned (current_cpu
);
23572 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23573 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23574 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23575 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23578 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
23579 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23580 written
|= (1 << 9);
23581 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23584 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
23585 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
23586 written
|= (1 << 10);
23587 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23593 abuf
->written
= written
;
23598 /* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23601 SEM_FN_NAME (frvbf
,mmulxhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23603 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23604 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23605 int UNUSED written
= 0;
23606 IADDR UNUSED pc
= abuf
->addr
;
23607 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23609 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23610 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23611 frvbf_media_acc_not_aligned (current_cpu
);
23619 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23620 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23621 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23622 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23625 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
));
23626 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23627 written
|= (1 << 9);
23628 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23631 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
));
23632 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
23633 written
|= (1 << 10);
23634 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23640 abuf
->written
= written
;
23645 /* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23648 SEM_FN_NAME (frvbf
,mmulxhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23650 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23651 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23652 int UNUSED written
= 0;
23653 IADDR UNUSED pc
= abuf
->addr
;
23654 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23656 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23657 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23658 frvbf_media_acc_not_aligned (current_cpu
);
23666 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23667 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23668 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23669 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23672 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjlo
));
23673 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23674 written
|= (1 << 9);
23675 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23678 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjhi
));
23679 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
23680 written
|= (1 << 10);
23681 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23687 abuf
->written
= written
;
23692 /* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23695 SEM_FN_NAME (frvbf
,cmmulhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23697 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23698 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23699 int UNUSED written
= 0;
23700 IADDR UNUSED pc
= abuf
->addr
;
23701 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23703 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23704 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23705 frvbf_media_acc_not_aligned (current_cpu
);
23707 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
23714 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23715 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23716 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23717 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23720 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
23721 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23722 written
|= (1 << 11);
23723 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23726 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
23727 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
23728 written
|= (1 << 12);
23729 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23736 abuf
->written
= written
;
23741 /* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23744 SEM_FN_NAME (frvbf
,cmmulhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23746 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23747 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23748 int UNUSED written
= 0;
23749 IADDR UNUSED pc
= abuf
->addr
;
23750 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23752 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23753 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23754 frvbf_media_acc_not_aligned (current_cpu
);
23756 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
23763 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23764 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23765 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23766 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23769 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
23770 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23771 written
|= (1 << 11);
23772 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23775 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
23776 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
23777 written
|= (1 << 12);
23778 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23785 abuf
->written
= written
;
23790 /* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23793 SEM_FN_NAME (frvbf
,mqmulhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23795 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23796 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23797 int UNUSED written
= 0;
23798 IADDR UNUSED pc
= abuf
->addr
;
23799 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23801 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23802 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
23803 frvbf_media_acc_not_aligned (current_cpu
);
23805 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
23806 frvbf_media_register_not_aligned (current_cpu
);
23814 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23815 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23816 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23817 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23820 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
23821 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23822 written
|= (1 << 13);
23823 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23826 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
23827 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
23828 written
|= (1 << 14);
23829 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23832 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23833 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23834 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23835 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23838 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
23839 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
23840 written
|= (1 << 15);
23841 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23844 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
23845 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
23846 written
|= (1 << 16);
23847 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23854 abuf
->written
= written
;
23859 /* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23862 SEM_FN_NAME (frvbf
,mqmulhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23864 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23865 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23866 int UNUSED written
= 0;
23867 IADDR UNUSED pc
= abuf
->addr
;
23868 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23870 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23871 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
23872 frvbf_media_acc_not_aligned (current_cpu
);
23874 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
23875 frvbf_media_register_not_aligned (current_cpu
);
23883 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23884 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23885 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23886 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23889 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
23890 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23891 written
|= (1 << 13);
23892 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23895 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
23896 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
23897 written
|= (1 << 14);
23898 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23901 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23902 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23903 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23904 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23907 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
23908 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
23909 written
|= (1 << 15);
23910 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23913 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
23914 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
23915 written
|= (1 << 16);
23916 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23923 abuf
->written
= written
;
23928 /* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23931 SEM_FN_NAME (frvbf
,mqmulxhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23933 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23934 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23935 int UNUSED written
= 0;
23936 IADDR UNUSED pc
= abuf
->addr
;
23937 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23939 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23940 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
23941 frvbf_media_acc_not_aligned (current_cpu
);
23943 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
23944 frvbf_media_register_not_aligned (current_cpu
);
23952 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23953 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23954 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23955 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23958 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
));
23959 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23960 written
|= (1 << 13);
23961 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23964 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
));
23965 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
23966 written
|= (1 << 14);
23967 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23970 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23971 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23972 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23973 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23976 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
));
23977 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
23978 written
|= (1 << 15);
23979 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23982 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
));
23983 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
23984 written
|= (1 << 16);
23985 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23992 abuf
->written
= written
;
23997 /* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
24000 SEM_FN_NAME (frvbf
,mqmulxhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24002 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24003 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24004 int UNUSED written
= 0;
24005 IADDR UNUSED pc
= abuf
->addr
;
24006 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24008 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
24009 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
24010 frvbf_media_acc_not_aligned (current_cpu
);
24012 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
24013 frvbf_media_register_not_aligned (current_cpu
);
24021 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24022 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24023 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24024 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24027 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjlo
));
24028 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24029 written
|= (1 << 13);
24030 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24033 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjhi
));
24034 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
24035 written
|= (1 << 14);
24036 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24039 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24040 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24041 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24042 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24045 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjlo
));
24046 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
24047 written
|= (1 << 15);
24048 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24051 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjhi
));
24052 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
24053 written
|= (1 << 16);
24054 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24061 abuf
->written
= written
;
24066 /* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24069 SEM_FN_NAME (frvbf
,cmqmulhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24071 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24072 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24073 int UNUSED written
= 0;
24074 IADDR UNUSED pc
= abuf
->addr
;
24075 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24077 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
24078 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
24079 frvbf_media_acc_not_aligned (current_cpu
);
24081 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
24082 frvbf_media_register_not_aligned (current_cpu
);
24084 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
24091 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24092 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24093 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24094 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24097 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
24098 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24099 written
|= (1 << 15);
24100 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24103 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
24104 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
24105 written
|= (1 << 16);
24106 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24109 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24110 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24111 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24112 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24115 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
24116 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
24117 written
|= (1 << 17);
24118 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24121 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
24122 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
24123 written
|= (1 << 18);
24124 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24132 abuf
->written
= written
;
24137 /* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24140 SEM_FN_NAME (frvbf
,cmqmulhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24142 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24143 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24144 int UNUSED written
= 0;
24145 IADDR UNUSED pc
= abuf
->addr
;
24146 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24148 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
24149 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
24150 frvbf_media_acc_not_aligned (current_cpu
);
24152 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
24153 frvbf_media_register_not_aligned (current_cpu
);
24155 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
24162 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24163 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24164 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24165 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24168 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
24169 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24170 written
|= (1 << 15);
24171 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24174 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
24175 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
24176 written
|= (1 << 16);
24177 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24180 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24181 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24182 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24183 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24186 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
24187 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
24188 written
|= (1 << 17);
24189 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24192 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
24193 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
24194 written
|= (1 << 18);
24195 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24203 abuf
->written
= written
;
24208 /* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
24211 SEM_FN_NAME (frvbf
,mmachs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24213 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24214 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24215 int UNUSED written
= 0;
24216 IADDR UNUSED pc
= abuf
->addr
;
24217 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24219 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
24220 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
24221 frvbf_media_acc_not_aligned (current_cpu
);
24229 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24230 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24231 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24232 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24236 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
24237 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24240 DI opval
= MAKEDI (127, 0xffffffff);
24241 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24242 written
|= (1 << 11);
24243 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24245 frvbf_media_overflow (current_cpu
, 8);
24248 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24251 DI opval
= MAKEDI (0xffffff80, 0);
24252 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24253 written
|= (1 << 11);
24254 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24256 frvbf_media_overflow (current_cpu
, 8);
24260 DI opval
= tmp_tmp
;
24261 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24262 written
|= (1 << 11);
24263 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24270 tmp_tmp
= ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk
), 1)), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
24271 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24274 DI opval
= MAKEDI (127, 0xffffffff);
24275 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
24276 written
|= (1 << 12);
24277 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24279 frvbf_media_overflow (current_cpu
, 4);
24282 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24285 DI opval
= MAKEDI (0xffffff80, 0);
24286 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
24287 written
|= (1 << 12);
24288 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24290 frvbf_media_overflow (current_cpu
, 4);
24294 DI opval
= tmp_tmp
;
24295 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
24296 written
|= (1 << 12);
24297 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24306 abuf
->written
= written
;
24311 /* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24314 SEM_FN_NAME (frvbf
,mmachu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24316 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24317 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24318 int UNUSED written
= 0;
24319 IADDR UNUSED pc
= abuf
->addr
;
24320 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24322 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Uk
))) {
24323 if (ANDSI (FLD (f_ACC40Uk
), SUBSI (2, 1))) {
24324 frvbf_media_acc_not_aligned (current_cpu
);
24332 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24333 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24334 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24335 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24339 tmp_tmp
= ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk
)), MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
)));
24340 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24343 UDI opval
= MAKEDI (255, 0xffffffff);
24344 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24345 written
|= (1 << 11);
24346 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24348 frvbf_media_overflow (current_cpu
, 8);
24351 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24354 UDI opval
= MAKEDI (0, 0);
24355 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24356 written
|= (1 << 11);
24357 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24359 frvbf_media_overflow (current_cpu
, 8);
24363 UDI opval
= tmp_tmp
;
24364 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24365 written
|= (1 << 11);
24366 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24373 tmp_tmp
= ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk
), 1)), MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
)));
24374 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24377 UDI opval
= MAKEDI (255, 0xffffffff);
24378 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 1), opval
);
24379 written
|= (1 << 12);
24380 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24382 frvbf_media_overflow (current_cpu
, 4);
24385 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24388 UDI opval
= MAKEDI (0, 0);
24389 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 1), opval
);
24390 written
|= (1 << 12);
24391 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24393 frvbf_media_overflow (current_cpu
, 4);
24397 UDI opval
= tmp_tmp
;
24398 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 1), opval
);
24399 written
|= (1 << 12);
24400 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24409 abuf
->written
= written
;
24414 /* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24417 SEM_FN_NAME (frvbf
,mmrdhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24419 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24420 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24421 int UNUSED written
= 0;
24422 IADDR UNUSED pc
= abuf
->addr
;
24423 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24425 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
24426 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
24427 frvbf_media_acc_not_aligned (current_cpu
);
24435 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24436 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24437 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24438 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24442 tmp_tmp
= SUBDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
24443 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24446 DI opval
= MAKEDI (127, 0xffffffff);
24447 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24448 written
|= (1 << 11);
24449 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24451 frvbf_media_overflow (current_cpu
, 8);
24454 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24457 DI opval
= MAKEDI (0xffffff80, 0);
24458 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24459 written
|= (1 << 11);
24460 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24462 frvbf_media_overflow (current_cpu
, 8);
24466 DI opval
= tmp_tmp
;
24467 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24468 written
|= (1 << 11);
24469 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24476 tmp_tmp
= SUBDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk
), 1)), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
24477 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24480 DI opval
= MAKEDI (127, 0xffffffff);
24481 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
24482 written
|= (1 << 12);
24483 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24485 frvbf_media_overflow (current_cpu
, 4);
24488 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24491 DI opval
= MAKEDI (0xffffff80, 0);
24492 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
24493 written
|= (1 << 12);
24494 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24496 frvbf_media_overflow (current_cpu
, 4);
24500 DI opval
= tmp_tmp
;
24501 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
24502 written
|= (1 << 12);
24503 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24512 abuf
->written
= written
;
24517 /* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24520 SEM_FN_NAME (frvbf
,mmrdhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24522 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24523 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24524 int UNUSED written
= 0;
24525 IADDR UNUSED pc
= abuf
->addr
;
24526 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24528 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Uk
))) {
24529 if (ANDSI (FLD (f_ACC40Uk
), SUBSI (2, 1))) {
24530 frvbf_media_acc_not_aligned (current_cpu
);
24538 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24539 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24540 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24541 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24545 tmp_tmp
= SUBDI (GET_H_ACC40U (FLD (f_ACC40Uk
)), MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
)));
24546 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24549 UDI opval
= MAKEDI (255, 0xffffffff);
24550 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24551 written
|= (1 << 11);
24552 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24554 frvbf_media_overflow (current_cpu
, 8);
24557 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24560 UDI opval
= MAKEDI (0, 0);
24561 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24562 written
|= (1 << 11);
24563 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24565 frvbf_media_overflow (current_cpu
, 8);
24569 UDI opval
= tmp_tmp
;
24570 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24571 written
|= (1 << 11);
24572 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24579 tmp_tmp
= SUBDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk
), 1)), MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
)));
24580 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24583 UDI opval
= MAKEDI (255, 0xffffffff);
24584 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 1), opval
);
24585 written
|= (1 << 12);
24586 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24588 frvbf_media_overflow (current_cpu
, 4);
24591 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24594 UDI opval
= MAKEDI (0, 0);
24595 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 1), opval
);
24596 written
|= (1 << 12);
24597 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24599 frvbf_media_overflow (current_cpu
, 4);
24603 UDI opval
= tmp_tmp
;
24604 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 1), opval
);
24605 written
|= (1 << 12);
24606 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24615 abuf
->written
= written
;
24620 /* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24623 SEM_FN_NAME (frvbf
,cmmachs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24625 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24626 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24627 int UNUSED written
= 0;
24628 IADDR UNUSED pc
= abuf
->addr
;
24629 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24631 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
24632 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
24633 frvbf_media_acc_not_aligned (current_cpu
);
24635 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
24642 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24643 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24644 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24645 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24649 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
24650 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24653 DI opval
= MAKEDI (127, 0xffffffff);
24654 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24655 written
|= (1 << 13);
24656 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24658 frvbf_media_overflow (current_cpu
, 8);
24661 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24664 DI opval
= MAKEDI (0xffffff80, 0);
24665 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24666 written
|= (1 << 13);
24667 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24669 frvbf_media_overflow (current_cpu
, 8);
24673 DI opval
= tmp_tmp
;
24674 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24675 written
|= (1 << 13);
24676 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24683 tmp_tmp
= ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk
), 1)), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
24684 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24687 DI opval
= MAKEDI (127, 0xffffffff);
24688 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
24689 written
|= (1 << 14);
24690 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24692 frvbf_media_overflow (current_cpu
, 4);
24695 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24698 DI opval
= MAKEDI (0xffffff80, 0);
24699 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
24700 written
|= (1 << 14);
24701 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24703 frvbf_media_overflow (current_cpu
, 4);
24707 DI opval
= tmp_tmp
;
24708 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
24709 written
|= (1 << 14);
24710 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24720 abuf
->written
= written
;
24725 /* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24728 SEM_FN_NAME (frvbf
,cmmachu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24730 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24731 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24732 int UNUSED written
= 0;
24733 IADDR UNUSED pc
= abuf
->addr
;
24734 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24736 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Uk
))) {
24737 if (ANDSI (FLD (f_ACC40Uk
), SUBSI (2, 1))) {
24738 frvbf_media_acc_not_aligned (current_cpu
);
24740 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
24747 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24748 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24749 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24750 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24754 tmp_tmp
= ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk
)), MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
)));
24755 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24758 UDI opval
= MAKEDI (255, 0xffffffff);
24759 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24760 written
|= (1 << 13);
24761 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24763 frvbf_media_overflow (current_cpu
, 8);
24766 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24769 UDI opval
= MAKEDI (0, 0);
24770 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24771 written
|= (1 << 13);
24772 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24774 frvbf_media_overflow (current_cpu
, 8);
24778 UDI opval
= tmp_tmp
;
24779 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24780 written
|= (1 << 13);
24781 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24788 tmp_tmp
= ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk
), 1)), MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
)));
24789 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24792 UDI opval
= MAKEDI (255, 0xffffffff);
24793 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 1), opval
);
24794 written
|= (1 << 14);
24795 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24797 frvbf_media_overflow (current_cpu
, 4);
24800 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24803 UDI opval
= MAKEDI (0, 0);
24804 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 1), opval
);
24805 written
|= (1 << 14);
24806 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24808 frvbf_media_overflow (current_cpu
, 4);
24812 UDI opval
= tmp_tmp
;
24813 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 1), opval
);
24814 written
|= (1 << 14);
24815 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24825 abuf
->written
= written
;
24830 /* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24833 SEM_FN_NAME (frvbf
,mqmachs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24835 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24836 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24837 int UNUSED written
= 0;
24838 IADDR UNUSED pc
= abuf
->addr
;
24839 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24841 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
24842 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
24843 frvbf_media_acc_not_aligned (current_cpu
);
24845 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
24846 frvbf_media_register_not_aligned (current_cpu
);
24854 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24855 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24856 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24857 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24861 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
24862 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24865 DI opval
= MAKEDI (127, 0xffffffff);
24866 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24867 written
|= (1 << 17);
24868 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24870 frvbf_media_overflow (current_cpu
, 8);
24873 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24876 DI opval
= MAKEDI (0xffffff80, 0);
24877 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24878 written
|= (1 << 17);
24879 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24881 frvbf_media_overflow (current_cpu
, 8);
24885 DI opval
= tmp_tmp
;
24886 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24887 written
|= (1 << 17);
24888 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24895 tmp_tmp
= ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk
), 1)), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
24896 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24899 DI opval
= MAKEDI (127, 0xffffffff);
24900 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
24901 written
|= (1 << 18);
24902 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24904 frvbf_media_overflow (current_cpu
, 4);
24907 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24910 DI opval
= MAKEDI (0xffffff80, 0);
24911 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
24912 written
|= (1 << 18);
24913 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24915 frvbf_media_overflow (current_cpu
, 4);
24919 DI opval
= tmp_tmp
;
24920 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
24921 written
|= (1 << 18);
24922 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24928 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24929 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24930 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24931 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24935 tmp_tmp
= ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk
), 2)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
24936 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24939 DI opval
= MAKEDI (127, 0xffffffff);
24940 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
24941 written
|= (1 << 19);
24942 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24944 frvbf_media_overflow (current_cpu
, 2);
24947 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24950 DI opval
= MAKEDI (0xffffff80, 0);
24951 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
24952 written
|= (1 << 19);
24953 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24955 frvbf_media_overflow (current_cpu
, 2);
24959 DI opval
= tmp_tmp
;
24960 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
24961 written
|= (1 << 19);
24962 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24969 tmp_tmp
= ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk
), 3)), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
24970 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24973 DI opval
= MAKEDI (127, 0xffffffff);
24974 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
24975 written
|= (1 << 20);
24976 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24978 frvbf_media_overflow (current_cpu
, 1);
24981 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24984 DI opval
= MAKEDI (0xffffff80, 0);
24985 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
24986 written
|= (1 << 20);
24987 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24989 frvbf_media_overflow (current_cpu
, 1);
24993 DI opval
= tmp_tmp
;
24994 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
24995 written
|= (1 << 20);
24996 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25006 abuf
->written
= written
;
25011 /* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
25014 SEM_FN_NAME (frvbf
,mqmachu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
25016 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25017 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
25018 int UNUSED written
= 0;
25019 IADDR UNUSED pc
= abuf
->addr
;
25020 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
25022 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Uk
))) {
25023 if (ANDSI (FLD (f_ACC40Uk
), SUBSI (4, 1))) {
25024 frvbf_media_acc_not_aligned (current_cpu
);
25026 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
25027 frvbf_media_register_not_aligned (current_cpu
);
25035 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25036 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25037 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25038 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25042 tmp_tmp
= ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk
)), MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
)));
25043 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
25046 UDI opval
= MAKEDI (255, 0xffffffff);
25047 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
25048 written
|= (1 << 17);
25049 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25051 frvbf_media_overflow (current_cpu
, 8);
25054 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
25057 UDI opval
= MAKEDI (0, 0);
25058 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
25059 written
|= (1 << 17);
25060 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25062 frvbf_media_overflow (current_cpu
, 8);
25066 UDI opval
= tmp_tmp
;
25067 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
25068 written
|= (1 << 17);
25069 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25076 tmp_tmp
= ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk
), 1)), MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
)));
25077 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
25080 UDI opval
= MAKEDI (255, 0xffffffff);
25081 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 1), opval
);
25082 written
|= (1 << 18);
25083 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25085 frvbf_media_overflow (current_cpu
, 4);
25088 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
25091 UDI opval
= MAKEDI (0, 0);
25092 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 1), opval
);
25093 written
|= (1 << 18);
25094 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25096 frvbf_media_overflow (current_cpu
, 4);
25100 UDI opval
= tmp_tmp
;
25101 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 1), opval
);
25102 written
|= (1 << 18);
25103 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25109 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25110 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25111 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25112 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25116 tmp_tmp
= ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk
), 2)), MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
)));
25117 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
25120 UDI opval
= MAKEDI (255, 0xffffffff);
25121 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 2), opval
);
25122 written
|= (1 << 19);
25123 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25125 frvbf_media_overflow (current_cpu
, 2);
25128 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
25131 UDI opval
= MAKEDI (0, 0);
25132 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 2), opval
);
25133 written
|= (1 << 19);
25134 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25136 frvbf_media_overflow (current_cpu
, 2);
25140 UDI opval
= tmp_tmp
;
25141 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 2), opval
);
25142 written
|= (1 << 19);
25143 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25150 tmp_tmp
= ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk
), 3)), MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
)));
25151 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
25154 UDI opval
= MAKEDI (255, 0xffffffff);
25155 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 3), opval
);
25156 written
|= (1 << 20);
25157 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25159 frvbf_media_overflow (current_cpu
, 1);
25162 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
25165 UDI opval
= MAKEDI (0, 0);
25166 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 3), opval
);
25167 written
|= (1 << 20);
25168 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25170 frvbf_media_overflow (current_cpu
, 1);
25174 UDI opval
= tmp_tmp
;
25175 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 3), opval
);
25176 written
|= (1 << 20);
25177 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25187 abuf
->written
= written
;
25192 /* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
25195 SEM_FN_NAME (frvbf
,cmqmachs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
25197 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25198 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
25199 int UNUSED written
= 0;
25200 IADDR UNUSED pc
= abuf
->addr
;
25201 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
25203 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
25204 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
25205 frvbf_media_acc_not_aligned (current_cpu
);
25207 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
25208 frvbf_media_register_not_aligned (current_cpu
);
25210 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
25217 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25218 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25219 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25220 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25224 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
25225 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25228 DI opval
= MAKEDI (127, 0xffffffff);
25229 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25230 written
|= (1 << 19);
25231 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25233 frvbf_media_overflow (current_cpu
, 8);
25236 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25239 DI opval
= MAKEDI (0xffffff80, 0);
25240 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25241 written
|= (1 << 19);
25242 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25244 frvbf_media_overflow (current_cpu
, 8);
25248 DI opval
= tmp_tmp
;
25249 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25250 written
|= (1 << 19);
25251 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25258 tmp_tmp
= ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk
), 1)), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
25259 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25262 DI opval
= MAKEDI (127, 0xffffffff);
25263 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
25264 written
|= (1 << 20);
25265 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25267 frvbf_media_overflow (current_cpu
, 4);
25270 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25273 DI opval
= MAKEDI (0xffffff80, 0);
25274 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
25275 written
|= (1 << 20);
25276 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25278 frvbf_media_overflow (current_cpu
, 4);
25282 DI opval
= tmp_tmp
;
25283 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
25284 written
|= (1 << 20);
25285 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25291 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25292 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25293 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25294 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25298 tmp_tmp
= ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk
), 2)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
25299 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25302 DI opval
= MAKEDI (127, 0xffffffff);
25303 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
25304 written
|= (1 << 21);
25305 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25307 frvbf_media_overflow (current_cpu
, 2);
25310 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25313 DI opval
= MAKEDI (0xffffff80, 0);
25314 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
25315 written
|= (1 << 21);
25316 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25318 frvbf_media_overflow (current_cpu
, 2);
25322 DI opval
= tmp_tmp
;
25323 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
25324 written
|= (1 << 21);
25325 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25332 tmp_tmp
= ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk
), 3)), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
25333 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25336 DI opval
= MAKEDI (127, 0xffffffff);
25337 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
25338 written
|= (1 << 22);
25339 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25341 frvbf_media_overflow (current_cpu
, 1);
25344 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25347 DI opval
= MAKEDI (0xffffff80, 0);
25348 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
25349 written
|= (1 << 22);
25350 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25352 frvbf_media_overflow (current_cpu
, 1);
25356 DI opval
= tmp_tmp
;
25357 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
25358 written
|= (1 << 22);
25359 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25370 abuf
->written
= written
;
25375 /* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25378 SEM_FN_NAME (frvbf
,cmqmachu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
25380 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25381 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
25382 int UNUSED written
= 0;
25383 IADDR UNUSED pc
= abuf
->addr
;
25384 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
25386 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Uk
))) {
25387 if (ANDSI (FLD (f_ACC40Uk
), SUBSI (4, 1))) {
25388 frvbf_media_acc_not_aligned (current_cpu
);
25390 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
25391 frvbf_media_register_not_aligned (current_cpu
);
25393 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
25400 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25401 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25402 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25403 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25407 tmp_tmp
= ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk
)), MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
)));
25408 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
25411 UDI opval
= MAKEDI (255, 0xffffffff);
25412 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
25413 written
|= (1 << 19);
25414 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25416 frvbf_media_overflow (current_cpu
, 8);
25419 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
25422 UDI opval
= MAKEDI (0, 0);
25423 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
25424 written
|= (1 << 19);
25425 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25427 frvbf_media_overflow (current_cpu
, 8);
25431 UDI opval
= tmp_tmp
;
25432 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
25433 written
|= (1 << 19);
25434 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25441 tmp_tmp
= ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk
), 1)), MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
)));
25442 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
25445 UDI opval
= MAKEDI (255, 0xffffffff);
25446 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 1), opval
);
25447 written
|= (1 << 20);
25448 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25450 frvbf_media_overflow (current_cpu
, 4);
25453 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
25456 UDI opval
= MAKEDI (0, 0);
25457 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 1), opval
);
25458 written
|= (1 << 20);
25459 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25461 frvbf_media_overflow (current_cpu
, 4);
25465 UDI opval
= tmp_tmp
;
25466 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 1), opval
);
25467 written
|= (1 << 20);
25468 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25474 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25475 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25476 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25477 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25481 tmp_tmp
= ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk
), 2)), MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
)));
25482 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
25485 UDI opval
= MAKEDI (255, 0xffffffff);
25486 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 2), opval
);
25487 written
|= (1 << 21);
25488 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25490 frvbf_media_overflow (current_cpu
, 2);
25493 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
25496 UDI opval
= MAKEDI (0, 0);
25497 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 2), opval
);
25498 written
|= (1 << 21);
25499 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25501 frvbf_media_overflow (current_cpu
, 2);
25505 UDI opval
= tmp_tmp
;
25506 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 2), opval
);
25507 written
|= (1 << 21);
25508 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25515 tmp_tmp
= ADDDI (GET_H_ACC40U (ADDSI (FLD (f_ACC40Uk
), 3)), MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
)));
25516 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
25519 UDI opval
= MAKEDI (255, 0xffffffff);
25520 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 3), opval
);
25521 written
|= (1 << 22);
25522 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25524 frvbf_media_overflow (current_cpu
, 1);
25527 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
25530 UDI opval
= MAKEDI (0, 0);
25531 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 3), opval
);
25532 written
|= (1 << 22);
25533 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25535 frvbf_media_overflow (current_cpu
, 1);
25539 UDI opval
= tmp_tmp
;
25540 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ADDSI (FLD (f_ACC40Uk
), 3), opval
);
25541 written
|= (1 << 22);
25542 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25553 abuf
->written
= written
;
25558 /* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25561 SEM_FN_NAME (frvbf
,mqxmachs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
25563 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25564 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
25565 int UNUSED written
= 0;
25566 IADDR UNUSED pc
= abuf
->addr
;
25567 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
25569 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
25570 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
25571 frvbf_media_acc_not_aligned (current_cpu
);
25573 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
25574 frvbf_media_register_not_aligned (current_cpu
);
25582 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25583 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25584 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25585 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25589 tmp_tmp
= ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk
), 2)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
25590 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25593 DI opval
= MAKEDI (127, 0xffffffff);
25594 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
25595 written
|= (1 << 19);
25596 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25598 frvbf_media_overflow (current_cpu
, 2);
25601 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25604 DI opval
= MAKEDI (0xffffff80, 0);
25605 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
25606 written
|= (1 << 19);
25607 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25609 frvbf_media_overflow (current_cpu
, 2);
25613 DI opval
= tmp_tmp
;
25614 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
25615 written
|= (1 << 19);
25616 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25623 tmp_tmp
= ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk
), 3)), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
25624 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25627 DI opval
= MAKEDI (127, 0xffffffff);
25628 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
25629 written
|= (1 << 20);
25630 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25632 frvbf_media_overflow (current_cpu
, 1);
25635 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25638 DI opval
= MAKEDI (0xffffff80, 0);
25639 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
25640 written
|= (1 << 20);
25641 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25643 frvbf_media_overflow (current_cpu
, 1);
25647 DI opval
= tmp_tmp
;
25648 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
25649 written
|= (1 << 20);
25650 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25656 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25657 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25658 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25659 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25663 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
25664 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25667 DI opval
= MAKEDI (127, 0xffffffff);
25668 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25669 written
|= (1 << 17);
25670 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25672 frvbf_media_overflow (current_cpu
, 8);
25675 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25678 DI opval
= MAKEDI (0xffffff80, 0);
25679 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25680 written
|= (1 << 17);
25681 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25683 frvbf_media_overflow (current_cpu
, 8);
25687 DI opval
= tmp_tmp
;
25688 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25689 written
|= (1 << 17);
25690 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25697 tmp_tmp
= ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk
), 1)), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
25698 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25701 DI opval
= MAKEDI (127, 0xffffffff);
25702 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
25703 written
|= (1 << 18);
25704 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25706 frvbf_media_overflow (current_cpu
, 4);
25709 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25712 DI opval
= MAKEDI (0xffffff80, 0);
25713 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
25714 written
|= (1 << 18);
25715 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25717 frvbf_media_overflow (current_cpu
, 4);
25721 DI opval
= tmp_tmp
;
25722 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
25723 written
|= (1 << 18);
25724 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25734 abuf
->written
= written
;
25739 /* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25742 SEM_FN_NAME (frvbf
,mqxmacxhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
25744 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25745 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
25746 int UNUSED written
= 0;
25747 IADDR UNUSED pc
= abuf
->addr
;
25748 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
25750 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
25751 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
25752 frvbf_media_acc_not_aligned (current_cpu
);
25754 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
25755 frvbf_media_register_not_aligned (current_cpu
);
25763 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25764 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25765 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25766 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25770 tmp_tmp
= ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk
), 2)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
)));
25771 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25774 DI opval
= MAKEDI (127, 0xffffffff);
25775 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
25776 written
|= (1 << 19);
25777 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25779 frvbf_media_overflow (current_cpu
, 2);
25782 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25785 DI opval
= MAKEDI (0xffffff80, 0);
25786 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
25787 written
|= (1 << 19);
25788 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25790 frvbf_media_overflow (current_cpu
, 2);
25794 DI opval
= tmp_tmp
;
25795 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
25796 written
|= (1 << 19);
25797 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25804 tmp_tmp
= ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk
), 3)), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
)));
25805 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25808 DI opval
= MAKEDI (127, 0xffffffff);
25809 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
25810 written
|= (1 << 20);
25811 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25813 frvbf_media_overflow (current_cpu
, 1);
25816 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25819 DI opval
= MAKEDI (0xffffff80, 0);
25820 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
25821 written
|= (1 << 20);
25822 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25824 frvbf_media_overflow (current_cpu
, 1);
25828 DI opval
= tmp_tmp
;
25829 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
25830 written
|= (1 << 20);
25831 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25837 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25838 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25839 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25840 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25844 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
)));
25845 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25848 DI opval
= MAKEDI (127, 0xffffffff);
25849 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25850 written
|= (1 << 17);
25851 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25853 frvbf_media_overflow (current_cpu
, 8);
25856 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25859 DI opval
= MAKEDI (0xffffff80, 0);
25860 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25861 written
|= (1 << 17);
25862 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25864 frvbf_media_overflow (current_cpu
, 8);
25868 DI opval
= tmp_tmp
;
25869 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25870 written
|= (1 << 17);
25871 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25878 tmp_tmp
= ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk
), 1)), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
)));
25879 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25882 DI opval
= MAKEDI (127, 0xffffffff);
25883 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
25884 written
|= (1 << 18);
25885 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25887 frvbf_media_overflow (current_cpu
, 4);
25890 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25893 DI opval
= MAKEDI (0xffffff80, 0);
25894 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
25895 written
|= (1 << 18);
25896 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25898 frvbf_media_overflow (current_cpu
, 4);
25902 DI opval
= tmp_tmp
;
25903 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
25904 written
|= (1 << 18);
25905 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25915 abuf
->written
= written
;
25920 /* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25923 SEM_FN_NAME (frvbf
,mqmacxhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
25925 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25926 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
25927 int UNUSED written
= 0;
25928 IADDR UNUSED pc
= abuf
->addr
;
25929 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
25931 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
25932 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
25933 frvbf_media_acc_not_aligned (current_cpu
);
25935 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
25936 frvbf_media_register_not_aligned (current_cpu
);
25944 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25945 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25946 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25947 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25951 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
)));
25952 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25955 DI opval
= MAKEDI (127, 0xffffffff);
25956 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25957 written
|= (1 << 17);
25958 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25960 frvbf_media_overflow (current_cpu
, 8);
25963 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25966 DI opval
= MAKEDI (0xffffff80, 0);
25967 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25968 written
|= (1 << 17);
25969 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25971 frvbf_media_overflow (current_cpu
, 8);
25975 DI opval
= tmp_tmp
;
25976 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25977 written
|= (1 << 17);
25978 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25985 tmp_tmp
= ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk
), 1)), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
)));
25986 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25989 DI opval
= MAKEDI (127, 0xffffffff);
25990 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
25991 written
|= (1 << 18);
25992 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25994 frvbf_media_overflow (current_cpu
, 4);
25997 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
26000 DI opval
= MAKEDI (0xffffff80, 0);
26001 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
26002 written
|= (1 << 18);
26003 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26005 frvbf_media_overflow (current_cpu
, 4);
26009 DI opval
= tmp_tmp
;
26010 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
26011 written
|= (1 << 18);
26012 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26018 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26019 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26020 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26021 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26025 tmp_tmp
= ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk
), 2)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
)));
26026 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
26029 DI opval
= MAKEDI (127, 0xffffffff);
26030 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
26031 written
|= (1 << 19);
26032 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26034 frvbf_media_overflow (current_cpu
, 2);
26037 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
26040 DI opval
= MAKEDI (0xffffff80, 0);
26041 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
26042 written
|= (1 << 19);
26043 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26045 frvbf_media_overflow (current_cpu
, 2);
26049 DI opval
= tmp_tmp
;
26050 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 2), opval
);
26051 written
|= (1 << 19);
26052 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26059 tmp_tmp
= ADDDI (GET_H_ACC40S (ADDSI (FLD (f_ACC40Sk
), 3)), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
)));
26060 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
26063 DI opval
= MAKEDI (127, 0xffffffff);
26064 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
26065 written
|= (1 << 20);
26066 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26068 frvbf_media_overflow (current_cpu
, 1);
26071 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
26074 DI opval
= MAKEDI (0xffffff80, 0);
26075 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
26076 written
|= (1 << 20);
26077 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26079 frvbf_media_overflow (current_cpu
, 1);
26083 DI opval
= tmp_tmp
;
26084 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 3), opval
);
26085 written
|= (1 << 20);
26086 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26096 abuf
->written
= written
;
26101 /* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
26104 SEM_FN_NAME (frvbf
,mcpxrs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26106 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26107 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26108 int UNUSED written
= 0;
26109 IADDR UNUSED pc
= abuf
->addr
;
26110 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26112 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26119 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26120 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26121 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26122 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26127 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
26128 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
26129 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26130 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26133 DI opval
= MAKEDI (127, 0xffffffff);
26134 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26135 written
|= (1 << 9);
26136 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26138 frvbf_media_overflow (current_cpu
, 8);
26141 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26144 DI opval
= MAKEDI (0xffffff80, 0);
26145 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26146 written
|= (1 << 9);
26147 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26149 frvbf_media_overflow (current_cpu
, 8);
26153 DI opval
= tmp_tmp1
;
26154 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26155 written
|= (1 << 9);
26156 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26164 abuf
->written
= written
;
26169 /* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
26172 SEM_FN_NAME (frvbf
,mcpxru
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26174 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26175 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26176 int UNUSED written
= 0;
26177 IADDR UNUSED pc
= abuf
->addr
;
26178 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26180 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26187 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26188 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26189 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26190 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26195 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
26196 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
26197 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26198 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
26201 DI opval
= MAKEDI (255, 0xffffffff);
26202 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26203 written
|= (1 << 9);
26204 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26206 frvbf_media_overflow (current_cpu
, 8);
26209 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
26212 DI opval
= MAKEDI (0, 0);
26213 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26214 written
|= (1 << 9);
26215 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26217 frvbf_media_overflow (current_cpu
, 8);
26221 DI opval
= tmp_tmp1
;
26222 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26223 written
|= (1 << 9);
26224 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26232 abuf
->written
= written
;
26237 /* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
26240 SEM_FN_NAME (frvbf
,mcpxis
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26242 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26243 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26244 int UNUSED written
= 0;
26245 IADDR UNUSED pc
= abuf
->addr
;
26246 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26248 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26255 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26256 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26257 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26258 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26263 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
));
26264 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
));
26265 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
26266 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26269 DI opval
= MAKEDI (127, 0xffffffff);
26270 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26271 written
|= (1 << 9);
26272 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26274 frvbf_media_overflow (current_cpu
, 8);
26277 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26280 DI opval
= MAKEDI (0xffffff80, 0);
26281 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26282 written
|= (1 << 9);
26283 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26285 frvbf_media_overflow (current_cpu
, 8);
26289 DI opval
= tmp_tmp1
;
26290 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26291 written
|= (1 << 9);
26292 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26300 abuf
->written
= written
;
26305 /* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
26308 SEM_FN_NAME (frvbf
,mcpxiu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26310 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26311 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26312 int UNUSED written
= 0;
26313 IADDR UNUSED pc
= abuf
->addr
;
26314 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26316 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26323 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26324 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26325 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26326 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26331 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjlo
));
26332 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjhi
));
26333 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
26334 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
26337 DI opval
= MAKEDI (255, 0xffffffff);
26338 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26339 written
|= (1 << 9);
26340 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26342 frvbf_media_overflow (current_cpu
, 8);
26345 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
26348 DI opval
= MAKEDI (0, 0);
26349 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26350 written
|= (1 << 9);
26351 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26353 frvbf_media_overflow (current_cpu
, 8);
26357 DI opval
= tmp_tmp1
;
26358 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26359 written
|= (1 << 9);
26360 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26368 abuf
->written
= written
;
26373 /* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26376 SEM_FN_NAME (frvbf
,cmcpxrs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26378 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26379 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26380 int UNUSED written
= 0;
26381 IADDR UNUSED pc
= abuf
->addr
;
26382 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26384 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
26385 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26392 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26393 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26394 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26395 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26400 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
26401 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
26402 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26403 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26406 DI opval
= MAKEDI (127, 0xffffffff);
26407 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26408 written
|= (1 << 11);
26409 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26411 frvbf_media_overflow (current_cpu
, 8);
26414 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26417 DI opval
= MAKEDI (0xffffff80, 0);
26418 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26419 written
|= (1 << 11);
26420 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26422 frvbf_media_overflow (current_cpu
, 8);
26426 DI opval
= tmp_tmp1
;
26427 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26428 written
|= (1 << 11);
26429 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26438 abuf
->written
= written
;
26443 /* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26446 SEM_FN_NAME (frvbf
,cmcpxru
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26448 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26449 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26450 int UNUSED written
= 0;
26451 IADDR UNUSED pc
= abuf
->addr
;
26452 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26454 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
26455 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26462 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26463 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26464 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26465 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26470 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
26471 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
26472 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26473 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
26476 DI opval
= MAKEDI (255, 0xffffffff);
26477 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26478 written
|= (1 << 11);
26479 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26481 frvbf_media_overflow (current_cpu
, 8);
26484 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
26487 DI opval
= MAKEDI (0, 0);
26488 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26489 written
|= (1 << 11);
26490 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26492 frvbf_media_overflow (current_cpu
, 8);
26496 DI opval
= tmp_tmp1
;
26497 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26498 written
|= (1 << 11);
26499 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26508 abuf
->written
= written
;
26513 /* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26516 SEM_FN_NAME (frvbf
,cmcpxis
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26518 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26519 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26520 int UNUSED written
= 0;
26521 IADDR UNUSED pc
= abuf
->addr
;
26522 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26524 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
26525 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26532 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26533 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26534 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26535 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26540 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
));
26541 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
));
26542 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
26543 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26546 DI opval
= MAKEDI (127, 0xffffffff);
26547 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26548 written
|= (1 << 11);
26549 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26551 frvbf_media_overflow (current_cpu
, 8);
26554 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26557 DI opval
= MAKEDI (0xffffff80, 0);
26558 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26559 written
|= (1 << 11);
26560 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26562 frvbf_media_overflow (current_cpu
, 8);
26566 DI opval
= tmp_tmp1
;
26567 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26568 written
|= (1 << 11);
26569 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26578 abuf
->written
= written
;
26583 /* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26586 SEM_FN_NAME (frvbf
,cmcpxiu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26588 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26589 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26590 int UNUSED written
= 0;
26591 IADDR UNUSED pc
= abuf
->addr
;
26592 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26594 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
26595 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26602 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26603 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26604 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26605 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26610 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjlo
));
26611 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjhi
));
26612 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
26613 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
26616 DI opval
= MAKEDI (255, 0xffffffff);
26617 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26618 written
|= (1 << 11);
26619 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26621 frvbf_media_overflow (current_cpu
, 8);
26624 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
26627 DI opval
= MAKEDI (0, 0);
26628 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26629 written
|= (1 << 11);
26630 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26632 frvbf_media_overflow (current_cpu
, 8);
26636 DI opval
= tmp_tmp1
;
26637 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26638 written
|= (1 << 11);
26639 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26648 abuf
->written
= written
;
26653 /* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26656 SEM_FN_NAME (frvbf
,mqcpxrs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26658 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26659 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26660 int UNUSED written
= 0;
26661 IADDR UNUSED pc
= abuf
->addr
;
26662 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26664 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26665 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
26666 frvbf_media_acc_not_aligned (current_cpu
);
26668 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
26669 frvbf_media_register_not_aligned (current_cpu
);
26677 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26678 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26679 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26680 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26685 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
26686 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
26687 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26688 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26691 DI opval
= MAKEDI (127, 0xffffffff);
26692 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26693 written
|= (1 << 13);
26694 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26696 frvbf_media_overflow (current_cpu
, 8);
26699 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26702 DI opval
= MAKEDI (0xffffff80, 0);
26703 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26704 written
|= (1 << 13);
26705 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26707 frvbf_media_overflow (current_cpu
, 8);
26711 DI opval
= tmp_tmp1
;
26712 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26713 written
|= (1 << 13);
26714 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26720 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26721 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26722 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26723 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26728 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
26729 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
26730 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26731 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26734 DI opval
= MAKEDI (127, 0xffffffff);
26735 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
26736 written
|= (1 << 14);
26737 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26739 frvbf_media_overflow (current_cpu
, 4);
26742 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26745 DI opval
= MAKEDI (0xffffff80, 0);
26746 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
26747 written
|= (1 << 14);
26748 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26750 frvbf_media_overflow (current_cpu
, 4);
26754 DI opval
= tmp_tmp1
;
26755 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
26756 written
|= (1 << 14);
26757 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26767 abuf
->written
= written
;
26772 /* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26775 SEM_FN_NAME (frvbf
,mqcpxru
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26777 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26778 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26779 int UNUSED written
= 0;
26780 IADDR UNUSED pc
= abuf
->addr
;
26781 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26783 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26784 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
26785 frvbf_media_acc_not_aligned (current_cpu
);
26787 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
26788 frvbf_media_register_not_aligned (current_cpu
);
26796 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26797 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26798 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26799 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26804 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
26805 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
26806 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26807 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
26810 DI opval
= MAKEDI (255, 0xffffffff);
26811 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26812 written
|= (1 << 13);
26813 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26815 frvbf_media_overflow (current_cpu
, 8);
26818 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
26821 DI opval
= MAKEDI (0, 0);
26822 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26823 written
|= (1 << 13);
26824 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26826 frvbf_media_overflow (current_cpu
, 8);
26830 DI opval
= tmp_tmp1
;
26831 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26832 written
|= (1 << 13);
26833 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26839 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26840 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26841 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26842 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26847 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
26848 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
26849 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26850 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
26853 DI opval
= MAKEDI (255, 0xffffffff);
26854 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
26855 written
|= (1 << 14);
26856 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26858 frvbf_media_overflow (current_cpu
, 4);
26861 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
26864 DI opval
= MAKEDI (0, 0);
26865 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
26866 written
|= (1 << 14);
26867 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26869 frvbf_media_overflow (current_cpu
, 4);
26873 DI opval
= tmp_tmp1
;
26874 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
26875 written
|= (1 << 14);
26876 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26886 abuf
->written
= written
;
26891 /* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26894 SEM_FN_NAME (frvbf
,mqcpxis
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26896 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26897 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26898 int UNUSED written
= 0;
26899 IADDR UNUSED pc
= abuf
->addr
;
26900 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26902 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26903 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
26904 frvbf_media_acc_not_aligned (current_cpu
);
26906 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
26907 frvbf_media_register_not_aligned (current_cpu
);
26915 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26916 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26917 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26918 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26923 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
));
26924 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
));
26925 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
26926 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26929 DI opval
= MAKEDI (127, 0xffffffff);
26930 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26931 written
|= (1 << 13);
26932 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26934 frvbf_media_overflow (current_cpu
, 8);
26937 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26940 DI opval
= MAKEDI (0xffffff80, 0);
26941 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26942 written
|= (1 << 13);
26943 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26945 frvbf_media_overflow (current_cpu
, 8);
26949 DI opval
= tmp_tmp1
;
26950 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26951 written
|= (1 << 13);
26952 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26958 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26959 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26960 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26961 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26966 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
));
26967 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
));
26968 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
26969 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26972 DI opval
= MAKEDI (127, 0xffffffff);
26973 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
26974 written
|= (1 << 14);
26975 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26977 frvbf_media_overflow (current_cpu
, 4);
26980 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26983 DI opval
= MAKEDI (0xffffff80, 0);
26984 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
26985 written
|= (1 << 14);
26986 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26988 frvbf_media_overflow (current_cpu
, 4);
26992 DI opval
= tmp_tmp1
;
26993 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
26994 written
|= (1 << 14);
26995 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
27005 abuf
->written
= written
;
27010 /* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
27013 SEM_FN_NAME (frvbf
,mqcpxiu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27015 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
27016 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27017 int UNUSED written
= 0;
27018 IADDR UNUSED pc
= abuf
->addr
;
27019 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27021 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
27022 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
27023 frvbf_media_acc_not_aligned (current_cpu
);
27025 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
27026 frvbf_media_register_not_aligned (current_cpu
);
27034 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
27035 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
27036 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
27037 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
27042 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjlo
));
27043 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjhi
));
27044 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
27045 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
27048 DI opval
= MAKEDI (255, 0xffffffff);
27049 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
27050 written
|= (1 << 13);
27051 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
27053 frvbf_media_overflow (current_cpu
, 8);
27056 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
27059 DI opval
= MAKEDI (0, 0);
27060 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
27061 written
|= (1 << 13);
27062 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
27064 frvbf_media_overflow (current_cpu
, 8);
27068 DI opval
= tmp_tmp1
;
27069 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
27070 written
|= (1 << 13);
27071 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
27077 tmp_argihi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
27078 tmp_argilo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
27079 tmp_argjhi
= ADDHI (GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
27080 tmp_argjlo
= ADDHI (GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1)), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
27085 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjlo
));
27086 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjhi
));
27087 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
27088 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
27091 DI opval
= MAKEDI (255, 0xffffffff);
27092 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
27093 written
|= (1 << 14);
27094 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
27096 frvbf_media_overflow (current_cpu
, 4);
27099 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
27102 DI opval
= MAKEDI (0, 0);
27103 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
27104 written
|= (1 << 14);
27105 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
27107 frvbf_media_overflow (current_cpu
, 4);
27111 DI opval
= tmp_tmp1
;
27112 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ADDSI (FLD (f_ACC40Sk
), 1), opval
);
27113 written
|= (1 << 14);
27114 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
27124 abuf
->written
= written
;
27129 /* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
27132 SEM_FN_NAME (frvbf
,mexpdhw
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27134 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27135 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27136 int UNUSED written
= 0;
27137 IADDR UNUSED pc
= abuf
->addr
;
27138 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27142 if (ANDSI (FLD (f_u6
), 1)) {
27143 tmp_tmp
= GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0));
27145 tmp_tmp
= GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0));
27148 UHI opval
= tmp_tmp
;
27149 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27150 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27153 UHI opval
= tmp_tmp
;
27154 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27155 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27163 /* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
27166 SEM_FN_NAME (frvbf
,cmexpdhw
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27168 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27169 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27170 int UNUSED written
= 0;
27171 IADDR UNUSED pc
= abuf
->addr
;
27172 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27174 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
27177 if (ANDSI (FLD (f_u6
), 1)) {
27178 tmp_tmp
= GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0));
27180 tmp_tmp
= GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0));
27183 UHI opval
= tmp_tmp
;
27184 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27185 written
|= (1 << 7);
27186 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27189 UHI opval
= tmp_tmp
;
27190 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27191 written
|= (1 << 8);
27192 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27197 abuf
->written
= written
;
27202 /* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
27205 SEM_FN_NAME (frvbf
,mexpdhd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27207 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27208 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27209 int UNUSED written
= 0;
27210 IADDR UNUSED pc
= abuf
->addr
;
27211 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27213 if (ANDSI (FLD (f_FRk
), SUBSI (2, 1))) {
27214 frvbf_media_register_not_aligned (current_cpu
);
27219 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27220 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27221 written
|= (1 << 6);
27222 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27224 if (ANDSI (FLD (f_u6
), 1)) {
27225 tmp_tmp
= GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0));
27227 tmp_tmp
= GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0));
27230 UHI opval
= tmp_tmp
;
27231 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27232 written
|= (1 << 7);
27233 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27236 UHI opval
= tmp_tmp
;
27237 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27238 written
|= (1 << 9);
27239 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27242 UHI opval
= tmp_tmp
;
27243 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
27244 written
|= (1 << 8);
27245 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27248 UHI opval
= tmp_tmp
;
27249 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
27250 written
|= (1 << 10);
27251 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27256 abuf
->written
= written
;
27261 /* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
27264 SEM_FN_NAME (frvbf
,cmexpdhd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27266 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27267 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27268 int UNUSED written
= 0;
27269 IADDR UNUSED pc
= abuf
->addr
;
27270 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27272 if (ANDSI (FLD (f_FRk
), SUBSI (2, 1))) {
27273 frvbf_media_register_not_aligned (current_cpu
);
27275 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
27279 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27280 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27281 written
|= (1 << 8);
27282 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27284 if (ANDSI (FLD (f_u6
), 1)) {
27285 tmp_tmp
= GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0));
27287 tmp_tmp
= GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0));
27290 UHI opval
= tmp_tmp
;
27291 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27292 written
|= (1 << 9);
27293 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27296 UHI opval
= tmp_tmp
;
27297 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27298 written
|= (1 << 11);
27299 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27302 UHI opval
= tmp_tmp
;
27303 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
27304 written
|= (1 << 10);
27305 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27308 UHI opval
= tmp_tmp
;
27309 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
27310 written
|= (1 << 12);
27311 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27317 abuf
->written
= written
;
27322 /* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
27325 SEM_FN_NAME (frvbf
,mpackh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27327 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
27328 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27329 int UNUSED written
= 0;
27330 IADDR UNUSED pc
= abuf
->addr
;
27331 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27335 UHI opval
= GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0));
27336 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27337 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27340 UHI opval
= GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0));
27341 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27342 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27350 /* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27353 SEM_FN_NAME (frvbf
,mdpackh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27355 #define FLD(f) abuf->fields.sfmt_mdpackh.f
27356 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27357 int UNUSED written
= 0;
27358 IADDR UNUSED pc
= abuf
->addr
;
27359 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27361 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
27362 frvbf_media_register_not_aligned (current_cpu
);
27366 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
27367 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
27368 written
|= (1 << 10);
27369 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27372 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
27373 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
27374 written
|= (1 << 11);
27375 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27378 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27379 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27380 written
|= (1 << 12);
27381 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27385 UHI opval
= GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0));
27386 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27387 written
|= (1 << 13);
27388 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27391 UHI opval
= GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0));
27392 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27393 written
|= (1 << 15);
27394 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27399 UHI opval
= GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1));
27400 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
27401 written
|= (1 << 14);
27402 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27405 UHI opval
= GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1));
27406 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
27407 written
|= (1 << 16);
27408 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27414 abuf
->written
= written
;
27419 /* munpackh: munpackh$pack $FRinti,$FRintkeven */
27422 SEM_FN_NAME (frvbf
,munpackh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27424 #define FLD(f) abuf->fields.sfmt_munpackh.f
27425 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27426 int UNUSED written
= 0;
27427 IADDR UNUSED pc
= abuf
->addr
;
27428 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27430 if (ANDSI (FLD (f_FRk
), SUBSI (2, 1))) {
27431 frvbf_media_register_not_aligned (current_cpu
);
27435 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
27436 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
27437 written
|= (1 << 6);
27438 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27441 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27442 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27443 written
|= (1 << 7);
27444 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27448 UHI opval
= GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0));
27449 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27450 written
|= (1 << 8);
27451 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27454 UHI opval
= GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0));
27455 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27456 written
|= (1 << 10);
27457 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27460 UHI opval
= GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0));
27461 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), ADDSI (0, 1)), opval
);
27462 written
|= (1 << 9);
27463 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27466 UHI opval
= GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0));
27467 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), ADDSI (0, 1)), opval
);
27468 written
|= (1 << 11);
27469 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27475 abuf
->written
= written
;
27480 /* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27483 SEM_FN_NAME (frvbf
,mdunpackh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27485 #define FLD(f) abuf->fields.sfmt_mdunpackh.f
27486 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27487 int UNUSED written
= 0;
27488 IADDR UNUSED pc
= abuf
->addr
;
27489 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27491 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (4, 1)))) {
27492 frvbf_media_register_not_aligned (current_cpu
);
27496 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
27497 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
27498 written
|= (1 << 8);
27499 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27502 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27503 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27504 written
|= (1 << 9);
27505 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27509 UHI opval
= GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0));
27510 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27511 written
|= (1 << 10);
27512 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27515 UHI opval
= GET_H_FR_HI (ADDSI (FLD (f_FRi
), 0));
27516 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27517 written
|= (1 << 14);
27518 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27521 UHI opval
= GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0));
27522 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), ADDSI (0, 1)), opval
);
27523 written
|= (1 << 12);
27524 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27527 UHI opval
= GET_H_FR_LO (ADDSI (FLD (f_FRi
), 0));
27528 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), ADDSI (0, 1)), opval
);
27529 written
|= (1 << 16);
27530 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27535 UHI opval
= GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1));
27536 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 2), opval
);
27537 written
|= (1 << 11);
27538 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27541 UHI opval
= GET_H_FR_HI (ADDSI (FLD (f_FRi
), 1));
27542 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 2), opval
);
27543 written
|= (1 << 15);
27544 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27547 UHI opval
= GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1));
27548 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), ADDSI (2, 1)), opval
);
27549 written
|= (1 << 13);
27550 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27553 UHI opval
= GET_H_FR_LO (ADDSI (FLD (f_FRi
), 1));
27554 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), ADDSI (2, 1)), opval
);
27555 written
|= (1 << 17);
27556 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27562 abuf
->written
= written
;
27567 /* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27570 SEM_FN_NAME (frvbf
,mbtoh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27572 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27573 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27574 int UNUSED written
= 0;
27575 IADDR UNUSED pc
= abuf
->addr
;
27576 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27580 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
27581 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
27582 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27585 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27586 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27587 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27589 if (ANDSI (FLD (f_FRk
), SUBSI (2, 1))) {
27590 frvbf_media_register_not_aligned (current_cpu
);
27594 UHI opval
= GET_H_FR_3 (ADDSI (FLD (f_FRj
), 0));
27595 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27596 written
|= (1 << 10);
27597 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27600 UHI opval
= GET_H_FR_2 (ADDSI (FLD (f_FRj
), 0));
27601 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27602 written
|= (1 << 12);
27603 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27606 UHI opval
= GET_H_FR_1 (ADDSI (FLD (f_FRj
), 0));
27607 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
27608 written
|= (1 << 11);
27609 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27612 UHI opval
= GET_H_FR_0 (ADDSI (FLD (f_FRj
), 0));
27613 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
27614 written
|= (1 << 13);
27615 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27621 abuf
->written
= written
;
27626 /* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27629 SEM_FN_NAME (frvbf
,cmbtoh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27631 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27632 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27633 int UNUSED written
= 0;
27634 IADDR UNUSED pc
= abuf
->addr
;
27635 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27639 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
27640 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
27641 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27644 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27645 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27646 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27648 if (ANDSI (FLD (f_FRk
), SUBSI (2, 1))) {
27649 frvbf_media_register_not_aligned (current_cpu
);
27651 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
27654 UHI opval
= GET_H_FR_3 (ADDSI (FLD (f_FRj
), 0));
27655 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27656 written
|= (1 << 12);
27657 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27660 UHI opval
= GET_H_FR_2 (ADDSI (FLD (f_FRj
), 0));
27661 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27662 written
|= (1 << 14);
27663 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27666 UHI opval
= GET_H_FR_1 (ADDSI (FLD (f_FRj
), 0));
27667 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
27668 written
|= (1 << 13);
27669 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27672 UHI opval
= GET_H_FR_0 (ADDSI (FLD (f_FRj
), 0));
27673 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
27674 written
|= (1 << 15);
27675 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27682 abuf
->written
= written
;
27687 /* mhtob: mhtob$pack $FRintjeven,$FRintk */
27690 SEM_FN_NAME (frvbf
,mhtob
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27692 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27693 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27694 int UNUSED written
= 0;
27695 IADDR UNUSED pc
= abuf
->addr
;
27696 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27700 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
27701 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
27702 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27705 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27706 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27707 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27709 if (ANDSI (FLD (f_FRj
), SUBSI (2, 1))) {
27710 frvbf_media_register_not_aligned (current_cpu
);
27714 UHI opval
= GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0));
27715 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_3_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27716 written
|= (1 << 13);
27717 TRACE_RESULT (current_cpu
, abuf
, "fr_3", 'x', opval
);
27720 UHI opval
= GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0));
27721 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_2_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27722 written
|= (1 << 12);
27723 TRACE_RESULT (current_cpu
, abuf
, "fr_2", 'x', opval
);
27726 UHI opval
= GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1));
27727 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_1_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27728 written
|= (1 << 11);
27729 TRACE_RESULT (current_cpu
, abuf
, "fr_1", 'x', opval
);
27732 UHI opval
= GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1));
27733 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_0_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27734 written
|= (1 << 10);
27735 TRACE_RESULT (current_cpu
, abuf
, "fr_0", 'x', opval
);
27741 abuf
->written
= written
;
27746 /* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27749 SEM_FN_NAME (frvbf
,cmhtob
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27751 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27752 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27753 int UNUSED written
= 0;
27754 IADDR UNUSED pc
= abuf
->addr
;
27755 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27759 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
27760 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
27761 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27764 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27765 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27766 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27768 if (ANDSI (FLD (f_FRj
), SUBSI (2, 1))) {
27769 frvbf_media_register_not_aligned (current_cpu
);
27771 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
27774 UHI opval
= GET_H_FR_HI (ADDSI (FLD (f_FRj
), 0));
27775 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_3_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27776 written
|= (1 << 15);
27777 TRACE_RESULT (current_cpu
, abuf
, "fr_3", 'x', opval
);
27780 UHI opval
= GET_H_FR_LO (ADDSI (FLD (f_FRj
), 0));
27781 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_2_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27782 written
|= (1 << 14);
27783 TRACE_RESULT (current_cpu
, abuf
, "fr_2", 'x', opval
);
27786 UHI opval
= GET_H_FR_HI (ADDSI (FLD (f_FRj
), 1));
27787 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_1_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27788 written
|= (1 << 13);
27789 TRACE_RESULT (current_cpu
, abuf
, "fr_1", 'x', opval
);
27792 UHI opval
= GET_H_FR_LO (ADDSI (FLD (f_FRj
), 1));
27793 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_0_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27794 written
|= (1 << 12);
27795 TRACE_RESULT (current_cpu
, abuf
, "fr_0", 'x', opval
);
27802 abuf
->written
= written
;
27807 /* mbtohe: mbtohe$pack $FRintj,$FRintk */
27810 SEM_FN_NAME (frvbf
,mbtohe
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27812 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27813 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27814 int UNUSED written
= 0;
27815 IADDR UNUSED pc
= abuf
->addr
;
27816 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27820 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
27821 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
27822 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27825 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27826 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27827 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27829 if (ANDSI (FLD (f_FRk
), SUBSI (4, 1))) {
27830 frvbf_media_register_not_aligned (current_cpu
);
27834 UHI opval
= GET_H_FR_3 (ADDSI (FLD (f_FRj
), 0));
27835 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27836 written
|= (1 << 10);
27837 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27840 UHI opval
= GET_H_FR_3 (ADDSI (FLD (f_FRj
), 0));
27841 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27842 written
|= (1 << 14);
27843 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27846 UHI opval
= GET_H_FR_2 (ADDSI (FLD (f_FRj
), 0));
27847 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
27848 written
|= (1 << 11);
27849 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27852 UHI opval
= GET_H_FR_2 (ADDSI (FLD (f_FRj
), 0));
27853 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
27854 written
|= (1 << 15);
27855 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27858 UHI opval
= GET_H_FR_1 (ADDSI (FLD (f_FRj
), 0));
27859 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 2), opval
);
27860 written
|= (1 << 12);
27861 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27864 UHI opval
= GET_H_FR_1 (ADDSI (FLD (f_FRj
), 0));
27865 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 2), opval
);
27866 written
|= (1 << 16);
27867 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27870 UHI opval
= GET_H_FR_0 (ADDSI (FLD (f_FRj
), 0));
27871 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 3), opval
);
27872 written
|= (1 << 13);
27873 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27876 UHI opval
= GET_H_FR_0 (ADDSI (FLD (f_FRj
), 0));
27877 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 3), opval
);
27878 written
|= (1 << 17);
27879 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27885 abuf
->written
= written
;
27890 /* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27893 SEM_FN_NAME (frvbf
,cmbtohe
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27895 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27896 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27897 int UNUSED written
= 0;
27898 IADDR UNUSED pc
= abuf
->addr
;
27899 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27903 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
27904 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
27905 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27908 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27909 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27910 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27912 if (ANDSI (FLD (f_FRk
), SUBSI (4, 1))) {
27913 frvbf_media_register_not_aligned (current_cpu
);
27915 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
27918 UHI opval
= GET_H_FR_3 (ADDSI (FLD (f_FRj
), 0));
27919 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27920 written
|= (1 << 12);
27921 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27924 UHI opval
= GET_H_FR_3 (ADDSI (FLD (f_FRj
), 0));
27925 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 0), opval
);
27926 written
|= (1 << 16);
27927 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27930 UHI opval
= GET_H_FR_2 (ADDSI (FLD (f_FRj
), 0));
27931 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 1), opval
);
27932 written
|= (1 << 13);
27933 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27936 UHI opval
= GET_H_FR_2 (ADDSI (FLD (f_FRj
), 0));
27937 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 1), opval
);
27938 written
|= (1 << 17);
27939 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27942 UHI opval
= GET_H_FR_1 (ADDSI (FLD (f_FRj
), 0));
27943 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 2), opval
);
27944 written
|= (1 << 14);
27945 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27948 UHI opval
= GET_H_FR_1 (ADDSI (FLD (f_FRj
), 0));
27949 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 2), opval
);
27950 written
|= (1 << 18);
27951 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27954 UHI opval
= GET_H_FR_0 (ADDSI (FLD (f_FRj
), 0));
27955 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ADDSI (FLD (f_FRk
), 3), opval
);
27956 written
|= (1 << 15);
27957 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27960 UHI opval
= GET_H_FR_0 (ADDSI (FLD (f_FRj
), 0));
27961 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ADDSI (FLD (f_FRk
), 3), opval
);
27962 written
|= (1 << 19);
27963 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27970 abuf
->written
= written
;
27975 /* mnop: mnop$pack */
27978 SEM_FN_NAME (frvbf
,mnop
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27980 #define FLD(f) abuf->fields.sfmt_empty.f
27981 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27982 int UNUSED written
= 0;
27983 IADDR UNUSED pc
= abuf
->addr
;
27984 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27986 ((void) 0); /*nop*/
27992 /* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27995 SEM_FN_NAME (frvbf
,mclracc_0
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27997 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27998 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27999 int UNUSED written
= 0;
28000 IADDR UNUSED pc
= abuf
->addr
;
28001 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
28003 frvbf_clear_accumulators (current_cpu
, FLD (f_ACC40Sk
), 0);
28009 /* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
28012 SEM_FN_NAME (frvbf
,mclracc_1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
28014 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
28015 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
28016 int UNUSED written
= 0;
28017 IADDR UNUSED pc
= abuf
->addr
;
28018 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
28020 frvbf_clear_accumulators (current_cpu
, FLD (f_ACC40Sk
), 1);
28026 /* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
28029 SEM_FN_NAME (frvbf
,mrdacc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
28031 #define FLD(f) abuf->fields.sfmt_mcuti.f
28032 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
28033 int UNUSED written
= 0;
28034 IADDR UNUSED pc
= abuf
->addr
;
28035 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
28038 SI opval
= GET_H_ACC40S (FLD (f_ACC40Si
));
28039 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
28040 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
28047 /* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
28050 SEM_FN_NAME (frvbf
,mrdaccg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
28052 #define FLD(f) abuf->fields.sfmt_mrdaccg.f
28053 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
28054 int UNUSED written
= 0;
28055 IADDR UNUSED pc
= abuf
->addr
;
28056 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
28059 SI opval
= GET_H_ACCG (FLD (f_ACCGi
));
28060 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
28061 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
28068 /* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
28071 SEM_FN_NAME (frvbf
,mwtacc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
28073 #define FLD(f) abuf->fields.sfmt_cmmachs.f
28074 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
28075 int UNUSED written
= 0;
28076 IADDR UNUSED pc
= abuf
->addr
;
28077 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
28080 DI opval
= ORDI (ANDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MAKEDI (0xffffffff, 0)), GET_H_FR_INT (FLD (f_FRi
)));
28081 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
28082 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
28089 /* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
28092 SEM_FN_NAME (frvbf
,mwtaccg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
28094 #define FLD(f) abuf->fields.sfmt_mwtaccg.f
28095 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
28096 int UNUSED written
= 0;
28097 IADDR UNUSED pc
= abuf
->addr
;
28098 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
28101 frv_ref_SI (GET_H_ACCG (FLD (f_ACCGk
)));
28103 USI opval
= GET_H_FR_INT (FLD (f_FRi
));
28104 sim_queue_fn_si_write (current_cpu
, frvbf_h_accg_set
, FLD (f_ACCGk
), opval
);
28105 TRACE_RESULT (current_cpu
, abuf
, "accg", 'x', opval
);
28113 /* mcop1: mcop1$pack $FRi,$FRj,$FRk */
28116 SEM_FN_NAME (frvbf
,mcop1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
28118 #define FLD(f) abuf->fields.sfmt_empty.f
28119 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
28120 int UNUSED written
= 0;
28121 IADDR UNUSED pc
= abuf
->addr
;
28122 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
28124 frvbf_media_cop (current_cpu
, 1);
28130 /* mcop2: mcop2$pack $FRi,$FRj,$FRk */
28133 SEM_FN_NAME (frvbf
,mcop2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
28135 #define FLD(f) abuf->fields.sfmt_empty.f
28136 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
28137 int UNUSED written
= 0;
28138 IADDR UNUSED pc
= abuf
->addr
;
28139 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
28141 frvbf_media_cop (current_cpu
, 2);
28147 /* fnop: fnop$pack */
28150 SEM_FN_NAME (frvbf
,fnop
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
28152 #define FLD(f) abuf->fields.sfmt_empty.f
28153 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
28154 int UNUSED written
= 0;
28155 IADDR UNUSED pc
= abuf
->addr
;
28156 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
28158 ((void) 0); /*nop*/
28164 /* Table of all semantic fns. */
28166 static const struct sem_fn_desc sem_fns
[] = {
28167 { FRVBF_INSN_X_INVALID
, SEM_FN_NAME (frvbf
,x_invalid
) },
28168 { FRVBF_INSN_X_AFTER
, SEM_FN_NAME (frvbf
,x_after
) },
28169 { FRVBF_INSN_X_BEFORE
, SEM_FN_NAME (frvbf
,x_before
) },
28170 { FRVBF_INSN_X_CTI_CHAIN
, SEM_FN_NAME (frvbf
,x_cti_chain
) },
28171 { FRVBF_INSN_X_CHAIN
, SEM_FN_NAME (frvbf
,x_chain
) },
28172 { FRVBF_INSN_X_BEGIN
, SEM_FN_NAME (frvbf
,x_begin
) },
28173 { FRVBF_INSN_ADD
, SEM_FN_NAME (frvbf
,add
) },
28174 { FRVBF_INSN_SUB
, SEM_FN_NAME (frvbf
,sub
) },
28175 { FRVBF_INSN_AND
, SEM_FN_NAME (frvbf
,and) },
28176 { FRVBF_INSN_OR
, SEM_FN_NAME (frvbf
,or) },
28177 { FRVBF_INSN_XOR
, SEM_FN_NAME (frvbf
,xor) },
28178 { FRVBF_INSN_NOT
, SEM_FN_NAME (frvbf
,not) },
28179 { FRVBF_INSN_SDIV
, SEM_FN_NAME (frvbf
,sdiv
) },
28180 { FRVBF_INSN_NSDIV
, SEM_FN_NAME (frvbf
,nsdiv
) },
28181 { FRVBF_INSN_UDIV
, SEM_FN_NAME (frvbf
,udiv
) },
28182 { FRVBF_INSN_NUDIV
, SEM_FN_NAME (frvbf
,nudiv
) },
28183 { FRVBF_INSN_SMUL
, SEM_FN_NAME (frvbf
,smul
) },
28184 { FRVBF_INSN_UMUL
, SEM_FN_NAME (frvbf
,umul
) },
28185 { FRVBF_INSN_SMU
, SEM_FN_NAME (frvbf
,smu
) },
28186 { FRVBF_INSN_SMASS
, SEM_FN_NAME (frvbf
,smass
) },
28187 { FRVBF_INSN_SMSSS
, SEM_FN_NAME (frvbf
,smsss
) },
28188 { FRVBF_INSN_SLL
, SEM_FN_NAME (frvbf
,sll
) },
28189 { FRVBF_INSN_SRL
, SEM_FN_NAME (frvbf
,srl
) },
28190 { FRVBF_INSN_SRA
, SEM_FN_NAME (frvbf
,sra
) },
28191 { FRVBF_INSN_SLASS
, SEM_FN_NAME (frvbf
,slass
) },
28192 { FRVBF_INSN_SCUTSS
, SEM_FN_NAME (frvbf
,scutss
) },
28193 { FRVBF_INSN_SCAN
, SEM_FN_NAME (frvbf
,scan
) },
28194 { FRVBF_INSN_CADD
, SEM_FN_NAME (frvbf
,cadd
) },
28195 { FRVBF_INSN_CSUB
, SEM_FN_NAME (frvbf
,csub
) },
28196 { FRVBF_INSN_CAND
, SEM_FN_NAME (frvbf
,cand
) },
28197 { FRVBF_INSN_COR
, SEM_FN_NAME (frvbf
,cor
) },
28198 { FRVBF_INSN_CXOR
, SEM_FN_NAME (frvbf
,cxor
) },
28199 { FRVBF_INSN_CNOT
, SEM_FN_NAME (frvbf
,cnot
) },
28200 { FRVBF_INSN_CSMUL
, SEM_FN_NAME (frvbf
,csmul
) },
28201 { FRVBF_INSN_CSDIV
, SEM_FN_NAME (frvbf
,csdiv
) },
28202 { FRVBF_INSN_CUDIV
, SEM_FN_NAME (frvbf
,cudiv
) },
28203 { FRVBF_INSN_CSLL
, SEM_FN_NAME (frvbf
,csll
) },
28204 { FRVBF_INSN_CSRL
, SEM_FN_NAME (frvbf
,csrl
) },
28205 { FRVBF_INSN_CSRA
, SEM_FN_NAME (frvbf
,csra
) },
28206 { FRVBF_INSN_CSCAN
, SEM_FN_NAME (frvbf
,cscan
) },
28207 { FRVBF_INSN_ADDCC
, SEM_FN_NAME (frvbf
,addcc
) },
28208 { FRVBF_INSN_SUBCC
, SEM_FN_NAME (frvbf
,subcc
) },
28209 { FRVBF_INSN_ANDCC
, SEM_FN_NAME (frvbf
,andcc
) },
28210 { FRVBF_INSN_ORCC
, SEM_FN_NAME (frvbf
,orcc
) },
28211 { FRVBF_INSN_XORCC
, SEM_FN_NAME (frvbf
,xorcc
) },
28212 { FRVBF_INSN_SLLCC
, SEM_FN_NAME (frvbf
,sllcc
) },
28213 { FRVBF_INSN_SRLCC
, SEM_FN_NAME (frvbf
,srlcc
) },
28214 { FRVBF_INSN_SRACC
, SEM_FN_NAME (frvbf
,sracc
) },
28215 { FRVBF_INSN_SMULCC
, SEM_FN_NAME (frvbf
,smulcc
) },
28216 { FRVBF_INSN_UMULCC
, SEM_FN_NAME (frvbf
,umulcc
) },
28217 { FRVBF_INSN_CADDCC
, SEM_FN_NAME (frvbf
,caddcc
) },
28218 { FRVBF_INSN_CSUBCC
, SEM_FN_NAME (frvbf
,csubcc
) },
28219 { FRVBF_INSN_CSMULCC
, SEM_FN_NAME (frvbf
,csmulcc
) },
28220 { FRVBF_INSN_CANDCC
, SEM_FN_NAME (frvbf
,candcc
) },
28221 { FRVBF_INSN_CORCC
, SEM_FN_NAME (frvbf
,corcc
) },
28222 { FRVBF_INSN_CXORCC
, SEM_FN_NAME (frvbf
,cxorcc
) },
28223 { FRVBF_INSN_CSLLCC
, SEM_FN_NAME (frvbf
,csllcc
) },
28224 { FRVBF_INSN_CSRLCC
, SEM_FN_NAME (frvbf
,csrlcc
) },
28225 { FRVBF_INSN_CSRACC
, SEM_FN_NAME (frvbf
,csracc
) },
28226 { FRVBF_INSN_ADDX
, SEM_FN_NAME (frvbf
,addx
) },
28227 { FRVBF_INSN_SUBX
, SEM_FN_NAME (frvbf
,subx
) },
28228 { FRVBF_INSN_ADDXCC
, SEM_FN_NAME (frvbf
,addxcc
) },
28229 { FRVBF_INSN_SUBXCC
, SEM_FN_NAME (frvbf
,subxcc
) },
28230 { FRVBF_INSN_ADDSS
, SEM_FN_NAME (frvbf
,addss
) },
28231 { FRVBF_INSN_SUBSS
, SEM_FN_NAME (frvbf
,subss
) },
28232 { FRVBF_INSN_ADDI
, SEM_FN_NAME (frvbf
,addi
) },
28233 { FRVBF_INSN_SUBI
, SEM_FN_NAME (frvbf
,subi
) },
28234 { FRVBF_INSN_ANDI
, SEM_FN_NAME (frvbf
,andi
) },
28235 { FRVBF_INSN_ORI
, SEM_FN_NAME (frvbf
,ori
) },
28236 { FRVBF_INSN_XORI
, SEM_FN_NAME (frvbf
,xori
) },
28237 { FRVBF_INSN_SDIVI
, SEM_FN_NAME (frvbf
,sdivi
) },
28238 { FRVBF_INSN_NSDIVI
, SEM_FN_NAME (frvbf
,nsdivi
) },
28239 { FRVBF_INSN_UDIVI
, SEM_FN_NAME (frvbf
,udivi
) },
28240 { FRVBF_INSN_NUDIVI
, SEM_FN_NAME (frvbf
,nudivi
) },
28241 { FRVBF_INSN_SMULI
, SEM_FN_NAME (frvbf
,smuli
) },
28242 { FRVBF_INSN_UMULI
, SEM_FN_NAME (frvbf
,umuli
) },
28243 { FRVBF_INSN_SLLI
, SEM_FN_NAME (frvbf
,slli
) },
28244 { FRVBF_INSN_SRLI
, SEM_FN_NAME (frvbf
,srli
) },
28245 { FRVBF_INSN_SRAI
, SEM_FN_NAME (frvbf
,srai
) },
28246 { FRVBF_INSN_SCANI
, SEM_FN_NAME (frvbf
,scani
) },
28247 { FRVBF_INSN_ADDICC
, SEM_FN_NAME (frvbf
,addicc
) },
28248 { FRVBF_INSN_SUBICC
, SEM_FN_NAME (frvbf
,subicc
) },
28249 { FRVBF_INSN_ANDICC
, SEM_FN_NAME (frvbf
,andicc
) },
28250 { FRVBF_INSN_ORICC
, SEM_FN_NAME (frvbf
,oricc
) },
28251 { FRVBF_INSN_XORICC
, SEM_FN_NAME (frvbf
,xoricc
) },
28252 { FRVBF_INSN_SMULICC
, SEM_FN_NAME (frvbf
,smulicc
) },
28253 { FRVBF_INSN_UMULICC
, SEM_FN_NAME (frvbf
,umulicc
) },
28254 { FRVBF_INSN_SLLICC
, SEM_FN_NAME (frvbf
,sllicc
) },
28255 { FRVBF_INSN_SRLICC
, SEM_FN_NAME (frvbf
,srlicc
) },
28256 { FRVBF_INSN_SRAICC
, SEM_FN_NAME (frvbf
,sraicc
) },
28257 { FRVBF_INSN_ADDXI
, SEM_FN_NAME (frvbf
,addxi
) },
28258 { FRVBF_INSN_SUBXI
, SEM_FN_NAME (frvbf
,subxi
) },
28259 { FRVBF_INSN_ADDXICC
, SEM_FN_NAME (frvbf
,addxicc
) },
28260 { FRVBF_INSN_SUBXICC
, SEM_FN_NAME (frvbf
,subxicc
) },
28261 { FRVBF_INSN_CMPB
, SEM_FN_NAME (frvbf
,cmpb
) },
28262 { FRVBF_INSN_CMPBA
, SEM_FN_NAME (frvbf
,cmpba
) },
28263 { FRVBF_INSN_SETLO
, SEM_FN_NAME (frvbf
,setlo
) },
28264 { FRVBF_INSN_SETHI
, SEM_FN_NAME (frvbf
,sethi
) },
28265 { FRVBF_INSN_SETLOS
, SEM_FN_NAME (frvbf
,setlos
) },
28266 { FRVBF_INSN_LDSB
, SEM_FN_NAME (frvbf
,ldsb
) },
28267 { FRVBF_INSN_LDUB
, SEM_FN_NAME (frvbf
,ldub
) },
28268 { FRVBF_INSN_LDSH
, SEM_FN_NAME (frvbf
,ldsh
) },
28269 { FRVBF_INSN_LDUH
, SEM_FN_NAME (frvbf
,lduh
) },
28270 { FRVBF_INSN_LD
, SEM_FN_NAME (frvbf
,ld
) },
28271 { FRVBF_INSN_LDBF
, SEM_FN_NAME (frvbf
,ldbf
) },
28272 { FRVBF_INSN_LDHF
, SEM_FN_NAME (frvbf
,ldhf
) },
28273 { FRVBF_INSN_LDF
, SEM_FN_NAME (frvbf
,ldf
) },
28274 { FRVBF_INSN_LDC
, SEM_FN_NAME (frvbf
,ldc
) },
28275 { FRVBF_INSN_NLDSB
, SEM_FN_NAME (frvbf
,nldsb
) },
28276 { FRVBF_INSN_NLDUB
, SEM_FN_NAME (frvbf
,nldub
) },
28277 { FRVBF_INSN_NLDSH
, SEM_FN_NAME (frvbf
,nldsh
) },
28278 { FRVBF_INSN_NLDUH
, SEM_FN_NAME (frvbf
,nlduh
) },
28279 { FRVBF_INSN_NLD
, SEM_FN_NAME (frvbf
,nld
) },
28280 { FRVBF_INSN_NLDBF
, SEM_FN_NAME (frvbf
,nldbf
) },
28281 { FRVBF_INSN_NLDHF
, SEM_FN_NAME (frvbf
,nldhf
) },
28282 { FRVBF_INSN_NLDF
, SEM_FN_NAME (frvbf
,nldf
) },
28283 { FRVBF_INSN_LDD
, SEM_FN_NAME (frvbf
,ldd
) },
28284 { FRVBF_INSN_LDDF
, SEM_FN_NAME (frvbf
,lddf
) },
28285 { FRVBF_INSN_LDDC
, SEM_FN_NAME (frvbf
,lddc
) },
28286 { FRVBF_INSN_NLDD
, SEM_FN_NAME (frvbf
,nldd
) },
28287 { FRVBF_INSN_NLDDF
, SEM_FN_NAME (frvbf
,nlddf
) },
28288 { FRVBF_INSN_LDQ
, SEM_FN_NAME (frvbf
,ldq
) },
28289 { FRVBF_INSN_LDQF
, SEM_FN_NAME (frvbf
,ldqf
) },
28290 { FRVBF_INSN_LDQC
, SEM_FN_NAME (frvbf
,ldqc
) },
28291 { FRVBF_INSN_NLDQ
, SEM_FN_NAME (frvbf
,nldq
) },
28292 { FRVBF_INSN_NLDQF
, SEM_FN_NAME (frvbf
,nldqf
) },
28293 { FRVBF_INSN_LDSBU
, SEM_FN_NAME (frvbf
,ldsbu
) },
28294 { FRVBF_INSN_LDUBU
, SEM_FN_NAME (frvbf
,ldubu
) },
28295 { FRVBF_INSN_LDSHU
, SEM_FN_NAME (frvbf
,ldshu
) },
28296 { FRVBF_INSN_LDUHU
, SEM_FN_NAME (frvbf
,lduhu
) },
28297 { FRVBF_INSN_LDU
, SEM_FN_NAME (frvbf
,ldu
) },
28298 { FRVBF_INSN_NLDSBU
, SEM_FN_NAME (frvbf
,nldsbu
) },
28299 { FRVBF_INSN_NLDUBU
, SEM_FN_NAME (frvbf
,nldubu
) },
28300 { FRVBF_INSN_NLDSHU
, SEM_FN_NAME (frvbf
,nldshu
) },
28301 { FRVBF_INSN_NLDUHU
, SEM_FN_NAME (frvbf
,nlduhu
) },
28302 { FRVBF_INSN_NLDU
, SEM_FN_NAME (frvbf
,nldu
) },
28303 { FRVBF_INSN_LDBFU
, SEM_FN_NAME (frvbf
,ldbfu
) },
28304 { FRVBF_INSN_LDHFU
, SEM_FN_NAME (frvbf
,ldhfu
) },
28305 { FRVBF_INSN_LDFU
, SEM_FN_NAME (frvbf
,ldfu
) },
28306 { FRVBF_INSN_LDCU
, SEM_FN_NAME (frvbf
,ldcu
) },
28307 { FRVBF_INSN_NLDBFU
, SEM_FN_NAME (frvbf
,nldbfu
) },
28308 { FRVBF_INSN_NLDHFU
, SEM_FN_NAME (frvbf
,nldhfu
) },
28309 { FRVBF_INSN_NLDFU
, SEM_FN_NAME (frvbf
,nldfu
) },
28310 { FRVBF_INSN_LDDU
, SEM_FN_NAME (frvbf
,lddu
) },
28311 { FRVBF_INSN_NLDDU
, SEM_FN_NAME (frvbf
,nlddu
) },
28312 { FRVBF_INSN_LDDFU
, SEM_FN_NAME (frvbf
,lddfu
) },
28313 { FRVBF_INSN_LDDCU
, SEM_FN_NAME (frvbf
,lddcu
) },
28314 { FRVBF_INSN_NLDDFU
, SEM_FN_NAME (frvbf
,nlddfu
) },
28315 { FRVBF_INSN_LDQU
, SEM_FN_NAME (frvbf
,ldqu
) },
28316 { FRVBF_INSN_NLDQU
, SEM_FN_NAME (frvbf
,nldqu
) },
28317 { FRVBF_INSN_LDQFU
, SEM_FN_NAME (frvbf
,ldqfu
) },
28318 { FRVBF_INSN_LDQCU
, SEM_FN_NAME (frvbf
,ldqcu
) },
28319 { FRVBF_INSN_NLDQFU
, SEM_FN_NAME (frvbf
,nldqfu
) },
28320 { FRVBF_INSN_LDSBI
, SEM_FN_NAME (frvbf
,ldsbi
) },
28321 { FRVBF_INSN_LDSHI
, SEM_FN_NAME (frvbf
,ldshi
) },
28322 { FRVBF_INSN_LDI
, SEM_FN_NAME (frvbf
,ldi
) },
28323 { FRVBF_INSN_LDUBI
, SEM_FN_NAME (frvbf
,ldubi
) },
28324 { FRVBF_INSN_LDUHI
, SEM_FN_NAME (frvbf
,lduhi
) },
28325 { FRVBF_INSN_LDBFI
, SEM_FN_NAME (frvbf
,ldbfi
) },
28326 { FRVBF_INSN_LDHFI
, SEM_FN_NAME (frvbf
,ldhfi
) },
28327 { FRVBF_INSN_LDFI
, SEM_FN_NAME (frvbf
,ldfi
) },
28328 { FRVBF_INSN_NLDSBI
, SEM_FN_NAME (frvbf
,nldsbi
) },
28329 { FRVBF_INSN_NLDUBI
, SEM_FN_NAME (frvbf
,nldubi
) },
28330 { FRVBF_INSN_NLDSHI
, SEM_FN_NAME (frvbf
,nldshi
) },
28331 { FRVBF_INSN_NLDUHI
, SEM_FN_NAME (frvbf
,nlduhi
) },
28332 { FRVBF_INSN_NLDI
, SEM_FN_NAME (frvbf
,nldi
) },
28333 { FRVBF_INSN_NLDBFI
, SEM_FN_NAME (frvbf
,nldbfi
) },
28334 { FRVBF_INSN_NLDHFI
, SEM_FN_NAME (frvbf
,nldhfi
) },
28335 { FRVBF_INSN_NLDFI
, SEM_FN_NAME (frvbf
,nldfi
) },
28336 { FRVBF_INSN_LDDI
, SEM_FN_NAME (frvbf
,lddi
) },
28337 { FRVBF_INSN_LDDFI
, SEM_FN_NAME (frvbf
,lddfi
) },
28338 { FRVBF_INSN_NLDDI
, SEM_FN_NAME (frvbf
,nlddi
) },
28339 { FRVBF_INSN_NLDDFI
, SEM_FN_NAME (frvbf
,nlddfi
) },
28340 { FRVBF_INSN_LDQI
, SEM_FN_NAME (frvbf
,ldqi
) },
28341 { FRVBF_INSN_LDQFI
, SEM_FN_NAME (frvbf
,ldqfi
) },
28342 { FRVBF_INSN_NLDQFI
, SEM_FN_NAME (frvbf
,nldqfi
) },
28343 { FRVBF_INSN_STB
, SEM_FN_NAME (frvbf
,stb
) },
28344 { FRVBF_INSN_STH
, SEM_FN_NAME (frvbf
,sth
) },
28345 { FRVBF_INSN_ST
, SEM_FN_NAME (frvbf
,st
) },
28346 { FRVBF_INSN_STBF
, SEM_FN_NAME (frvbf
,stbf
) },
28347 { FRVBF_INSN_STHF
, SEM_FN_NAME (frvbf
,sthf
) },
28348 { FRVBF_INSN_STF
, SEM_FN_NAME (frvbf
,stf
) },
28349 { FRVBF_INSN_STC
, SEM_FN_NAME (frvbf
,stc
) },
28350 { FRVBF_INSN_STD
, SEM_FN_NAME (frvbf
,std
) },
28351 { FRVBF_INSN_STDF
, SEM_FN_NAME (frvbf
,stdf
) },
28352 { FRVBF_INSN_STDC
, SEM_FN_NAME (frvbf
,stdc
) },
28353 { FRVBF_INSN_STQ
, SEM_FN_NAME (frvbf
,stq
) },
28354 { FRVBF_INSN_STQF
, SEM_FN_NAME (frvbf
,stqf
) },
28355 { FRVBF_INSN_STQC
, SEM_FN_NAME (frvbf
,stqc
) },
28356 { FRVBF_INSN_STBU
, SEM_FN_NAME (frvbf
,stbu
) },
28357 { FRVBF_INSN_STHU
, SEM_FN_NAME (frvbf
,sthu
) },
28358 { FRVBF_INSN_STU
, SEM_FN_NAME (frvbf
,stu
) },
28359 { FRVBF_INSN_STBFU
, SEM_FN_NAME (frvbf
,stbfu
) },
28360 { FRVBF_INSN_STHFU
, SEM_FN_NAME (frvbf
,sthfu
) },
28361 { FRVBF_INSN_STFU
, SEM_FN_NAME (frvbf
,stfu
) },
28362 { FRVBF_INSN_STCU
, SEM_FN_NAME (frvbf
,stcu
) },
28363 { FRVBF_INSN_STDU
, SEM_FN_NAME (frvbf
,stdu
) },
28364 { FRVBF_INSN_STDFU
, SEM_FN_NAME (frvbf
,stdfu
) },
28365 { FRVBF_INSN_STDCU
, SEM_FN_NAME (frvbf
,stdcu
) },
28366 { FRVBF_INSN_STQU
, SEM_FN_NAME (frvbf
,stqu
) },
28367 { FRVBF_INSN_STQFU
, SEM_FN_NAME (frvbf
,stqfu
) },
28368 { FRVBF_INSN_STQCU
, SEM_FN_NAME (frvbf
,stqcu
) },
28369 { FRVBF_INSN_CLDSB
, SEM_FN_NAME (frvbf
,cldsb
) },
28370 { FRVBF_INSN_CLDUB
, SEM_FN_NAME (frvbf
,cldub
) },
28371 { FRVBF_INSN_CLDSH
, SEM_FN_NAME (frvbf
,cldsh
) },
28372 { FRVBF_INSN_CLDUH
, SEM_FN_NAME (frvbf
,clduh
) },
28373 { FRVBF_INSN_CLD
, SEM_FN_NAME (frvbf
,cld
) },
28374 { FRVBF_INSN_CLDBF
, SEM_FN_NAME (frvbf
,cldbf
) },
28375 { FRVBF_INSN_CLDHF
, SEM_FN_NAME (frvbf
,cldhf
) },
28376 { FRVBF_INSN_CLDF
, SEM_FN_NAME (frvbf
,cldf
) },
28377 { FRVBF_INSN_CLDD
, SEM_FN_NAME (frvbf
,cldd
) },
28378 { FRVBF_INSN_CLDDF
, SEM_FN_NAME (frvbf
,clddf
) },
28379 { FRVBF_INSN_CLDQ
, SEM_FN_NAME (frvbf
,cldq
) },
28380 { FRVBF_INSN_CLDSBU
, SEM_FN_NAME (frvbf
,cldsbu
) },
28381 { FRVBF_INSN_CLDUBU
, SEM_FN_NAME (frvbf
,cldubu
) },
28382 { FRVBF_INSN_CLDSHU
, SEM_FN_NAME (frvbf
,cldshu
) },
28383 { FRVBF_INSN_CLDUHU
, SEM_FN_NAME (frvbf
,clduhu
) },
28384 { FRVBF_INSN_CLDU
, SEM_FN_NAME (frvbf
,cldu
) },
28385 { FRVBF_INSN_CLDBFU
, SEM_FN_NAME (frvbf
,cldbfu
) },
28386 { FRVBF_INSN_CLDHFU
, SEM_FN_NAME (frvbf
,cldhfu
) },
28387 { FRVBF_INSN_CLDFU
, SEM_FN_NAME (frvbf
,cldfu
) },
28388 { FRVBF_INSN_CLDDU
, SEM_FN_NAME (frvbf
,clddu
) },
28389 { FRVBF_INSN_CLDDFU
, SEM_FN_NAME (frvbf
,clddfu
) },
28390 { FRVBF_INSN_CLDQU
, SEM_FN_NAME (frvbf
,cldqu
) },
28391 { FRVBF_INSN_CSTB
, SEM_FN_NAME (frvbf
,cstb
) },
28392 { FRVBF_INSN_CSTH
, SEM_FN_NAME (frvbf
,csth
) },
28393 { FRVBF_INSN_CST
, SEM_FN_NAME (frvbf
,cst
) },
28394 { FRVBF_INSN_CSTBF
, SEM_FN_NAME (frvbf
,cstbf
) },
28395 { FRVBF_INSN_CSTHF
, SEM_FN_NAME (frvbf
,csthf
) },
28396 { FRVBF_INSN_CSTF
, SEM_FN_NAME (frvbf
,cstf
) },
28397 { FRVBF_INSN_CSTD
, SEM_FN_NAME (frvbf
,cstd
) },
28398 { FRVBF_INSN_CSTDF
, SEM_FN_NAME (frvbf
,cstdf
) },
28399 { FRVBF_INSN_CSTQ
, SEM_FN_NAME (frvbf
,cstq
) },
28400 { FRVBF_INSN_CSTBU
, SEM_FN_NAME (frvbf
,cstbu
) },
28401 { FRVBF_INSN_CSTHU
, SEM_FN_NAME (frvbf
,csthu
) },
28402 { FRVBF_INSN_CSTU
, SEM_FN_NAME (frvbf
,cstu
) },
28403 { FRVBF_INSN_CSTBFU
, SEM_FN_NAME (frvbf
,cstbfu
) },
28404 { FRVBF_INSN_CSTHFU
, SEM_FN_NAME (frvbf
,csthfu
) },
28405 { FRVBF_INSN_CSTFU
, SEM_FN_NAME (frvbf
,cstfu
) },
28406 { FRVBF_INSN_CSTDU
, SEM_FN_NAME (frvbf
,cstdu
) },
28407 { FRVBF_INSN_CSTDFU
, SEM_FN_NAME (frvbf
,cstdfu
) },
28408 { FRVBF_INSN_STBI
, SEM_FN_NAME (frvbf
,stbi
) },
28409 { FRVBF_INSN_STHI
, SEM_FN_NAME (frvbf
,sthi
) },
28410 { FRVBF_INSN_STI
, SEM_FN_NAME (frvbf
,sti
) },
28411 { FRVBF_INSN_STBFI
, SEM_FN_NAME (frvbf
,stbfi
) },
28412 { FRVBF_INSN_STHFI
, SEM_FN_NAME (frvbf
,sthfi
) },
28413 { FRVBF_INSN_STFI
, SEM_FN_NAME (frvbf
,stfi
) },
28414 { FRVBF_INSN_STDI
, SEM_FN_NAME (frvbf
,stdi
) },
28415 { FRVBF_INSN_STDFI
, SEM_FN_NAME (frvbf
,stdfi
) },
28416 { FRVBF_INSN_STQI
, SEM_FN_NAME (frvbf
,stqi
) },
28417 { FRVBF_INSN_STQFI
, SEM_FN_NAME (frvbf
,stqfi
) },
28418 { FRVBF_INSN_SWAP
, SEM_FN_NAME (frvbf
,swap
) },
28419 { FRVBF_INSN_SWAPI
, SEM_FN_NAME (frvbf
,swapi
) },
28420 { FRVBF_INSN_CSWAP
, SEM_FN_NAME (frvbf
,cswap
) },
28421 { FRVBF_INSN_MOVGF
, SEM_FN_NAME (frvbf
,movgf
) },
28422 { FRVBF_INSN_MOVFG
, SEM_FN_NAME (frvbf
,movfg
) },
28423 { FRVBF_INSN_MOVGFD
, SEM_FN_NAME (frvbf
,movgfd
) },
28424 { FRVBF_INSN_MOVFGD
, SEM_FN_NAME (frvbf
,movfgd
) },
28425 { FRVBF_INSN_MOVGFQ
, SEM_FN_NAME (frvbf
,movgfq
) },
28426 { FRVBF_INSN_MOVFGQ
, SEM_FN_NAME (frvbf
,movfgq
) },
28427 { FRVBF_INSN_CMOVGF
, SEM_FN_NAME (frvbf
,cmovgf
) },
28428 { FRVBF_INSN_CMOVFG
, SEM_FN_NAME (frvbf
,cmovfg
) },
28429 { FRVBF_INSN_CMOVGFD
, SEM_FN_NAME (frvbf
,cmovgfd
) },
28430 { FRVBF_INSN_CMOVFGD
, SEM_FN_NAME (frvbf
,cmovfgd
) },
28431 { FRVBF_INSN_MOVGS
, SEM_FN_NAME (frvbf
,movgs
) },
28432 { FRVBF_INSN_MOVSG
, SEM_FN_NAME (frvbf
,movsg
) },
28433 { FRVBF_INSN_BRA
, SEM_FN_NAME (frvbf
,bra
) },
28434 { FRVBF_INSN_BNO
, SEM_FN_NAME (frvbf
,bno
) },
28435 { FRVBF_INSN_BEQ
, SEM_FN_NAME (frvbf
,beq
) },
28436 { FRVBF_INSN_BNE
, SEM_FN_NAME (frvbf
,bne
) },
28437 { FRVBF_INSN_BLE
, SEM_FN_NAME (frvbf
,ble
) },
28438 { FRVBF_INSN_BGT
, SEM_FN_NAME (frvbf
,bgt
) },
28439 { FRVBF_INSN_BLT
, SEM_FN_NAME (frvbf
,blt
) },
28440 { FRVBF_INSN_BGE
, SEM_FN_NAME (frvbf
,bge
) },
28441 { FRVBF_INSN_BLS
, SEM_FN_NAME (frvbf
,bls
) },
28442 { FRVBF_INSN_BHI
, SEM_FN_NAME (frvbf
,bhi
) },
28443 { FRVBF_INSN_BC
, SEM_FN_NAME (frvbf
,bc
) },
28444 { FRVBF_INSN_BNC
, SEM_FN_NAME (frvbf
,bnc
) },
28445 { FRVBF_INSN_BN
, SEM_FN_NAME (frvbf
,bn
) },
28446 { FRVBF_INSN_BP
, SEM_FN_NAME (frvbf
,bp
) },
28447 { FRVBF_INSN_BV
, SEM_FN_NAME (frvbf
,bv
) },
28448 { FRVBF_INSN_BNV
, SEM_FN_NAME (frvbf
,bnv
) },
28449 { FRVBF_INSN_FBRA
, SEM_FN_NAME (frvbf
,fbra
) },
28450 { FRVBF_INSN_FBNO
, SEM_FN_NAME (frvbf
,fbno
) },
28451 { FRVBF_INSN_FBNE
, SEM_FN_NAME (frvbf
,fbne
) },
28452 { FRVBF_INSN_FBEQ
, SEM_FN_NAME (frvbf
,fbeq
) },
28453 { FRVBF_INSN_FBLG
, SEM_FN_NAME (frvbf
,fblg
) },
28454 { FRVBF_INSN_FBUE
, SEM_FN_NAME (frvbf
,fbue
) },
28455 { FRVBF_INSN_FBUL
, SEM_FN_NAME (frvbf
,fbul
) },
28456 { FRVBF_INSN_FBGE
, SEM_FN_NAME (frvbf
,fbge
) },
28457 { FRVBF_INSN_FBLT
, SEM_FN_NAME (frvbf
,fblt
) },
28458 { FRVBF_INSN_FBUGE
, SEM_FN_NAME (frvbf
,fbuge
) },
28459 { FRVBF_INSN_FBUG
, SEM_FN_NAME (frvbf
,fbug
) },
28460 { FRVBF_INSN_FBLE
, SEM_FN_NAME (frvbf
,fble
) },
28461 { FRVBF_INSN_FBGT
, SEM_FN_NAME (frvbf
,fbgt
) },
28462 { FRVBF_INSN_FBULE
, SEM_FN_NAME (frvbf
,fbule
) },
28463 { FRVBF_INSN_FBU
, SEM_FN_NAME (frvbf
,fbu
) },
28464 { FRVBF_INSN_FBO
, SEM_FN_NAME (frvbf
,fbo
) },
28465 { FRVBF_INSN_BCTRLR
, SEM_FN_NAME (frvbf
,bctrlr
) },
28466 { FRVBF_INSN_BRALR
, SEM_FN_NAME (frvbf
,bralr
) },
28467 { FRVBF_INSN_BNOLR
, SEM_FN_NAME (frvbf
,bnolr
) },
28468 { FRVBF_INSN_BEQLR
, SEM_FN_NAME (frvbf
,beqlr
) },
28469 { FRVBF_INSN_BNELR
, SEM_FN_NAME (frvbf
,bnelr
) },
28470 { FRVBF_INSN_BLELR
, SEM_FN_NAME (frvbf
,blelr
) },
28471 { FRVBF_INSN_BGTLR
, SEM_FN_NAME (frvbf
,bgtlr
) },
28472 { FRVBF_INSN_BLTLR
, SEM_FN_NAME (frvbf
,bltlr
) },
28473 { FRVBF_INSN_BGELR
, SEM_FN_NAME (frvbf
,bgelr
) },
28474 { FRVBF_INSN_BLSLR
, SEM_FN_NAME (frvbf
,blslr
) },
28475 { FRVBF_INSN_BHILR
, SEM_FN_NAME (frvbf
,bhilr
) },
28476 { FRVBF_INSN_BCLR
, SEM_FN_NAME (frvbf
,bclr
) },
28477 { FRVBF_INSN_BNCLR
, SEM_FN_NAME (frvbf
,bnclr
) },
28478 { FRVBF_INSN_BNLR
, SEM_FN_NAME (frvbf
,bnlr
) },
28479 { FRVBF_INSN_BPLR
, SEM_FN_NAME (frvbf
,bplr
) },
28480 { FRVBF_INSN_BVLR
, SEM_FN_NAME (frvbf
,bvlr
) },
28481 { FRVBF_INSN_BNVLR
, SEM_FN_NAME (frvbf
,bnvlr
) },
28482 { FRVBF_INSN_FBRALR
, SEM_FN_NAME (frvbf
,fbralr
) },
28483 { FRVBF_INSN_FBNOLR
, SEM_FN_NAME (frvbf
,fbnolr
) },
28484 { FRVBF_INSN_FBEQLR
, SEM_FN_NAME (frvbf
,fbeqlr
) },
28485 { FRVBF_INSN_FBNELR
, SEM_FN_NAME (frvbf
,fbnelr
) },
28486 { FRVBF_INSN_FBLGLR
, SEM_FN_NAME (frvbf
,fblglr
) },
28487 { FRVBF_INSN_FBUELR
, SEM_FN_NAME (frvbf
,fbuelr
) },
28488 { FRVBF_INSN_FBULLR
, SEM_FN_NAME (frvbf
,fbullr
) },
28489 { FRVBF_INSN_FBGELR
, SEM_FN_NAME (frvbf
,fbgelr
) },
28490 { FRVBF_INSN_FBLTLR
, SEM_FN_NAME (frvbf
,fbltlr
) },
28491 { FRVBF_INSN_FBUGELR
, SEM_FN_NAME (frvbf
,fbugelr
) },
28492 { FRVBF_INSN_FBUGLR
, SEM_FN_NAME (frvbf
,fbuglr
) },
28493 { FRVBF_INSN_FBLELR
, SEM_FN_NAME (frvbf
,fblelr
) },
28494 { FRVBF_INSN_FBGTLR
, SEM_FN_NAME (frvbf
,fbgtlr
) },
28495 { FRVBF_INSN_FBULELR
, SEM_FN_NAME (frvbf
,fbulelr
) },
28496 { FRVBF_INSN_FBULR
, SEM_FN_NAME (frvbf
,fbulr
) },
28497 { FRVBF_INSN_FBOLR
, SEM_FN_NAME (frvbf
,fbolr
) },
28498 { FRVBF_INSN_BCRALR
, SEM_FN_NAME (frvbf
,bcralr
) },
28499 { FRVBF_INSN_BCNOLR
, SEM_FN_NAME (frvbf
,bcnolr
) },
28500 { FRVBF_INSN_BCEQLR
, SEM_FN_NAME (frvbf
,bceqlr
) },
28501 { FRVBF_INSN_BCNELR
, SEM_FN_NAME (frvbf
,bcnelr
) },
28502 { FRVBF_INSN_BCLELR
, SEM_FN_NAME (frvbf
,bclelr
) },
28503 { FRVBF_INSN_BCGTLR
, SEM_FN_NAME (frvbf
,bcgtlr
) },
28504 { FRVBF_INSN_BCLTLR
, SEM_FN_NAME (frvbf
,bcltlr
) },
28505 { FRVBF_INSN_BCGELR
, SEM_FN_NAME (frvbf
,bcgelr
) },
28506 { FRVBF_INSN_BCLSLR
, SEM_FN_NAME (frvbf
,bclslr
) },
28507 { FRVBF_INSN_BCHILR
, SEM_FN_NAME (frvbf
,bchilr
) },
28508 { FRVBF_INSN_BCCLR
, SEM_FN_NAME (frvbf
,bcclr
) },
28509 { FRVBF_INSN_BCNCLR
, SEM_FN_NAME (frvbf
,bcnclr
) },
28510 { FRVBF_INSN_BCNLR
, SEM_FN_NAME (frvbf
,bcnlr
) },
28511 { FRVBF_INSN_BCPLR
, SEM_FN_NAME (frvbf
,bcplr
) },
28512 { FRVBF_INSN_BCVLR
, SEM_FN_NAME (frvbf
,bcvlr
) },
28513 { FRVBF_INSN_BCNVLR
, SEM_FN_NAME (frvbf
,bcnvlr
) },
28514 { FRVBF_INSN_FCBRALR
, SEM_FN_NAME (frvbf
,fcbralr
) },
28515 { FRVBF_INSN_FCBNOLR
, SEM_FN_NAME (frvbf
,fcbnolr
) },
28516 { FRVBF_INSN_FCBEQLR
, SEM_FN_NAME (frvbf
,fcbeqlr
) },
28517 { FRVBF_INSN_FCBNELR
, SEM_FN_NAME (frvbf
,fcbnelr
) },
28518 { FRVBF_INSN_FCBLGLR
, SEM_FN_NAME (frvbf
,fcblglr
) },
28519 { FRVBF_INSN_FCBUELR
, SEM_FN_NAME (frvbf
,fcbuelr
) },
28520 { FRVBF_INSN_FCBULLR
, SEM_FN_NAME (frvbf
,fcbullr
) },
28521 { FRVBF_INSN_FCBGELR
, SEM_FN_NAME (frvbf
,fcbgelr
) },
28522 { FRVBF_INSN_FCBLTLR
, SEM_FN_NAME (frvbf
,fcbltlr
) },
28523 { FRVBF_INSN_FCBUGELR
, SEM_FN_NAME (frvbf
,fcbugelr
) },
28524 { FRVBF_INSN_FCBUGLR
, SEM_FN_NAME (frvbf
,fcbuglr
) },
28525 { FRVBF_INSN_FCBLELR
, SEM_FN_NAME (frvbf
,fcblelr
) },
28526 { FRVBF_INSN_FCBGTLR
, SEM_FN_NAME (frvbf
,fcbgtlr
) },
28527 { FRVBF_INSN_FCBULELR
, SEM_FN_NAME (frvbf
,fcbulelr
) },
28528 { FRVBF_INSN_FCBULR
, SEM_FN_NAME (frvbf
,fcbulr
) },
28529 { FRVBF_INSN_FCBOLR
, SEM_FN_NAME (frvbf
,fcbolr
) },
28530 { FRVBF_INSN_JMPL
, SEM_FN_NAME (frvbf
,jmpl
) },
28531 { FRVBF_INSN_CALLL
, SEM_FN_NAME (frvbf
,calll
) },
28532 { FRVBF_INSN_JMPIL
, SEM_FN_NAME (frvbf
,jmpil
) },
28533 { FRVBF_INSN_CALLIL
, SEM_FN_NAME (frvbf
,callil
) },
28534 { FRVBF_INSN_CALL
, SEM_FN_NAME (frvbf
,call
) },
28535 { FRVBF_INSN_RETT
, SEM_FN_NAME (frvbf
,rett
) },
28536 { FRVBF_INSN_REI
, SEM_FN_NAME (frvbf
,rei
) },
28537 { FRVBF_INSN_TRA
, SEM_FN_NAME (frvbf
,tra
) },
28538 { FRVBF_INSN_TNO
, SEM_FN_NAME (frvbf
,tno
) },
28539 { FRVBF_INSN_TEQ
, SEM_FN_NAME (frvbf
,teq
) },
28540 { FRVBF_INSN_TNE
, SEM_FN_NAME (frvbf
,tne
) },
28541 { FRVBF_INSN_TLE
, SEM_FN_NAME (frvbf
,tle
) },
28542 { FRVBF_INSN_TGT
, SEM_FN_NAME (frvbf
,tgt
) },
28543 { FRVBF_INSN_TLT
, SEM_FN_NAME (frvbf
,tlt
) },
28544 { FRVBF_INSN_TGE
, SEM_FN_NAME (frvbf
,tge
) },
28545 { FRVBF_INSN_TLS
, SEM_FN_NAME (frvbf
,tls
) },
28546 { FRVBF_INSN_THI
, SEM_FN_NAME (frvbf
,thi
) },
28547 { FRVBF_INSN_TC
, SEM_FN_NAME (frvbf
,tc
) },
28548 { FRVBF_INSN_TNC
, SEM_FN_NAME (frvbf
,tnc
) },
28549 { FRVBF_INSN_TN
, SEM_FN_NAME (frvbf
,tn
) },
28550 { FRVBF_INSN_TP
, SEM_FN_NAME (frvbf
,tp
) },
28551 { FRVBF_INSN_TV
, SEM_FN_NAME (frvbf
,tv
) },
28552 { FRVBF_INSN_TNV
, SEM_FN_NAME (frvbf
,tnv
) },
28553 { FRVBF_INSN_FTRA
, SEM_FN_NAME (frvbf
,ftra
) },
28554 { FRVBF_INSN_FTNO
, SEM_FN_NAME (frvbf
,ftno
) },
28555 { FRVBF_INSN_FTNE
, SEM_FN_NAME (frvbf
,ftne
) },
28556 { FRVBF_INSN_FTEQ
, SEM_FN_NAME (frvbf
,fteq
) },
28557 { FRVBF_INSN_FTLG
, SEM_FN_NAME (frvbf
,ftlg
) },
28558 { FRVBF_INSN_FTUE
, SEM_FN_NAME (frvbf
,ftue
) },
28559 { FRVBF_INSN_FTUL
, SEM_FN_NAME (frvbf
,ftul
) },
28560 { FRVBF_INSN_FTGE
, SEM_FN_NAME (frvbf
,ftge
) },
28561 { FRVBF_INSN_FTLT
, SEM_FN_NAME (frvbf
,ftlt
) },
28562 { FRVBF_INSN_FTUGE
, SEM_FN_NAME (frvbf
,ftuge
) },
28563 { FRVBF_INSN_FTUG
, SEM_FN_NAME (frvbf
,ftug
) },
28564 { FRVBF_INSN_FTLE
, SEM_FN_NAME (frvbf
,ftle
) },
28565 { FRVBF_INSN_FTGT
, SEM_FN_NAME (frvbf
,ftgt
) },
28566 { FRVBF_INSN_FTULE
, SEM_FN_NAME (frvbf
,ftule
) },
28567 { FRVBF_INSN_FTU
, SEM_FN_NAME (frvbf
,ftu
) },
28568 { FRVBF_INSN_FTO
, SEM_FN_NAME (frvbf
,fto
) },
28569 { FRVBF_INSN_TIRA
, SEM_FN_NAME (frvbf
,tira
) },
28570 { FRVBF_INSN_TINO
, SEM_FN_NAME (frvbf
,tino
) },
28571 { FRVBF_INSN_TIEQ
, SEM_FN_NAME (frvbf
,tieq
) },
28572 { FRVBF_INSN_TINE
, SEM_FN_NAME (frvbf
,tine
) },
28573 { FRVBF_INSN_TILE
, SEM_FN_NAME (frvbf
,tile
) },
28574 { FRVBF_INSN_TIGT
, SEM_FN_NAME (frvbf
,tigt
) },
28575 { FRVBF_INSN_TILT
, SEM_FN_NAME (frvbf
,tilt
) },
28576 { FRVBF_INSN_TIGE
, SEM_FN_NAME (frvbf
,tige
) },
28577 { FRVBF_INSN_TILS
, SEM_FN_NAME (frvbf
,tils
) },
28578 { FRVBF_INSN_TIHI
, SEM_FN_NAME (frvbf
,tihi
) },
28579 { FRVBF_INSN_TIC
, SEM_FN_NAME (frvbf
,tic
) },
28580 { FRVBF_INSN_TINC
, SEM_FN_NAME (frvbf
,tinc
) },
28581 { FRVBF_INSN_TIN
, SEM_FN_NAME (frvbf
,tin
) },
28582 { FRVBF_INSN_TIP
, SEM_FN_NAME (frvbf
,tip
) },
28583 { FRVBF_INSN_TIV
, SEM_FN_NAME (frvbf
,tiv
) },
28584 { FRVBF_INSN_TINV
, SEM_FN_NAME (frvbf
,tinv
) },
28585 { FRVBF_INSN_FTIRA
, SEM_FN_NAME (frvbf
,ftira
) },
28586 { FRVBF_INSN_FTINO
, SEM_FN_NAME (frvbf
,ftino
) },
28587 { FRVBF_INSN_FTINE
, SEM_FN_NAME (frvbf
,ftine
) },
28588 { FRVBF_INSN_FTIEQ
, SEM_FN_NAME (frvbf
,ftieq
) },
28589 { FRVBF_INSN_FTILG
, SEM_FN_NAME (frvbf
,ftilg
) },
28590 { FRVBF_INSN_FTIUE
, SEM_FN_NAME (frvbf
,ftiue
) },
28591 { FRVBF_INSN_FTIUL
, SEM_FN_NAME (frvbf
,ftiul
) },
28592 { FRVBF_INSN_FTIGE
, SEM_FN_NAME (frvbf
,ftige
) },
28593 { FRVBF_INSN_FTILT
, SEM_FN_NAME (frvbf
,ftilt
) },
28594 { FRVBF_INSN_FTIUGE
, SEM_FN_NAME (frvbf
,ftiuge
) },
28595 { FRVBF_INSN_FTIUG
, SEM_FN_NAME (frvbf
,ftiug
) },
28596 { FRVBF_INSN_FTILE
, SEM_FN_NAME (frvbf
,ftile
) },
28597 { FRVBF_INSN_FTIGT
, SEM_FN_NAME (frvbf
,ftigt
) },
28598 { FRVBF_INSN_FTIULE
, SEM_FN_NAME (frvbf
,ftiule
) },
28599 { FRVBF_INSN_FTIU
, SEM_FN_NAME (frvbf
,ftiu
) },
28600 { FRVBF_INSN_FTIO
, SEM_FN_NAME (frvbf
,ftio
) },
28601 { FRVBF_INSN_BREAK
, SEM_FN_NAME (frvbf
,break) },
28602 { FRVBF_INSN_MTRAP
, SEM_FN_NAME (frvbf
,mtrap
) },
28603 { FRVBF_INSN_ANDCR
, SEM_FN_NAME (frvbf
,andcr
) },
28604 { FRVBF_INSN_ORCR
, SEM_FN_NAME (frvbf
,orcr
) },
28605 { FRVBF_INSN_XORCR
, SEM_FN_NAME (frvbf
,xorcr
) },
28606 { FRVBF_INSN_NANDCR
, SEM_FN_NAME (frvbf
,nandcr
) },
28607 { FRVBF_INSN_NORCR
, SEM_FN_NAME (frvbf
,norcr
) },
28608 { FRVBF_INSN_ANDNCR
, SEM_FN_NAME (frvbf
,andncr
) },
28609 { FRVBF_INSN_ORNCR
, SEM_FN_NAME (frvbf
,orncr
) },
28610 { FRVBF_INSN_NANDNCR
, SEM_FN_NAME (frvbf
,nandncr
) },
28611 { FRVBF_INSN_NORNCR
, SEM_FN_NAME (frvbf
,norncr
) },
28612 { FRVBF_INSN_NOTCR
, SEM_FN_NAME (frvbf
,notcr
) },
28613 { FRVBF_INSN_CKRA
, SEM_FN_NAME (frvbf
,ckra
) },
28614 { FRVBF_INSN_CKNO
, SEM_FN_NAME (frvbf
,ckno
) },
28615 { FRVBF_INSN_CKEQ
, SEM_FN_NAME (frvbf
,ckeq
) },
28616 { FRVBF_INSN_CKNE
, SEM_FN_NAME (frvbf
,ckne
) },
28617 { FRVBF_INSN_CKLE
, SEM_FN_NAME (frvbf
,ckle
) },
28618 { FRVBF_INSN_CKGT
, SEM_FN_NAME (frvbf
,ckgt
) },
28619 { FRVBF_INSN_CKLT
, SEM_FN_NAME (frvbf
,cklt
) },
28620 { FRVBF_INSN_CKGE
, SEM_FN_NAME (frvbf
,ckge
) },
28621 { FRVBF_INSN_CKLS
, SEM_FN_NAME (frvbf
,ckls
) },
28622 { FRVBF_INSN_CKHI
, SEM_FN_NAME (frvbf
,ckhi
) },
28623 { FRVBF_INSN_CKC
, SEM_FN_NAME (frvbf
,ckc
) },
28624 { FRVBF_INSN_CKNC
, SEM_FN_NAME (frvbf
,cknc
) },
28625 { FRVBF_INSN_CKN
, SEM_FN_NAME (frvbf
,ckn
) },
28626 { FRVBF_INSN_CKP
, SEM_FN_NAME (frvbf
,ckp
) },
28627 { FRVBF_INSN_CKV
, SEM_FN_NAME (frvbf
,ckv
) },
28628 { FRVBF_INSN_CKNV
, SEM_FN_NAME (frvbf
,cknv
) },
28629 { FRVBF_INSN_FCKRA
, SEM_FN_NAME (frvbf
,fckra
) },
28630 { FRVBF_INSN_FCKNO
, SEM_FN_NAME (frvbf
,fckno
) },
28631 { FRVBF_INSN_FCKNE
, SEM_FN_NAME (frvbf
,fckne
) },
28632 { FRVBF_INSN_FCKEQ
, SEM_FN_NAME (frvbf
,fckeq
) },
28633 { FRVBF_INSN_FCKLG
, SEM_FN_NAME (frvbf
,fcklg
) },
28634 { FRVBF_INSN_FCKUE
, SEM_FN_NAME (frvbf
,fckue
) },
28635 { FRVBF_INSN_FCKUL
, SEM_FN_NAME (frvbf
,fckul
) },
28636 { FRVBF_INSN_FCKGE
, SEM_FN_NAME (frvbf
,fckge
) },
28637 { FRVBF_INSN_FCKLT
, SEM_FN_NAME (frvbf
,fcklt
) },
28638 { FRVBF_INSN_FCKUGE
, SEM_FN_NAME (frvbf
,fckuge
) },
28639 { FRVBF_INSN_FCKUG
, SEM_FN_NAME (frvbf
,fckug
) },
28640 { FRVBF_INSN_FCKLE
, SEM_FN_NAME (frvbf
,fckle
) },
28641 { FRVBF_INSN_FCKGT
, SEM_FN_NAME (frvbf
,fckgt
) },
28642 { FRVBF_INSN_FCKULE
, SEM_FN_NAME (frvbf
,fckule
) },
28643 { FRVBF_INSN_FCKU
, SEM_FN_NAME (frvbf
,fcku
) },
28644 { FRVBF_INSN_FCKO
, SEM_FN_NAME (frvbf
,fcko
) },
28645 { FRVBF_INSN_CCKRA
, SEM_FN_NAME (frvbf
,cckra
) },
28646 { FRVBF_INSN_CCKNO
, SEM_FN_NAME (frvbf
,cckno
) },
28647 { FRVBF_INSN_CCKEQ
, SEM_FN_NAME (frvbf
,cckeq
) },
28648 { FRVBF_INSN_CCKNE
, SEM_FN_NAME (frvbf
,cckne
) },
28649 { FRVBF_INSN_CCKLE
, SEM_FN_NAME (frvbf
,cckle
) },
28650 { FRVBF_INSN_CCKGT
, SEM_FN_NAME (frvbf
,cckgt
) },
28651 { FRVBF_INSN_CCKLT
, SEM_FN_NAME (frvbf
,ccklt
) },
28652 { FRVBF_INSN_CCKGE
, SEM_FN_NAME (frvbf
,cckge
) },
28653 { FRVBF_INSN_CCKLS
, SEM_FN_NAME (frvbf
,cckls
) },
28654 { FRVBF_INSN_CCKHI
, SEM_FN_NAME (frvbf
,cckhi
) },
28655 { FRVBF_INSN_CCKC
, SEM_FN_NAME (frvbf
,cckc
) },
28656 { FRVBF_INSN_CCKNC
, SEM_FN_NAME (frvbf
,ccknc
) },
28657 { FRVBF_INSN_CCKN
, SEM_FN_NAME (frvbf
,cckn
) },
28658 { FRVBF_INSN_CCKP
, SEM_FN_NAME (frvbf
,cckp
) },
28659 { FRVBF_INSN_CCKV
, SEM_FN_NAME (frvbf
,cckv
) },
28660 { FRVBF_INSN_CCKNV
, SEM_FN_NAME (frvbf
,ccknv
) },
28661 { FRVBF_INSN_CFCKRA
, SEM_FN_NAME (frvbf
,cfckra
) },
28662 { FRVBF_INSN_CFCKNO
, SEM_FN_NAME (frvbf
,cfckno
) },
28663 { FRVBF_INSN_CFCKNE
, SEM_FN_NAME (frvbf
,cfckne
) },
28664 { FRVBF_INSN_CFCKEQ
, SEM_FN_NAME (frvbf
,cfckeq
) },
28665 { FRVBF_INSN_CFCKLG
, SEM_FN_NAME (frvbf
,cfcklg
) },
28666 { FRVBF_INSN_CFCKUE
, SEM_FN_NAME (frvbf
,cfckue
) },
28667 { FRVBF_INSN_CFCKUL
, SEM_FN_NAME (frvbf
,cfckul
) },
28668 { FRVBF_INSN_CFCKGE
, SEM_FN_NAME (frvbf
,cfckge
) },
28669 { FRVBF_INSN_CFCKLT
, SEM_FN_NAME (frvbf
,cfcklt
) },
28670 { FRVBF_INSN_CFCKUGE
, SEM_FN_NAME (frvbf
,cfckuge
) },
28671 { FRVBF_INSN_CFCKUG
, SEM_FN_NAME (frvbf
,cfckug
) },
28672 { FRVBF_INSN_CFCKLE
, SEM_FN_NAME (frvbf
,cfckle
) },
28673 { FRVBF_INSN_CFCKGT
, SEM_FN_NAME (frvbf
,cfckgt
) },
28674 { FRVBF_INSN_CFCKULE
, SEM_FN_NAME (frvbf
,cfckule
) },
28675 { FRVBF_INSN_CFCKU
, SEM_FN_NAME (frvbf
,cfcku
) },
28676 { FRVBF_INSN_CFCKO
, SEM_FN_NAME (frvbf
,cfcko
) },
28677 { FRVBF_INSN_CJMPL
, SEM_FN_NAME (frvbf
,cjmpl
) },
28678 { FRVBF_INSN_CCALLL
, SEM_FN_NAME (frvbf
,ccalll
) },
28679 { FRVBF_INSN_ICI
, SEM_FN_NAME (frvbf
,ici
) },
28680 { FRVBF_INSN_DCI
, SEM_FN_NAME (frvbf
,dci
) },
28681 { FRVBF_INSN_ICEI
, SEM_FN_NAME (frvbf
,icei
) },
28682 { FRVBF_INSN_DCEI
, SEM_FN_NAME (frvbf
,dcei
) },
28683 { FRVBF_INSN_DCF
, SEM_FN_NAME (frvbf
,dcf
) },
28684 { FRVBF_INSN_DCEF
, SEM_FN_NAME (frvbf
,dcef
) },
28685 { FRVBF_INSN_WITLB
, SEM_FN_NAME (frvbf
,witlb
) },
28686 { FRVBF_INSN_WDTLB
, SEM_FN_NAME (frvbf
,wdtlb
) },
28687 { FRVBF_INSN_ITLBI
, SEM_FN_NAME (frvbf
,itlbi
) },
28688 { FRVBF_INSN_DTLBI
, SEM_FN_NAME (frvbf
,dtlbi
) },
28689 { FRVBF_INSN_ICPL
, SEM_FN_NAME (frvbf
,icpl
) },
28690 { FRVBF_INSN_DCPL
, SEM_FN_NAME (frvbf
,dcpl
) },
28691 { FRVBF_INSN_ICUL
, SEM_FN_NAME (frvbf
,icul
) },
28692 { FRVBF_INSN_DCUL
, SEM_FN_NAME (frvbf
,dcul
) },
28693 { FRVBF_INSN_BAR
, SEM_FN_NAME (frvbf
,bar
) },
28694 { FRVBF_INSN_MEMBAR
, SEM_FN_NAME (frvbf
,membar
) },
28695 { FRVBF_INSN_LRAI
, SEM_FN_NAME (frvbf
,lrai
) },
28696 { FRVBF_INSN_LRAD
, SEM_FN_NAME (frvbf
,lrad
) },
28697 { FRVBF_INSN_TLBPR
, SEM_FN_NAME (frvbf
,tlbpr
) },
28698 { FRVBF_INSN_COP1
, SEM_FN_NAME (frvbf
,cop1
) },
28699 { FRVBF_INSN_COP2
, SEM_FN_NAME (frvbf
,cop2
) },
28700 { FRVBF_INSN_CLRGR
, SEM_FN_NAME (frvbf
,clrgr
) },
28701 { FRVBF_INSN_CLRFR
, SEM_FN_NAME (frvbf
,clrfr
) },
28702 { FRVBF_INSN_CLRGA
, SEM_FN_NAME (frvbf
,clrga
) },
28703 { FRVBF_INSN_CLRFA
, SEM_FN_NAME (frvbf
,clrfa
) },
28704 { FRVBF_INSN_COMMITGR
, SEM_FN_NAME (frvbf
,commitgr
) },
28705 { FRVBF_INSN_COMMITFR
, SEM_FN_NAME (frvbf
,commitfr
) },
28706 { FRVBF_INSN_COMMITGA
, SEM_FN_NAME (frvbf
,commitga
) },
28707 { FRVBF_INSN_COMMITFA
, SEM_FN_NAME (frvbf
,commitfa
) },
28708 { FRVBF_INSN_FITOS
, SEM_FN_NAME (frvbf
,fitos
) },
28709 { FRVBF_INSN_FSTOI
, SEM_FN_NAME (frvbf
,fstoi
) },
28710 { FRVBF_INSN_FITOD
, SEM_FN_NAME (frvbf
,fitod
) },
28711 { FRVBF_INSN_FDTOI
, SEM_FN_NAME (frvbf
,fdtoi
) },
28712 { FRVBF_INSN_FDITOS
, SEM_FN_NAME (frvbf
,fditos
) },
28713 { FRVBF_INSN_FDSTOI
, SEM_FN_NAME (frvbf
,fdstoi
) },
28714 { FRVBF_INSN_NFDITOS
, SEM_FN_NAME (frvbf
,nfditos
) },
28715 { FRVBF_INSN_NFDSTOI
, SEM_FN_NAME (frvbf
,nfdstoi
) },
28716 { FRVBF_INSN_CFITOS
, SEM_FN_NAME (frvbf
,cfitos
) },
28717 { FRVBF_INSN_CFSTOI
, SEM_FN_NAME (frvbf
,cfstoi
) },
28718 { FRVBF_INSN_NFITOS
, SEM_FN_NAME (frvbf
,nfitos
) },
28719 { FRVBF_INSN_NFSTOI
, SEM_FN_NAME (frvbf
,nfstoi
) },
28720 { FRVBF_INSN_FMOVS
, SEM_FN_NAME (frvbf
,fmovs
) },
28721 { FRVBF_INSN_FMOVD
, SEM_FN_NAME (frvbf
,fmovd
) },
28722 { FRVBF_INSN_FDMOVS
, SEM_FN_NAME (frvbf
,fdmovs
) },
28723 { FRVBF_INSN_CFMOVS
, SEM_FN_NAME (frvbf
,cfmovs
) },
28724 { FRVBF_INSN_FNEGS
, SEM_FN_NAME (frvbf
,fnegs
) },
28725 { FRVBF_INSN_FNEGD
, SEM_FN_NAME (frvbf
,fnegd
) },
28726 { FRVBF_INSN_FDNEGS
, SEM_FN_NAME (frvbf
,fdnegs
) },
28727 { FRVBF_INSN_CFNEGS
, SEM_FN_NAME (frvbf
,cfnegs
) },
28728 { FRVBF_INSN_FABSS
, SEM_FN_NAME (frvbf
,fabss
) },
28729 { FRVBF_INSN_FABSD
, SEM_FN_NAME (frvbf
,fabsd
) },
28730 { FRVBF_INSN_FDABSS
, SEM_FN_NAME (frvbf
,fdabss
) },
28731 { FRVBF_INSN_CFABSS
, SEM_FN_NAME (frvbf
,cfabss
) },
28732 { FRVBF_INSN_FSQRTS
, SEM_FN_NAME (frvbf
,fsqrts
) },
28733 { FRVBF_INSN_FDSQRTS
, SEM_FN_NAME (frvbf
,fdsqrts
) },
28734 { FRVBF_INSN_NFDSQRTS
, SEM_FN_NAME (frvbf
,nfdsqrts
) },
28735 { FRVBF_INSN_FSQRTD
, SEM_FN_NAME (frvbf
,fsqrtd
) },
28736 { FRVBF_INSN_CFSQRTS
, SEM_FN_NAME (frvbf
,cfsqrts
) },
28737 { FRVBF_INSN_NFSQRTS
, SEM_FN_NAME (frvbf
,nfsqrts
) },
28738 { FRVBF_INSN_FADDS
, SEM_FN_NAME (frvbf
,fadds
) },
28739 { FRVBF_INSN_FSUBS
, SEM_FN_NAME (frvbf
,fsubs
) },
28740 { FRVBF_INSN_FMULS
, SEM_FN_NAME (frvbf
,fmuls
) },
28741 { FRVBF_INSN_FDIVS
, SEM_FN_NAME (frvbf
,fdivs
) },
28742 { FRVBF_INSN_FADDD
, SEM_FN_NAME (frvbf
,faddd
) },
28743 { FRVBF_INSN_FSUBD
, SEM_FN_NAME (frvbf
,fsubd
) },
28744 { FRVBF_INSN_FMULD
, SEM_FN_NAME (frvbf
,fmuld
) },
28745 { FRVBF_INSN_FDIVD
, SEM_FN_NAME (frvbf
,fdivd
) },
28746 { FRVBF_INSN_CFADDS
, SEM_FN_NAME (frvbf
,cfadds
) },
28747 { FRVBF_INSN_CFSUBS
, SEM_FN_NAME (frvbf
,cfsubs
) },
28748 { FRVBF_INSN_CFMULS
, SEM_FN_NAME (frvbf
,cfmuls
) },
28749 { FRVBF_INSN_CFDIVS
, SEM_FN_NAME (frvbf
,cfdivs
) },
28750 { FRVBF_INSN_NFADDS
, SEM_FN_NAME (frvbf
,nfadds
) },
28751 { FRVBF_INSN_NFSUBS
, SEM_FN_NAME (frvbf
,nfsubs
) },
28752 { FRVBF_INSN_NFMULS
, SEM_FN_NAME (frvbf
,nfmuls
) },
28753 { FRVBF_INSN_NFDIVS
, SEM_FN_NAME (frvbf
,nfdivs
) },
28754 { FRVBF_INSN_FCMPS
, SEM_FN_NAME (frvbf
,fcmps
) },
28755 { FRVBF_INSN_FCMPD
, SEM_FN_NAME (frvbf
,fcmpd
) },
28756 { FRVBF_INSN_CFCMPS
, SEM_FN_NAME (frvbf
,cfcmps
) },
28757 { FRVBF_INSN_FDCMPS
, SEM_FN_NAME (frvbf
,fdcmps
) },
28758 { FRVBF_INSN_FMADDS
, SEM_FN_NAME (frvbf
,fmadds
) },
28759 { FRVBF_INSN_FMSUBS
, SEM_FN_NAME (frvbf
,fmsubs
) },
28760 { FRVBF_INSN_FMADDD
, SEM_FN_NAME (frvbf
,fmaddd
) },
28761 { FRVBF_INSN_FMSUBD
, SEM_FN_NAME (frvbf
,fmsubd
) },
28762 { FRVBF_INSN_FDMADDS
, SEM_FN_NAME (frvbf
,fdmadds
) },
28763 { FRVBF_INSN_NFDMADDS
, SEM_FN_NAME (frvbf
,nfdmadds
) },
28764 { FRVBF_INSN_CFMADDS
, SEM_FN_NAME (frvbf
,cfmadds
) },
28765 { FRVBF_INSN_CFMSUBS
, SEM_FN_NAME (frvbf
,cfmsubs
) },
28766 { FRVBF_INSN_NFMADDS
, SEM_FN_NAME (frvbf
,nfmadds
) },
28767 { FRVBF_INSN_NFMSUBS
, SEM_FN_NAME (frvbf
,nfmsubs
) },
28768 { FRVBF_INSN_FMAS
, SEM_FN_NAME (frvbf
,fmas
) },
28769 { FRVBF_INSN_FMSS
, SEM_FN_NAME (frvbf
,fmss
) },
28770 { FRVBF_INSN_FDMAS
, SEM_FN_NAME (frvbf
,fdmas
) },
28771 { FRVBF_INSN_FDMSS
, SEM_FN_NAME (frvbf
,fdmss
) },
28772 { FRVBF_INSN_NFDMAS
, SEM_FN_NAME (frvbf
,nfdmas
) },
28773 { FRVBF_INSN_NFDMSS
, SEM_FN_NAME (frvbf
,nfdmss
) },
28774 { FRVBF_INSN_CFMAS
, SEM_FN_NAME (frvbf
,cfmas
) },
28775 { FRVBF_INSN_CFMSS
, SEM_FN_NAME (frvbf
,cfmss
) },
28776 { FRVBF_INSN_FMAD
, SEM_FN_NAME (frvbf
,fmad
) },
28777 { FRVBF_INSN_FMSD
, SEM_FN_NAME (frvbf
,fmsd
) },
28778 { FRVBF_INSN_NFMAS
, SEM_FN_NAME (frvbf
,nfmas
) },
28779 { FRVBF_INSN_NFMSS
, SEM_FN_NAME (frvbf
,nfmss
) },
28780 { FRVBF_INSN_FDADDS
, SEM_FN_NAME (frvbf
,fdadds
) },
28781 { FRVBF_INSN_FDSUBS
, SEM_FN_NAME (frvbf
,fdsubs
) },
28782 { FRVBF_INSN_FDMULS
, SEM_FN_NAME (frvbf
,fdmuls
) },
28783 { FRVBF_INSN_FDDIVS
, SEM_FN_NAME (frvbf
,fddivs
) },
28784 { FRVBF_INSN_FDSADS
, SEM_FN_NAME (frvbf
,fdsads
) },
28785 { FRVBF_INSN_FDMULCS
, SEM_FN_NAME (frvbf
,fdmulcs
) },
28786 { FRVBF_INSN_NFDMULCS
, SEM_FN_NAME (frvbf
,nfdmulcs
) },
28787 { FRVBF_INSN_NFDADDS
, SEM_FN_NAME (frvbf
,nfdadds
) },
28788 { FRVBF_INSN_NFDSUBS
, SEM_FN_NAME (frvbf
,nfdsubs
) },
28789 { FRVBF_INSN_NFDMULS
, SEM_FN_NAME (frvbf
,nfdmuls
) },
28790 { FRVBF_INSN_NFDDIVS
, SEM_FN_NAME (frvbf
,nfddivs
) },
28791 { FRVBF_INSN_NFDSADS
, SEM_FN_NAME (frvbf
,nfdsads
) },
28792 { FRVBF_INSN_NFDCMPS
, SEM_FN_NAME (frvbf
,nfdcmps
) },
28793 { FRVBF_INSN_MHSETLOS
, SEM_FN_NAME (frvbf
,mhsetlos
) },
28794 { FRVBF_INSN_MHSETHIS
, SEM_FN_NAME (frvbf
,mhsethis
) },
28795 { FRVBF_INSN_MHDSETS
, SEM_FN_NAME (frvbf
,mhdsets
) },
28796 { FRVBF_INSN_MHSETLOH
, SEM_FN_NAME (frvbf
,mhsetloh
) },
28797 { FRVBF_INSN_MHSETHIH
, SEM_FN_NAME (frvbf
,mhsethih
) },
28798 { FRVBF_INSN_MHDSETH
, SEM_FN_NAME (frvbf
,mhdseth
) },
28799 { FRVBF_INSN_MAND
, SEM_FN_NAME (frvbf
,mand
) },
28800 { FRVBF_INSN_MOR
, SEM_FN_NAME (frvbf
,mor
) },
28801 { FRVBF_INSN_MXOR
, SEM_FN_NAME (frvbf
,mxor
) },
28802 { FRVBF_INSN_CMAND
, SEM_FN_NAME (frvbf
,cmand
) },
28803 { FRVBF_INSN_CMOR
, SEM_FN_NAME (frvbf
,cmor
) },
28804 { FRVBF_INSN_CMXOR
, SEM_FN_NAME (frvbf
,cmxor
) },
28805 { FRVBF_INSN_MNOT
, SEM_FN_NAME (frvbf
,mnot
) },
28806 { FRVBF_INSN_CMNOT
, SEM_FN_NAME (frvbf
,cmnot
) },
28807 { FRVBF_INSN_MROTLI
, SEM_FN_NAME (frvbf
,mrotli
) },
28808 { FRVBF_INSN_MROTRI
, SEM_FN_NAME (frvbf
,mrotri
) },
28809 { FRVBF_INSN_MWCUT
, SEM_FN_NAME (frvbf
,mwcut
) },
28810 { FRVBF_INSN_MWCUTI
, SEM_FN_NAME (frvbf
,mwcuti
) },
28811 { FRVBF_INSN_MCUT
, SEM_FN_NAME (frvbf
,mcut
) },
28812 { FRVBF_INSN_MCUTI
, SEM_FN_NAME (frvbf
,mcuti
) },
28813 { FRVBF_INSN_MCUTSS
, SEM_FN_NAME (frvbf
,mcutss
) },
28814 { FRVBF_INSN_MCUTSSI
, SEM_FN_NAME (frvbf
,mcutssi
) },
28815 { FRVBF_INSN_MDCUTSSI
, SEM_FN_NAME (frvbf
,mdcutssi
) },
28816 { FRVBF_INSN_MAVEH
, SEM_FN_NAME (frvbf
,maveh
) },
28817 { FRVBF_INSN_MSLLHI
, SEM_FN_NAME (frvbf
,msllhi
) },
28818 { FRVBF_INSN_MSRLHI
, SEM_FN_NAME (frvbf
,msrlhi
) },
28819 { FRVBF_INSN_MSRAHI
, SEM_FN_NAME (frvbf
,msrahi
) },
28820 { FRVBF_INSN_MDROTLI
, SEM_FN_NAME (frvbf
,mdrotli
) },
28821 { FRVBF_INSN_MCPLHI
, SEM_FN_NAME (frvbf
,mcplhi
) },
28822 { FRVBF_INSN_MCPLI
, SEM_FN_NAME (frvbf
,mcpli
) },
28823 { FRVBF_INSN_MSATHS
, SEM_FN_NAME (frvbf
,msaths
) },
28824 { FRVBF_INSN_MQSATHS
, SEM_FN_NAME (frvbf
,mqsaths
) },
28825 { FRVBF_INSN_MSATHU
, SEM_FN_NAME (frvbf
,msathu
) },
28826 { FRVBF_INSN_MCMPSH
, SEM_FN_NAME (frvbf
,mcmpsh
) },
28827 { FRVBF_INSN_MCMPUH
, SEM_FN_NAME (frvbf
,mcmpuh
) },
28828 { FRVBF_INSN_MABSHS
, SEM_FN_NAME (frvbf
,mabshs
) },
28829 { FRVBF_INSN_MADDHSS
, SEM_FN_NAME (frvbf
,maddhss
) },
28830 { FRVBF_INSN_MADDHUS
, SEM_FN_NAME (frvbf
,maddhus
) },
28831 { FRVBF_INSN_MSUBHSS
, SEM_FN_NAME (frvbf
,msubhss
) },
28832 { FRVBF_INSN_MSUBHUS
, SEM_FN_NAME (frvbf
,msubhus
) },
28833 { FRVBF_INSN_CMADDHSS
, SEM_FN_NAME (frvbf
,cmaddhss
) },
28834 { FRVBF_INSN_CMADDHUS
, SEM_FN_NAME (frvbf
,cmaddhus
) },
28835 { FRVBF_INSN_CMSUBHSS
, SEM_FN_NAME (frvbf
,cmsubhss
) },
28836 { FRVBF_INSN_CMSUBHUS
, SEM_FN_NAME (frvbf
,cmsubhus
) },
28837 { FRVBF_INSN_MQADDHSS
, SEM_FN_NAME (frvbf
,mqaddhss
) },
28838 { FRVBF_INSN_MQADDHUS
, SEM_FN_NAME (frvbf
,mqaddhus
) },
28839 { FRVBF_INSN_MQSUBHSS
, SEM_FN_NAME (frvbf
,mqsubhss
) },
28840 { FRVBF_INSN_MQSUBHUS
, SEM_FN_NAME (frvbf
,mqsubhus
) },
28841 { FRVBF_INSN_CMQADDHSS
, SEM_FN_NAME (frvbf
,cmqaddhss
) },
28842 { FRVBF_INSN_CMQADDHUS
, SEM_FN_NAME (frvbf
,cmqaddhus
) },
28843 { FRVBF_INSN_CMQSUBHSS
, SEM_FN_NAME (frvbf
,cmqsubhss
) },
28844 { FRVBF_INSN_CMQSUBHUS
, SEM_FN_NAME (frvbf
,cmqsubhus
) },
28845 { FRVBF_INSN_MQLCLRHS
, SEM_FN_NAME (frvbf
,mqlclrhs
) },
28846 { FRVBF_INSN_MQLMTHS
, SEM_FN_NAME (frvbf
,mqlmths
) },
28847 { FRVBF_INSN_MQSLLHI
, SEM_FN_NAME (frvbf
,mqsllhi
) },
28848 { FRVBF_INSN_MQSRAHI
, SEM_FN_NAME (frvbf
,mqsrahi
) },
28849 { FRVBF_INSN_MADDACCS
, SEM_FN_NAME (frvbf
,maddaccs
) },
28850 { FRVBF_INSN_MSUBACCS
, SEM_FN_NAME (frvbf
,msubaccs
) },
28851 { FRVBF_INSN_MDADDACCS
, SEM_FN_NAME (frvbf
,mdaddaccs
) },
28852 { FRVBF_INSN_MDSUBACCS
, SEM_FN_NAME (frvbf
,mdsubaccs
) },
28853 { FRVBF_INSN_MASACCS
, SEM_FN_NAME (frvbf
,masaccs
) },
28854 { FRVBF_INSN_MDASACCS
, SEM_FN_NAME (frvbf
,mdasaccs
) },
28855 { FRVBF_INSN_MMULHS
, SEM_FN_NAME (frvbf
,mmulhs
) },
28856 { FRVBF_INSN_MMULHU
, SEM_FN_NAME (frvbf
,mmulhu
) },
28857 { FRVBF_INSN_MMULXHS
, SEM_FN_NAME (frvbf
,mmulxhs
) },
28858 { FRVBF_INSN_MMULXHU
, SEM_FN_NAME (frvbf
,mmulxhu
) },
28859 { FRVBF_INSN_CMMULHS
, SEM_FN_NAME (frvbf
,cmmulhs
) },
28860 { FRVBF_INSN_CMMULHU
, SEM_FN_NAME (frvbf
,cmmulhu
) },
28861 { FRVBF_INSN_MQMULHS
, SEM_FN_NAME (frvbf
,mqmulhs
) },
28862 { FRVBF_INSN_MQMULHU
, SEM_FN_NAME (frvbf
,mqmulhu
) },
28863 { FRVBF_INSN_MQMULXHS
, SEM_FN_NAME (frvbf
,mqmulxhs
) },
28864 { FRVBF_INSN_MQMULXHU
, SEM_FN_NAME (frvbf
,mqmulxhu
) },
28865 { FRVBF_INSN_CMQMULHS
, SEM_FN_NAME (frvbf
,cmqmulhs
) },
28866 { FRVBF_INSN_CMQMULHU
, SEM_FN_NAME (frvbf
,cmqmulhu
) },
28867 { FRVBF_INSN_MMACHS
, SEM_FN_NAME (frvbf
,mmachs
) },
28868 { FRVBF_INSN_MMACHU
, SEM_FN_NAME (frvbf
,mmachu
) },
28869 { FRVBF_INSN_MMRDHS
, SEM_FN_NAME (frvbf
,mmrdhs
) },
28870 { FRVBF_INSN_MMRDHU
, SEM_FN_NAME (frvbf
,mmrdhu
) },
28871 { FRVBF_INSN_CMMACHS
, SEM_FN_NAME (frvbf
,cmmachs
) },
28872 { FRVBF_INSN_CMMACHU
, SEM_FN_NAME (frvbf
,cmmachu
) },
28873 { FRVBF_INSN_MQMACHS
, SEM_FN_NAME (frvbf
,mqmachs
) },
28874 { FRVBF_INSN_MQMACHU
, SEM_FN_NAME (frvbf
,mqmachu
) },
28875 { FRVBF_INSN_CMQMACHS
, SEM_FN_NAME (frvbf
,cmqmachs
) },
28876 { FRVBF_INSN_CMQMACHU
, SEM_FN_NAME (frvbf
,cmqmachu
) },
28877 { FRVBF_INSN_MQXMACHS
, SEM_FN_NAME (frvbf
,mqxmachs
) },
28878 { FRVBF_INSN_MQXMACXHS
, SEM_FN_NAME (frvbf
,mqxmacxhs
) },
28879 { FRVBF_INSN_MQMACXHS
, SEM_FN_NAME (frvbf
,mqmacxhs
) },
28880 { FRVBF_INSN_MCPXRS
, SEM_FN_NAME (frvbf
,mcpxrs
) },
28881 { FRVBF_INSN_MCPXRU
, SEM_FN_NAME (frvbf
,mcpxru
) },
28882 { FRVBF_INSN_MCPXIS
, SEM_FN_NAME (frvbf
,mcpxis
) },
28883 { FRVBF_INSN_MCPXIU
, SEM_FN_NAME (frvbf
,mcpxiu
) },
28884 { FRVBF_INSN_CMCPXRS
, SEM_FN_NAME (frvbf
,cmcpxrs
) },
28885 { FRVBF_INSN_CMCPXRU
, SEM_FN_NAME (frvbf
,cmcpxru
) },
28886 { FRVBF_INSN_CMCPXIS
, SEM_FN_NAME (frvbf
,cmcpxis
) },
28887 { FRVBF_INSN_CMCPXIU
, SEM_FN_NAME (frvbf
,cmcpxiu
) },
28888 { FRVBF_INSN_MQCPXRS
, SEM_FN_NAME (frvbf
,mqcpxrs
) },
28889 { FRVBF_INSN_MQCPXRU
, SEM_FN_NAME (frvbf
,mqcpxru
) },
28890 { FRVBF_INSN_MQCPXIS
, SEM_FN_NAME (frvbf
,mqcpxis
) },
28891 { FRVBF_INSN_MQCPXIU
, SEM_FN_NAME (frvbf
,mqcpxiu
) },
28892 { FRVBF_INSN_MEXPDHW
, SEM_FN_NAME (frvbf
,mexpdhw
) },
28893 { FRVBF_INSN_CMEXPDHW
, SEM_FN_NAME (frvbf
,cmexpdhw
) },
28894 { FRVBF_INSN_MEXPDHD
, SEM_FN_NAME (frvbf
,mexpdhd
) },
28895 { FRVBF_INSN_CMEXPDHD
, SEM_FN_NAME (frvbf
,cmexpdhd
) },
28896 { FRVBF_INSN_MPACKH
, SEM_FN_NAME (frvbf
,mpackh
) },
28897 { FRVBF_INSN_MDPACKH
, SEM_FN_NAME (frvbf
,mdpackh
) },
28898 { FRVBF_INSN_MUNPACKH
, SEM_FN_NAME (frvbf
,munpackh
) },
28899 { FRVBF_INSN_MDUNPACKH
, SEM_FN_NAME (frvbf
,mdunpackh
) },
28900 { FRVBF_INSN_MBTOH
, SEM_FN_NAME (frvbf
,mbtoh
) },
28901 { FRVBF_INSN_CMBTOH
, SEM_FN_NAME (frvbf
,cmbtoh
) },
28902 { FRVBF_INSN_MHTOB
, SEM_FN_NAME (frvbf
,mhtob
) },
28903 { FRVBF_INSN_CMHTOB
, SEM_FN_NAME (frvbf
,cmhtob
) },
28904 { FRVBF_INSN_MBTOHE
, SEM_FN_NAME (frvbf
,mbtohe
) },
28905 { FRVBF_INSN_CMBTOHE
, SEM_FN_NAME (frvbf
,cmbtohe
) },
28906 { FRVBF_INSN_MNOP
, SEM_FN_NAME (frvbf
,mnop
) },
28907 { FRVBF_INSN_MCLRACC_0
, SEM_FN_NAME (frvbf
,mclracc_0
) },
28908 { FRVBF_INSN_MCLRACC_1
, SEM_FN_NAME (frvbf
,mclracc_1
) },
28909 { FRVBF_INSN_MRDACC
, SEM_FN_NAME (frvbf
,mrdacc
) },
28910 { FRVBF_INSN_MRDACCG
, SEM_FN_NAME (frvbf
,mrdaccg
) },
28911 { FRVBF_INSN_MWTACC
, SEM_FN_NAME (frvbf
,mwtacc
) },
28912 { FRVBF_INSN_MWTACCG
, SEM_FN_NAME (frvbf
,mwtaccg
) },
28913 { FRVBF_INSN_MCOP1
, SEM_FN_NAME (frvbf
,mcop1
) },
28914 { FRVBF_INSN_MCOP2
, SEM_FN_NAME (frvbf
,mcop2
) },
28915 { FRVBF_INSN_FNOP
, SEM_FN_NAME (frvbf
,fnop
) },
28919 /* Add the semantic fns to IDESC_TABLE. */
28922 SEM_FN_NAME (frvbf
,init_idesc_table
) (SIM_CPU
*current_cpu
)
28924 IDESC
*idesc_table
= CPU_IDESC (current_cpu
);
28925 const struct sem_fn_desc
*sf
;
28926 int mach_num
= MACH_NUM (CPU_MACH (current_cpu
));
28928 for (sf
= &sem_fns
[0]; sf
->fn
!= 0; ++sf
)
28930 const CGEN_INSN
*insn
= idesc_table
[sf
->index
].idata
;
28931 int valid_p
= (CGEN_INSN_VIRTUAL_P (insn
)
28932 || CGEN_INSN_MACH_HAS_P (insn
, mach_num
));
28935 idesc_table
[sf
->index
].sem_fast
= sf
->fn
;
28937 idesc_table
[sf
->index
].sem_fast
= SEM_FN_NAME (frvbf
,x_invalid
);
28940 idesc_table
[sf
->index
].sem_full
= sf
->fn
;
28942 idesc_table
[sf
->index
].sem_full
= SEM_FN_NAME (frvbf
,x_invalid
);
This page took 0.668408 seconds and 4 git commands to generate.