blob: 7a9c44589ea8a65b5e5baaf39c1511cf7e5ff36b [file] [log] [blame]
/* Simulator instruction semantics for frvbf.
THIS FILE IS MACHINE GENERATED WITH CGEN.
Copyright 1996-2021 Free Software Foundation, Inc.
This file is part of the GNU simulators.
This file is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
It is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, see <http://www.gnu.org/licenses/>.
*/
#define WANT_CPU frvbf
#define WANT_CPU_FRVBF
#include "sim-main.h"
#include "cgen-mem.h"
#include "cgen-ops.h"
#undef GET_ATTR
#define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
/* This is used so that we can compile two copies of the semantic code,
one with full feature support and one without that runs fast(er).
FAST_P, when desired, is defined on the command line, -DFAST_P=1. */
#if FAST_P
#define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_semf_,fn)
#undef CGEN_TRACE_RESULT
#define CGEN_TRACE_RESULT(cpu, abuf, name, type, val)
#else
#define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_sem_,fn)
#endif
/* x-invalid: --invalid-- */
static SEM_PC
SEM_FN_NAME (frvbf,x_invalid) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_empty.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
{
/* Update the recorded pc in the cpu state struct.
Only necessary for WITH_SCACHE case, but to avoid the
conditional compilation .... */
SET_H_PC (pc);
/* Virtual insns have zero size. Overwrite vpc with address of next insn
using the default-insn-bitsize spec. When executing insns in parallel
we may want to queue the fault and continue execution. */
vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
vpc = sim_engine_invalid_insn (current_cpu, pc, vpc);
}
return vpc;
#undef FLD
}
/* x-after: --after-- */
static SEM_PC
SEM_FN_NAME (frvbf,x_after) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_empty.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
{
#if WITH_SCACHE_PBB_FRVBF
frvbf_pbb_after (current_cpu, sem_arg);
#endif
}
return vpc;
#undef FLD
}
/* x-before: --before-- */
static SEM_PC
SEM_FN_NAME (frvbf,x_before) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_empty.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
{
#if WITH_SCACHE_PBB_FRVBF
frvbf_pbb_before (current_cpu, sem_arg);
#endif
}
return vpc;
#undef FLD
}
/* x-cti-chain: --cti-chain-- */
static SEM_PC
SEM_FN_NAME (frvbf,x_cti_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_empty.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
{
#if WITH_SCACHE_PBB_FRVBF
#ifdef DEFINE_SWITCH
vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
pbb_br_type, pbb_br_npc);
BREAK (sem);
#else
/* FIXME: Allow provision of explicit ifmt spec in insn spec. */
vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
CPU_PBB_BR_TYPE (current_cpu),
CPU_PBB_BR_NPC (current_cpu));
#endif
#endif
}
return vpc;
#undef FLD
}
/* x-chain: --chain-- */
static SEM_PC
SEM_FN_NAME (frvbf,x_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_empty.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
{
#if WITH_SCACHE_PBB_FRVBF
vpc = frvbf_pbb_chain (current_cpu, sem_arg);
#ifdef DEFINE_SWITCH
BREAK (sem);
#endif
#endif
}
return vpc;
#undef FLD
}
/* x-begin: --begin-- */
static SEM_PC
SEM_FN_NAME (frvbf,x_begin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_empty.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
{
#if WITH_SCACHE_PBB_FRVBF
#if defined DEFINE_SWITCH || defined FAST_P
/* In the switch case FAST_P is a constant, allowing several optimizations
in any called inline functions. */
vpc = frvbf_pbb_begin (current_cpu, FAST_P);
#else
#if 0 /* cgen engine can't handle dynamic fast/full switching yet. */
vpc = frvbf_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu)));
#else
vpc = frvbf_pbb_begin (current_cpu, 0);
#endif
#endif
#endif
}
return vpc;
#undef FLD
}
/* add: add$pack $GRi,$GRj,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,add) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* sub: sub$pack $GRi,$GRj,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,sub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* and: and$pack $GRi,$GRj,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,and) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* or: or$pack $GRi,$GRj,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,or) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* xor: xor$pack $GRi,$GRj,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,xor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* not: not$pack $GRj,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,not) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_scutss.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* sdiv: sdiv$pack $GRi,$GRj,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,sdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
; /*clobber*/
}
return vpc;
#undef FLD
}
/* nsdiv: nsdiv$pack $GRi,$GRj,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,nsdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
; /*clobber*/
}
return vpc;
#undef FLD
}
/* udiv: udiv$pack $GRi,$GRj,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,udiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
; /*clobber*/
}
return vpc;
#undef FLD
}
/* nudiv: nudiv$pack $GRi,$GRj,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,nudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
; /*clobber*/
}
return vpc;
#undef FLD
}
/* smul: smul$pack $GRi,$GRj,$GRdoublek */
static SEM_PC
SEM_FN_NAME (frvbf,smul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_smulcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
}
return vpc;
#undef FLD
}
/* umul: umul$pack $GRi,$GRj,$GRdoublek */
static SEM_PC
SEM_FN_NAME (frvbf,umul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_smulcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
}
return vpc;
#undef FLD
}
/* smu: smu$pack $GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,smu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_smass.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
}
return vpc;
#undef FLD
}
/* smass: smass$pack $GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,smass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_smass.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
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))))));
sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
}
return vpc;
#undef FLD
}
/* smsss: smsss$pack $GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,smsss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_smass.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
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))))));
sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
}
return vpc;
#undef FLD
}
/* sll: sll$pack $GRi,$GRj,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,sll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* srl: srl$pack $GRi,$GRj,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,srl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* sra: sra$pack $GRi,$GRj,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,sra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* slass: slass$pack $GRi,$GRj,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,slass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = frvbf_shift_left_arith_saturate (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* scutss: scutss$pack $GRj,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,scutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_scutss.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = frvbf_iacc_cut (current_cpu, GET_H_IACC0 (((UINT) 0)), GET_H_GR (FLD (f_GRj)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* scan: scan$pack $GRi,$GRj,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,scan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_tmp1;
SI tmp_tmp2;
tmp_tmp1 = GET_H_GR (FLD (f_GRi));
tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
{
SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* cadd: cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cadd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* csub: csub$pack $GRi,$GRj,$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,csub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cand: cand$pack $GRi,$GRj,$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cor: cor$pack $GRi,$GRj,$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cxor: cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cnot: cnot$pack $GRj,$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* csmul: csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,csmul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_clddu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* csdiv: csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,csdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
; /*clobber*/
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cudiv: cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
; /*clobber*/
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* csll: csll$pack $GRi,$GRj,$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,csll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* csrl: csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,csrl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* csra: csra$pack $GRi,$GRj,$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,csra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cscan: cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cscan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_tmp1;
SI tmp_tmp2;
tmp_tmp1 = GET_H_GR (FLD (f_GRi));
tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
{
SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* addcc: addcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,addcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_tmp;
QI tmp_cc;
SI tmp_result;
tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
if (EQBI (tmp_tmp, 0)) {
tmp_cc = ANDQI (tmp_cc, 13);
} else {
tmp_cc = ORQI (tmp_cc, 2);
}
tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
if (EQBI (tmp_tmp, 0)) {
tmp_cc = ANDQI (tmp_cc, 14);
} else {
tmp_cc = ORQI (tmp_cc, 1);
}
tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
if (EQSI (tmp_result, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
} else {
if (LTSI (tmp_result, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
} else {
tmp_cc = ANDQI (tmp_cc, 3);
}
}
{
SI opval = tmp_result;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* subcc: subcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,subcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_tmp;
QI tmp_cc;
SI tmp_result;
tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
if (EQBI (tmp_tmp, 0)) {
tmp_cc = ANDQI (tmp_cc, 13);
} else {
tmp_cc = ORQI (tmp_cc, 2);
}
tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
if (EQBI (tmp_tmp, 0)) {
tmp_cc = ANDQI (tmp_cc, 14);
} else {
tmp_cc = ORQI (tmp_cc, 1);
}
tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
if (EQSI (tmp_result, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
} else {
if (LTSI (tmp_result, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
} else {
tmp_cc = ANDQI (tmp_cc, 3);
}
}
{
SI opval = tmp_result;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* andcc: andcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,andcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_tmp;
tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (EQSI (tmp_tmp, 0)) {
{
UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
} else {
if (LTSI (tmp_tmp, 0)) {
{
UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
} else {
{
UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* orcc: orcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,orcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_tmp;
tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (EQSI (tmp_tmp, 0)) {
{
UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
} else {
if (LTSI (tmp_tmp, 0)) {
{
UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
} else {
{
UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* xorcc: xorcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,xorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_tmp;
tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (EQSI (tmp_tmp, 0)) {
{
UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
} else {
if (LTSI (tmp_tmp, 0)) {
{
UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
} else {
{
UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* sllcc: sllcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,sllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_shift;
SI tmp_tmp;
QI tmp_cc;
tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
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)]));
tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (EQSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
} else {
if (LTSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
} else {
tmp_cc = ANDQI (tmp_cc, 3);
}
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* srlcc: srlcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,srlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_shift;
SI tmp_tmp;
QI tmp_cc;
tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
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)]));
tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (EQSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
} else {
if (LTSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
} else {
tmp_cc = ANDQI (tmp_cc, 3);
}
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* sracc: sracc$pack $GRi,$GRj,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,sracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_shift;
SI tmp_tmp;
QI tmp_cc;
tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
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)]));
tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (EQSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
} else {
if (LTSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
} else {
tmp_cc = ANDQI (tmp_cc, 3);
}
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* smulcc: smulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,smulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_smulcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
DI tmp_tmp;
QI tmp_cc;
tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
tmp_cc = ANDQI (tmp_cc, 7);
} else {
tmp_cc = ORQI (tmp_cc, 8);
}
if (EQBI (EQDI (tmp_tmp, 0), 0)) {
tmp_cc = ANDQI (tmp_cc, 11);
} else {
tmp_cc = ORQI (tmp_cc, 4);
}
{
DI opval = tmp_tmp;
sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* umulcc: umulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,umulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_smulcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
DI tmp_tmp;
QI tmp_cc;
tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
tmp_cc = ANDQI (tmp_cc, 7);
} else {
tmp_cc = ORQI (tmp_cc, 8);
}
if (EQBI (EQDI (tmp_tmp, 0), 0)) {
tmp_cc = ANDQI (tmp_cc, 11);
} else {
tmp_cc = ORQI (tmp_cc, 4);
}
{
DI opval = tmp_tmp;
sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* caddcc: caddcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,caddcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_caddcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
BI tmp_tmp;
QI tmp_cc;
SI tmp_result;
tmp_cc = CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]);
tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
if (EQBI (tmp_tmp, 0)) {
tmp_cc = ANDQI (tmp_cc, 13);
} else {
tmp_cc = ORQI (tmp_cc, 2);
}
tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
if (EQBI (tmp_tmp, 0)) {
tmp_cc = ANDQI (tmp_cc, 14);
} else {
tmp_cc = ORQI (tmp_cc, 1);
}
tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
if (EQSI (tmp_result, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
} else {
if (LTSI (tmp_result, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
} else {
tmp_cc = ANDQI (tmp_cc, 3);
}
}
{
SI opval = tmp_result;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* csubcc: csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,csubcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_caddcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
BI tmp_tmp;
QI tmp_cc;
SI tmp_result;
tmp_cc = CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]);
tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
if (EQBI (tmp_tmp, 0)) {
tmp_cc = ANDQI (tmp_cc, 13);
} else {
tmp_cc = ORQI (tmp_cc, 2);
}
tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
if (EQBI (tmp_tmp, 0)) {
tmp_cc = ANDQI (tmp_cc, 14);
} else {
tmp_cc = ORQI (tmp_cc, 1);
}
tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
if (EQSI (tmp_result, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
} else {
if (LTSI (tmp_result, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
} else {
tmp_cc = ANDQI (tmp_cc, 3);
}
}
{
SI opval = tmp_result;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* csmulcc: csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,csmulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_csmulcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
DI tmp_tmp;
QI tmp_cc;
tmp_cc = CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]);
tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
tmp_cc = ANDQI (tmp_cc, 7);
} else {
tmp_cc = ORQI (tmp_cc, 8);
}
if (EQBI (EQDI (tmp_tmp, 0), 0)) {
tmp_cc = ANDQI (tmp_cc, 11);
} else {
tmp_cc = ORQI (tmp_cc, 4);
}
{
DI opval = tmp_tmp;
sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* candcc: candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,candcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_caddcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_tmp;
tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (EQSI (tmp_tmp, 0)) {
{
UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 7), 4);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
} else {
if (LTSI (tmp_tmp, 0)) {
{
UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 11), 8);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
} else {
{
UQI opval = ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 3);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* corcc: corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,corcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_caddcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_tmp;
tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (EQSI (tmp_tmp, 0)) {
{
UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 7), 4);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
} else {
if (LTSI (tmp_tmp, 0)) {
{
UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 11), 8);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
} else {
{
UQI opval = ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 3);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cxorcc: cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cxorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_caddcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_tmp;
tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (EQSI (tmp_tmp, 0)) {
{
UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 7), 4);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
} else {
if (LTSI (tmp_tmp, 0)) {
{
UQI opval = ORQI (ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 11), 8);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
} else {
{
UQI opval = ANDQI (CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), 3);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* csllcc: csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,csllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_caddcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_shift;
SI tmp_tmp;
QI tmp_cc;
tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
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)]));
tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (EQSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
} else {
if (LTSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
} else {
tmp_cc = ANDQI (tmp_cc, 3);
}
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* csrlcc: csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,csrlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_caddcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_shift;
SI tmp_tmp;
QI tmp_cc;
tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
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)]));
tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (EQSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
} else {
if (LTSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
} else {
tmp_cc = ANDQI (tmp_cc, 3);
}
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* csracc: csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,csracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_caddcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_shift;
SI tmp_tmp;
QI tmp_cc;
tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
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)]));
tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (EQSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
} else {
if (LTSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
} else {
tmp_cc = ANDQI (tmp_cc, 3);
}
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[ANDSI (FLD (f_CCi), 3)]), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* addx: addx$pack $GRi,$GRj,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,addx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
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)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* subx: subx$pack $GRi,$GRj,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,subx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
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)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* addxcc: addxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,addxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_tmp;
QI tmp_cc;
tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
if (EQBI (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
tmp_cc = ANDQI (tmp_cc, 13);
} else {
tmp_cc = ORQI (tmp_cc, 2);
}
if (EQBI (ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
tmp_cc = ANDQI (tmp_cc, 14);
} else {
tmp_cc = ORQI (tmp_cc, 1);
}
if (EQSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
} else {
if (LTSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
} else {
tmp_cc = ANDQI (tmp_cc, 3);
}
}
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* subxcc: subxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,subxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_tmp;
QI tmp_cc;
tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
if (EQBI (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
tmp_cc = ANDQI (tmp_cc, 13);
} else {
tmp_cc = ORQI (tmp_cc, 2);
}
if (EQBI (SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
tmp_cc = ANDQI (tmp_cc, 14);
} else {
tmp_cc = ORQI (tmp_cc, 1);
}
if (EQSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
} else {
if (LTSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
} else {
tmp_cc = ANDQI (tmp_cc, 3);
}
}
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* addss: addss$pack $GRi,$GRj,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,addss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
{
SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
{
SI opval = (GTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (0x80000000) : (0);
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
return vpc;
#undef FLD
}
/* subss: subss$pack $GRi,$GRj,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,subss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
{
SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
{
SI opval = (GTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (0x80000000) : (0);
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
return vpc;
#undef FLD
}
/* addi: addi$pack $GRi,$s12,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,addi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* subi: subi$pack $GRi,$s12,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,subi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* andi: andi$pack $GRi,$s12,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,andi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* ori: ori$pack $GRi,$s12,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,ori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* xori: xori$pack $GRi,$s12,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,xori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* sdivi: sdivi$pack $GRi,$s12,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,sdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
; /*clobber*/
}
return vpc;
#undef FLD
}
/* nsdivi: nsdivi$pack $GRi,$s12,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,nsdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
; /*clobber*/
}
return vpc;
#undef FLD
}
/* udivi: udivi$pack $GRi,$s12,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,udivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
; /*clobber*/
}
return vpc;
#undef FLD
}
/* nudivi: nudivi$pack $GRi,$s12,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,nudivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
; /*clobber*/
}
return vpc;
#undef FLD
}
/* smuli: smuli$pack $GRi,$s12,$GRdoublek */
static SEM_PC
SEM_FN_NAME (frvbf,smuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_smuli.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_d12)));
sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
}
return vpc;
#undef FLD
}
/* umuli: umuli$pack $GRi,$s12,$GRdoublek */
static SEM_PC
SEM_FN_NAME (frvbf,umuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_smuli.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_d12)));
sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
}
return vpc;
#undef FLD
}
/* slli: slli$pack $GRi,$s12,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,slli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* srli: srli$pack $GRi,$s12,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,srli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* srai: srai$pack $GRi,$s12,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,srai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* scani: scani$pack $GRi,$s12,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,scani) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_tmp1;
SI tmp_tmp2;
tmp_tmp1 = GET_H_GR (FLD (f_GRi));
tmp_tmp2 = SRASI (FLD (f_d12), 1);
{
SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* addicc: addicc$pack $GRi,$s10,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,addicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addicc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_tmp;
QI tmp_cc;
SI tmp_result;
tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
if (EQBI (tmp_tmp, 0)) {
tmp_cc = ANDQI (tmp_cc, 13);
} else {
tmp_cc = ORQI (tmp_cc, 2);
}
tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
if (EQBI (tmp_tmp, 0)) {
tmp_cc = ANDQI (tmp_cc, 14);
} else {
tmp_cc = ORQI (tmp_cc, 1);
}
tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
if (EQSI (tmp_result, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
} else {
if (LTSI (tmp_result, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
} else {
tmp_cc = ANDQI (tmp_cc, 3);
}
}
{
SI opval = tmp_result;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* subicc: subicc$pack $GRi,$s10,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,subicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addicc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_tmp;
QI tmp_cc;
SI tmp_result;
tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
if (EQBI (tmp_tmp, 0)) {
tmp_cc = ANDQI (tmp_cc, 13);
} else {
tmp_cc = ORQI (tmp_cc, 2);
}
tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
if (EQBI (tmp_tmp, 0)) {
tmp_cc = ANDQI (tmp_cc, 14);
} else {
tmp_cc = ORQI (tmp_cc, 1);
}
tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
if (EQSI (tmp_result, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
} else {
if (LTSI (tmp_result, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
} else {
tmp_cc = ANDQI (tmp_cc, 3);
}
}
{
SI opval = tmp_result;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* andicc: andicc$pack $GRi,$s10,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,andicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addicc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_tmp;
tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (EQSI (tmp_tmp, 0)) {
{
UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
} else {
if (LTSI (tmp_tmp, 0)) {
{
UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
} else {
{
UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* oricc: oricc$pack $GRi,$s10,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,oricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addicc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_tmp;
tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (EQSI (tmp_tmp, 0)) {
{
UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
} else {
if (LTSI (tmp_tmp, 0)) {
{
UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
} else {
{
UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* xoricc: xoricc$pack $GRi,$s10,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,xoricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addicc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_tmp;
tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (EQSI (tmp_tmp, 0)) {
{
UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
} else {
if (LTSI (tmp_tmp, 0)) {
{
UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
} else {
{
UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* smulicc: smulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,smulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_smulicc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
DI tmp_tmp;
QI tmp_cc;
tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_s10)));
if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
tmp_cc = ANDQI (tmp_cc, 7);
} else {
tmp_cc = ORQI (tmp_cc, 8);
}
if (EQBI (EQDI (tmp_tmp, 0), 0)) {
tmp_cc = ANDQI (tmp_cc, 11);
} else {
tmp_cc = ORQI (tmp_cc, 4);
}
{
DI opval = tmp_tmp;
sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* umulicc: umulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,umulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_smulicc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
DI tmp_tmp;
QI tmp_cc;
tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_s10)));
if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
tmp_cc = ANDQI (tmp_cc, 7);
} else {
tmp_cc = ORQI (tmp_cc, 8);
}
if (EQBI (EQDI (tmp_tmp, 0), 0)) {
tmp_cc = ANDQI (tmp_cc, 11);
} else {
tmp_cc = ORQI (tmp_cc, 4);
}
{
DI opval = tmp_tmp;
sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* sllicc: sllicc$pack $GRi,$s10,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,sllicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addicc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_shift;
SI tmp_tmp;
QI tmp_cc;
tmp_shift = ANDSI (FLD (f_s10), 31);
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)]));
tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (EQSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
} else {
if (LTSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
} else {
tmp_cc = ANDQI (tmp_cc, 3);
}
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* srlicc: srlicc$pack $GRi,$s10,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,srlicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addicc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_shift;
SI tmp_tmp;
QI tmp_cc;
tmp_shift = ANDSI (FLD (f_s10), 31);
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)]));
tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (EQSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
} else {
if (LTSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
} else {
tmp_cc = ANDQI (tmp_cc, 3);
}
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* sraicc: sraicc$pack $GRi,$s10,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,sraicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addicc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_shift;
SI tmp_tmp;
QI tmp_cc;
tmp_shift = ANDSI (FLD (f_s10), 31);
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)]));
tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (EQSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
} else {
if (LTSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
} else {
tmp_cc = ANDQI (tmp_cc, 3);
}
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* addxi: addxi$pack $GRi,$s10,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,addxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addicc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* subxi: subxi$pack $GRi,$s10,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,subxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addicc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* addxicc: addxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,addxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addicc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_tmp;
QI tmp_cc;
tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
if (EQBI (ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
tmp_cc = ANDQI (tmp_cc, 13);
} else {
tmp_cc = ORQI (tmp_cc, 2);
}
if (EQBI (ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
tmp_cc = ANDQI (tmp_cc, 14);
} else {
tmp_cc = ORQI (tmp_cc, 1);
}
if (EQSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
} else {
if (LTSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
} else {
tmp_cc = ANDQI (tmp_cc, 3);
}
}
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* subxicc: subxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,subxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addicc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_tmp;
QI tmp_cc;
tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
if (EQBI (SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
tmp_cc = ANDQI (tmp_cc, 13);
} else {
tmp_cc = ORQI (tmp_cc, 2);
}
if (EQBI (SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
tmp_cc = ANDQI (tmp_cc, 14);
} else {
tmp_cc = ORQI (tmp_cc, 1);
}
if (EQSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
} else {
if (LTSI (tmp_tmp, 0)) {
tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
} else {
tmp_cc = ANDQI (tmp_cc, 3);
}
}
{
SI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* cmpb: cmpb$pack $GRi,$GRj,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,cmpb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_smulcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
QI tmp_cc;
if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj)), 0xff000000)), 0)) {
tmp_cc = ANDQI (tmp_cc, 7);
} else {
tmp_cc = ORQI (tmp_cc, 8);
}
if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj)), 16711680)), 0)) {
tmp_cc = ANDQI (tmp_cc, 11);
} else {
tmp_cc = ORQI (tmp_cc, 4);
}
if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 65280), ANDSI (GET_H_GR (FLD (f_GRj)), 65280)), 0)) {
tmp_cc = ANDQI (tmp_cc, 13);
} else {
tmp_cc = ORQI (tmp_cc, 2);
}
if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 255), ANDSI (GET_H_GR (FLD (f_GRj)), 255)), 0)) {
tmp_cc = ANDQI (tmp_cc, 14);
} else {
tmp_cc = ORQI (tmp_cc, 1);
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* cmpba: cmpba$pack $GRi,$GRj,$ICCi_1 */
static SEM_PC
SEM_FN_NAME (frvbf,cmpba) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_smulcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
QI tmp_cc;
tmp_cc = 0;
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)) {
tmp_cc = ANDQI (tmp_cc, 14);
} else {
tmp_cc = ORQI (tmp_cc, 1);
}
{
UQI opval = tmp_cc;
sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* setlo: setlo$pack $ulo16,$GRklo */
static SEM_PC
SEM_FN_NAME (frvbf,setlo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_setlo.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
UHI opval = FLD (f_u16);
sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_lo_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr_lo", 'x', opval);
}
return vpc;
#undef FLD
}
/* sethi: sethi$pack $uhi16,$GRkhi */
static SEM_PC
SEM_FN_NAME (frvbf,sethi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_sethi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
UHI opval = FLD (f_u16);
sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_hi_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr_hi", 'x', opval);
}
return vpc;
#undef FLD
}
/* setlos: setlos$pack $slo16,$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,setlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_setlos.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = FLD (f_s16);
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* ldsb: ldsb$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,ldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* ldub: ldub$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,ldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* ldsh: ldsh$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,ldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* lduh: lduh$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,lduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* ld: ld$pack $ldann($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,ld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* ldbf: ldbf$pack @($GRi,$GRj),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,ldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
return vpc;
#undef FLD
}
/* ldhf: ldhf$pack @($GRi,$GRj),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,ldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
return vpc;
#undef FLD
}
/* ldf: ldf$pack @($GRi,$GRj),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,ldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
return vpc;
#undef FLD
}
/* ldc: ldc$pack @($GRi,$GRj),$CPRk */
static SEM_PC
SEM_FN_NAME (frvbf,ldc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ldcu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
}
return vpc;
#undef FLD
}
/* nldsb: nldsb$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,nldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
if (tmp_do_op) {
{
SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nldub: nldub$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,nldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
if (tmp_do_op) {
{
SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nldsh: nldsh$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,nldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
if (tmp_do_op) {
{
SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nlduh: nlduh$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,nlduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
if (tmp_do_op) {
{
SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nld: nld$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,nld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_addcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
if (tmp_do_op) {
{
SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nldbf: nldbf$pack @($GRi,$GRj),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,nldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
if (tmp_do_op) {
{
SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nldhf: nldhf$pack @($GRi,$GRj),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,nldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
if (tmp_do_op) {
{
SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nldf: nldf$pack @($GRi,$GRj),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,nldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
if (tmp_do_op) {
{
SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ldd: ldd$pack $lddann($GRi,$GRj),$GRdoublek */
static SEM_PC
SEM_FN_NAME (frvbf,ldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_smulcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
if (NESI (FLD (f_GRk), 0)) {
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* lddf: lddf$pack @($GRi,$GRj),$FRdoublek */
static SEM_PC
SEM_FN_NAME (frvbf,lddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_clddfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
}
}
}
return vpc;
#undef FLD
}
/* lddc: lddc$pack @($GRi,$GRj),$CPRdoublek */
static SEM_PC
SEM_FN_NAME (frvbf,lddc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_lddcu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
}
}
}
return vpc;
#undef FLD
}
/* nldd: nldd$pack @($GRi,$GRj),$GRdoublek */
static SEM_PC
SEM_FN_NAME (frvbf,nldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_smulcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
if (tmp_do_op) {
if (NESI (FLD (f_GRk), 0)) {
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nlddf: nlddf$pack @($GRi,$GRj),$FRdoublek */
static SEM_PC
SEM_FN_NAME (frvbf,nlddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_clddfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
if (tmp_do_op) {
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ldq: ldq$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,ldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_smulcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
}
}
return vpc;
#undef FLD
}
/* ldqf: ldqf$pack @($GRi,$GRj),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,ldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstdfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
}
}
return vpc;
#undef FLD
}
/* ldqc: ldqc$pack @($GRi,$GRj),$CPRk */
static SEM_PC
SEM_FN_NAME (frvbf,ldqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_stdcu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
}
}
return vpc;
#undef FLD
}
/* nldq: nldq$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,nldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_smulcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
if (tmp_do_op) {
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
}
}
}
}
return vpc;
#undef FLD
}
/* nldqf: nldqf$pack @($GRi,$GRj),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,nldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstdfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
if (tmp_do_op) {
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
}
}
}
}
return vpc;
#undef FLD
}
/* ldsbu: ldsbu$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,ldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldsbu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (NESI (FLD (f_GRi), FLD (f_GRk))) {
{
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ldubu: ldubu$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,ldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldsbu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (NESI (FLD (f_GRi), FLD (f_GRk))) {
{
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ldshu: ldshu$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,ldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldsbu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (NESI (FLD (f_GRi), FLD (f_GRk))) {
{
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* lduhu: lduhu$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,lduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldsbu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (NESI (FLD (f_GRi), FLD (f_GRk))) {
{
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ldu: ldu$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,ldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldsbu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (NESI (FLD (f_GRi), FLD (f_GRk))) {
{
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nldsbu: nldsbu$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,nldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldsbu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
if (tmp_do_op) {
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (NESI (FLD (f_GRi), FLD (f_GRk))) {
{
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nldubu: nldubu$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,nldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldsbu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
if (tmp_do_op) {
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (NESI (FLD (f_GRi), FLD (f_GRk))) {
{
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nldshu: nldshu$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,nldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldsbu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
if (tmp_do_op) {
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (NESI (FLD (f_GRi), FLD (f_GRk))) {
{
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nlduhu: nlduhu$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,nlduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldsbu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
if (tmp_do_op) {
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (NESI (FLD (f_GRi), FLD (f_GRk))) {
{
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nldu: nldu$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,nldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldsbu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
if (tmp_do_op) {
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (NESI (FLD (f_GRi), FLD (f_GRk))) {
{
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ldbfu: ldbfu$pack @($GRi,$GRj),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,ldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
return vpc;
#undef FLD
}
/* ldhfu: ldhfu$pack @($GRi,$GRj),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,ldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
return vpc;
#undef FLD
}
/* ldfu: ldfu$pack @($GRi,$GRj),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,ldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
return vpc;
#undef FLD
}
/* ldcu: ldcu$pack @($GRi,$GRj),$CPRk */
static SEM_PC
SEM_FN_NAME (frvbf,ldcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ldcu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
return vpc;
#undef FLD
}
/* nldbfu: nldbfu$pack @($GRi,$GRj),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,nldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
if (tmp_do_op) {
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nldhfu: nldhfu$pack @($GRi,$GRj),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,nldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
if (tmp_do_op) {
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nldfu: nldfu$pack @($GRi,$GRj),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,nldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
if (tmp_do_op) {
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* lddu: lddu$pack @($GRi,$GRj),$GRdoublek */
static SEM_PC
SEM_FN_NAME (frvbf,lddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_clddu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
if (NESI (FLD (f_GRk), 0)) {
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
}
}
}
if (NESI (FLD (f_GRi), FLD (f_GRk))) {
{
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nlddu: nlddu$pack @($GRi,$GRj),$GRdoublek */
static SEM_PC
SEM_FN_NAME (frvbf,nlddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_clddu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
if (tmp_do_op) {
{
SI tmp_address;
if (NESI (FLD (f_GRk), 0)) {
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
}
}
}
if (NESI (FLD (f_GRi), FLD (f_GRk))) {
{
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* lddfu: lddfu$pack @($GRi,$GRj),$FRdoublek */
static SEM_PC
SEM_FN_NAME (frvbf,lddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_clddfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
}
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
return vpc;
#undef FLD
}
/* lddcu: lddcu$pack @($GRi,$GRj),$CPRdoublek */
static SEM_PC
SEM_FN_NAME (frvbf,lddcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_lddcu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
}
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
return vpc;
#undef FLD
}
/* nlddfu: nlddfu$pack @($GRi,$GRj),$FRdoublek */
static SEM_PC
SEM_FN_NAME (frvbf,nlddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_clddfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
if (tmp_do_op) {
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
}
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ldqu: ldqu$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,ldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstdu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
}
if (NESI (FLD (f_GRi), FLD (f_GRk))) {
{
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nldqu: nldqu$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,nldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstdu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
if (tmp_do_op) {
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
}
if (NESI (FLD (f_GRi), FLD (f_GRk))) {
{
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ldqfu: ldqfu$pack @($GRi,$GRj),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,ldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstdfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
return vpc;
#undef FLD
}
/* ldqcu: ldqcu$pack @($GRi,$GRj),$CPRk */
static SEM_PC
SEM_FN_NAME (frvbf,ldqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_stdcu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
return vpc;
#undef FLD
}
/* nldqfu: nldqfu$pack @($GRi,$GRj),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,nldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstdfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
if (tmp_do_op) {
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_force_update (current_cpu);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ldsbi: ldsbi$pack @($GRi,$d12),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,ldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* ldshi: ldshi$pack @($GRi,$d12),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,ldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* ldi: ldi$pack @($GRi,$d12),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,ldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* ldubi: ldubi$pack @($GRi,$d12),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,ldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* lduhi: lduhi$pack @($GRi,$d12),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,lduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* ldbfi: ldbfi$pack @($GRi,$d12),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,ldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ldbfi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
return vpc;
#undef FLD
}
/* ldhfi: ldhfi$pack @($GRi,$d12),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,ldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ldbfi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
return vpc;
#undef FLD
}
/* ldfi: ldfi$pack @($GRi,$d12),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,ldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ldbfi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
return vpc;
#undef FLD
}
/* nldsbi: nldsbi$pack @($GRi,$d12),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,nldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 1, 0);
if (tmp_do_op) {
{
SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nldubi: nldubi$pack @($GRi,$d12),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,nldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 0, 0);
if (tmp_do_op) {
{
SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nldshi: nldshi$pack @($GRi,$d12),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,nldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 3, 0);
if (tmp_do_op) {
{
SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nlduhi: nlduhi$pack @($GRi,$d12),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,nlduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 2, 0);
if (tmp_do_op) {
{
SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nldi: nldi$pack @($GRi,$d12),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,nldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 4, 0);
if (tmp_do_op) {
{
SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nldbfi: nldbfi$pack @($GRi,$d12),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,nldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ldbfi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 0, 1);
if (tmp_do_op) {
{
SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nldhfi: nldhfi$pack @($GRi,$d12),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,nldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ldbfi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 2, 1);
if (tmp_do_op) {
{
SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nldfi: nldfi$pack @($GRi,$d12),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,nldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ldbfi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 4, 1);
if (tmp_do_op) {
{
SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* lddi: lddi$pack @($GRi,$d12),$GRdoublek */
static SEM_PC
SEM_FN_NAME (frvbf,lddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_smuli.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
if (NESI (FLD (f_GRk), 0)) {
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
{
DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* lddfi: lddfi$pack @($GRi,$d12),$FRdoublek */
static SEM_PC
SEM_FN_NAME (frvbf,lddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_lddfi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
{
DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
}
}
}
return vpc;
#undef FLD
}
/* nlddi: nlddi$pack @($GRi,$d12),$GRdoublek */
static SEM_PC
SEM_FN_NAME (frvbf,nlddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_smuli.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 5, 0);
if (tmp_do_op) {
if (NESI (FLD (f_GRk), 0)) {
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
{
DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* nlddfi: nlddfi$pack @($GRi,$d12),$FRdoublek */
static SEM_PC
SEM_FN_NAME (frvbf,nlddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_lddfi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 5, 1);
if (tmp_do_op) {
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
{
DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ldqi: ldqi$pack @($GRi,$d12),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,ldqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_stdi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
}
}
return vpc;
#undef FLD
}
/* ldqfi: ldqfi$pack @($GRi,$d12),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,ldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_stdfi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
}
}
return vpc;
#undef FLD
}
/* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,nldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_stdfi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
BI tmp_do_op;
tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 6, 1);
if (tmp_do_op) {
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
}
}
}
}
return vpc;
#undef FLD
}
/* stb: stb$pack $GRk,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,stb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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)));
return vpc;
#undef FLD
}
/* sth: sth$pack $GRk,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,sth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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)));
return vpc;
#undef FLD
}
/* st: st$pack $GRk,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,st) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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)));
return vpc;
#undef FLD
}
/* stbf: stbf$pack $FRintk,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,stbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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)));
return vpc;
#undef FLD
}
/* sthf: sthf$pack $FRintk,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,sthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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)));
return vpc;
#undef FLD
}
/* stf: stf$pack $FRintk,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,stf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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)));
return vpc;
#undef FLD
}
/* stc: stc$pack $CPRk,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,stc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_stcu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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)]));
return vpc;
#undef FLD
}
/* std: std$pack $GRdoublek,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,std) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstdu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
}
}
return vpc;
#undef FLD
}
/* stdf: stdf$pack $FRdoublek,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,stdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstdfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
}
}
return vpc;
#undef FLD
}
/* stdc: stdc$pack $CPRdoublek,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,stdc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_stdcu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
}
}
return vpc;
#undef FLD
}
/* stq: stq$pack $GRk,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,stq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_smulcc.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
}
}
return vpc;
#undef FLD
}
/* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,stqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstdfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
}
}
return vpc;
#undef FLD
}
/* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,stqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_stdcu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
}
}
return vpc;
#undef FLD
}
/* stbu: stbu$pack $GRk,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,stbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstbu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* sthu: sthu$pack $GRk,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,sthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstbu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* stu: stu$pack $GRk,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,stu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstbu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_WI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,stbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,sthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,stfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,stcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_stcu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
USI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_SI (current_cpu, pc, tmp_address, CPU (h_cpr[FLD (f_CPRk)]));
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* stdu: stdu$pack $GRdoublek,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,stdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstdu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* stdfu: stdfu$pack $FRdoublek,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,stdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstdfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* stdcu: stdcu$pack $CPRdoublek,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,stdcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_stdcu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* stqu: stqu$pack $GRk,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,stqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstdu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,stqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstdfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,stqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_stdcu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,clduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_clddu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
if (NESI (FLD (f_GRk), 0)) {
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,clddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_clddfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
}
}
}
return vpc;
#undef FLD
}
/* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldsbu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 8);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (NESI (FLD (f_GRi), FLD (f_GRk))) {
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldsbu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 8);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (NESI (FLD (f_GRi), FLD (f_GRk))) {
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldsbu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 8);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (NESI (FLD (f_GRi), FLD (f_GRk))) {
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,clduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldsbu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 8);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (NESI (FLD (f_GRi), FLD (f_GRk))) {
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldsbu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 8);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
if (NESI (FLD (f_GRi), FLD (f_GRk))) {
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cldbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,clddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_clddu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
if (NESI (FLD (f_GRk), 0)) {
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
}
}
}
if (NESI (FLD (f_GRi), FLD (f_GRk))) {
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 8);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,clddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_clddfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
{
DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
}
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstdu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
}
if (NESI (FLD (f_GRi), FLD (f_GRk))) {
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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)));
}
return vpc;
#undef FLD
}
/* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,csth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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)));
}
return vpc;
#undef FLD
}
/* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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)));
}
return vpc;
#undef FLD
}
/* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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)));
}
return vpc;
#undef FLD
}
/* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,csthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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)));
}
return vpc;
#undef FLD
}
/* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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)));
}
return vpc;
#undef FLD
}
/* cstd: cstd$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstdu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
}
}
}
return vpc;
#undef FLD
}
/* cstdf: cstdf$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstdfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
}
}
}
return vpc;
#undef FLD
}
/* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
}
}
}
return vpc;
#undef FLD
}
/* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cstbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstbu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,csthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstbu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cstu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstbu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cstbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,csthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cstfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstbfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cstdu: cstdu$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cstdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstdu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cstdfu: cstdfu$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cstdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cstdfu.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
}
{
SI opval = tmp_address;
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* stbi: stbi$pack $GRk,@($GRi,$d12) */
static SEM_PC
SEM_FN_NAME (frvbf,stbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
return vpc;
#undef FLD
}
/* sthi: sthi$pack $GRk,@($GRi,$d12) */
static SEM_PC
SEM_FN_NAME (frvbf,sthi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
return vpc;
#undef FLD
}
/* sti: sti$pack $GRk,@($GRi,$d12) */
static SEM_PC
SEM_FN_NAME (frvbf,sti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
return vpc;
#undef FLD
}
/* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
static SEM_PC
SEM_FN_NAME (frvbf,stbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_stbfi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
return vpc;
#undef FLD
}
/* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
static SEM_PC
SEM_FN_NAME (frvbf,sthfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_stbfi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
return vpc;
#undef FLD
}
/* stfi: stfi$pack $FRintk,@($GRi,$d12) */
static SEM_PC
SEM_FN_NAME (frvbf,stfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_stbfi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
return vpc;
#undef FLD
}
/* stdi: stdi$pack $GRdoublek,@($GRi,$d12) */
static SEM_PC
SEM_FN_NAME (frvbf,stdi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_stdi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
}
}
return vpc;
#undef FLD
}
/* stdfi: stdfi$pack $FRdoublek,@($GRi,$d12) */
static SEM_PC
SEM_FN_NAME (frvbf,stdfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_stdfi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
}
}
return vpc;
#undef FLD
}
/* stqi: stqi$pack $GRk,@($GRi,$d12) */
static SEM_PC
SEM_FN_NAME (frvbf,stqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_stdi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
}
}
return vpc;
#undef FLD
}
/* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
static SEM_PC
SEM_FN_NAME (frvbf,stqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_stdfi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_address;
{
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
}
}
return vpc;
#undef FLD
}
/* swap: swap$pack @($GRi,$GRj),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,swap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_tmp;
SI tmp_address;
tmp_tmp = GET_H_GR (FLD (f_GRk));
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_check_swap_address (current_cpu, tmp_address);
{
SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
}
return vpc;
#undef FLD
}
/* swapi: swapi$pack @($GRi,$d12),$GRk */
static SEM_PC
SEM_FN_NAME (frvbf,swapi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_swapi.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI tmp_tmp;
SI tmp_address;
tmp_tmp = GET_H_GR (FLD (f_GRk));
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
frvbf_check_swap_address (current_cpu, tmp_address);
{
SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
}
return vpc;
#undef FLD
}
/* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cswap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cswap.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI tmp_tmp;
SI tmp_address;
tmp_tmp = GET_H_GR (FLD (f_GRk));
tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
frvbf_check_swap_address (current_cpu, tmp_address);
{
SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* movgf: movgf$pack $GRj,$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,movgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cmovgfd.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = GET_H_GR (FLD (f_GRj));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
return vpc;
#undef FLD
}
/* movfg: movfg$pack $FRintk,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,movfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cmovfgd.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = GET_H_FR_INT (FLD (f_FRk));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* movgfd: movgfd$pack $GRj,$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,movgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cmovgfd.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQSI (FLD (f_GRj), 0)) {
{
{
SI opval = 0;
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
{
USI opval = 0;
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
}
} else {
{
{
SI opval = GET_H_GR (FLD (f_GRj));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
{
USI opval = GET_H_GR (ADDSI (FLD (f_GRj), 1));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* movfgd: movfgd$pack $FRintk,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,movfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cmovfgd.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (NESI (FLD (f_GRj), 0)) {
{
{
SI opval = GET_H_FR_INT (FLD (f_FRk));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
written |= (1 << 4);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
{
USI opval = GET_H_FR_INT (ADDSI (FLD (f_FRk), 1));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ADDSI (FLD (f_GRj), 1), opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* movgfq: movgfq$pack $GRj,$FRintk */
static SEM_PC
SEM_FN_NAME (frvbf,movgfq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_movgfq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQSI (FLD (f_GRj), 0)) {
{
{
SI opval = 0;
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
{
USI opval = 0;
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
{
USI opval = 0;
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 2), opval);
written |= (1 << 8);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
{
USI opval = 0;
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 3), opval);
written |= (1 << 9);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
}
} else {
{
{
SI opval = GET_H_GR (FLD (f_GRj));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
{
USI opval = GET_H_GR (ADDSI (FLD (f_GRj), 1));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
{
USI opval = GET_H_GR (ADDSI (FLD (f_GRj), 2));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 2), opval);
written |= (1 << 8);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
{
USI opval = GET_H_GR (ADDSI (FLD (f_GRj), 3));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 3), opval);
written |= (1 << 9);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* movfgq: movfgq$pack $FRintk,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,movfgq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_movfgq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (NESI (FLD (f_GRj), 0)) {
{
{
SI opval = GET_H_FR_INT (FLD (f_FRk));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
{
USI opval = GET_H_FR_INT (ADDSI (FLD (f_FRk), 1));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ADDSI (FLD (f_GRj), 1), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
{
USI opval = GET_H_FR_INT (ADDSI (FLD (f_FRk), 2));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ADDSI (FLD (f_GRj), 2), opval);
written |= (1 << 8);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
{
USI opval = GET_H_FR_INT (ADDSI (FLD (f_FRk), 3));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ADDSI (FLD (f_GRj), 3), opval);
written |= (1 << 9);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cmovgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cmovgfd.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI opval = GET_H_GR (FLD (f_GRj));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cmovfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cmovfgd.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
{
SI opval = GET_H_FR_INT (FLD (f_FRk));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cmovgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cmovgfd.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
if (EQSI (FLD (f_GRj), 0)) {
{
{
SI opval = 0;
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
{
USI opval = 0;
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
}
} else {
{
{
SI opval = GET_H_GR (FLD (f_GRj));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
{
USI opval = GET_H_GR (ADDSI (FLD (f_GRj), 1));
sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ADDSI (FLD (f_FRk), 1), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
static SEM_PC
SEM_FN_NAME (frvbf,cmovfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cmovfgd.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (ANDIF (NESI (FLD (f_GRj), 0), EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2)))) {
{
{
SI opval = GET_H_FR_INT (FLD (f_FRk));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
{
USI opval = GET_H_FR_INT (ADDSI (FLD (f_FRk), 1));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ADDSI (FLD (f_GRj), 1), opval);
written |= (1 << 7);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* movgs: movgs$pack $GRj,$spr */
static SEM_PC
SEM_FN_NAME (frvbf,movgs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_movgs.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
USI opval = GET_H_GR (FLD (f_GRj));
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, FLD (f_spr), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
return vpc;
#undef FLD
}
/* movsg: movsg$pack $spr,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,movsg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_movsg.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
SI opval = GET_H_SPR (FLD (f_spr));
sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
return vpc;
#undef FLD
}
/* bra: bra$pack $hint_taken$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,bra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fbne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* bno: bno$pack$hint_not_taken */
static SEM_PC
SEM_FN_NAME (frvbf,bno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fbne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
return vpc;
#undef FLD
}
/* beq: beq$pack $ICCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,beq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_beq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bne: bne$pack $ICCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,bne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_beq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ble: ble$pack $ICCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,ble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_beq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
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))))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bgt: bgt$pack $ICCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,bgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_beq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
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)))))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* blt: blt$pack $ICCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,blt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_beq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
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)))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bge: bge$pack $ICCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,bge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_beq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
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))))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bls: bls$pack $ICCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,bls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_beq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bhi: bhi$pack $ICCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,bhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_beq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
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))))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bc: bc$pack $ICCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,bc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_beq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bnc: bnc$pack $ICCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,bnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_beq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bn: bn$pack $ICCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,bn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_beq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bp: bp$pack $ICCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,bp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_beq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bv: bv$pack $ICCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,bv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_beq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bnv: bnv$pack $ICCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,bnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_beq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbra: fbra$pack $hint_taken$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,fbra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fbne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* fbno: fbno$pack$hint_not_taken */
static SEM_PC
SEM_FN_NAME (frvbf,fbno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fbne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
return vpc;
#undef FLD
}
/* fbne: fbne$pack $FCCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,fbne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fbne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
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))))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,fbeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fbne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fblg: fblg$pack $FCCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,fblg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fbne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
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)))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbue: fbue$pack $FCCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,fbue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fbne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbul: fbul$pack $FCCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,fbul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fbne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbge: fbge$pack $FCCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,fbge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fbne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
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)))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fblt: fblt$pack $FCCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,fblt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fbne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,fbuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fbne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
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))))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbug: fbug$pack $FCCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,fbug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fbne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fble: fble$pack $FCCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,fble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fbne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
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)))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,fbgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fbne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbule: fbule$pack $FCCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,fbule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fbne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
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))))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbu: fbu$pack $FCCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,fbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fbne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbo: fbo$pack $FCCi_2,$hint,$label16 */
static SEM_PC
SEM_FN_NAME (frvbf,fbo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fbne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
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))))) {
{
USI opval = FLD (i_label16);
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bctrlr: bctrlr$pack $ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bctrlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bralr: bralr$pack$hint_taken */
static SEM_PC
SEM_FN_NAME (frvbf,bralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* bnolr: bnolr$pack$hint_not_taken */
static SEM_PC
SEM_FN_NAME (frvbf,bnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
return vpc;
#undef FLD
}
/* beqlr: beqlr$pack $ICCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,beqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bnelr: bnelr$pack $ICCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* blelr: blelr$pack $ICCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,blelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
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))))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bgtlr: bgtlr$pack $ICCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
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)))))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bltlr: bltlr$pack $ICCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
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)))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bgelr: bgelr$pack $ICCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
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))))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* blslr: blslr$pack $ICCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,blslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bhilr: bhilr$pack $ICCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bhilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
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))))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bclr: bclr$pack $ICCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bnclr: bnclr$pack $ICCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bnlr: bnlr$pack $ICCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bplr: bplr$pack $ICCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bvlr: bvlr$pack $ICCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bnvlr: bnvlr$pack $ICCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbralr: fbralr$pack$hint_taken */
static SEM_PC
SEM_FN_NAME (frvbf,fbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
return vpc;
#undef FLD
}
/* fbnolr: fbnolr$pack$hint_not_taken */
static SEM_PC
SEM_FN_NAME (frvbf,fbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
return vpc;
#undef FLD
}
/* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbnelr: fbnelr$pack $FCCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
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))))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fblglr: fblglr$pack $FCCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
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)))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbuelr: fbuelr$pack $FCCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbullr: fbullr$pack $FCCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbgelr: fbgelr$pack $FCCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
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)))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbltlr: fbltlr$pack $FCCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbugelr: fbugelr$pack $FCCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
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))))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbuglr: fbuglr$pack $FCCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fblelr: fblelr$pack $FCCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
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)))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbulelr: fbulelr$pack $FCCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
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))))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbulr: fbulr$pack $FCCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fbolr: fbolr$pack $FCCi_2,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
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))))) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 3);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bcralr: bcralr$pack $ccond$hint_taken */
static SEM_PC
SEM_FN_NAME (frvbf,bcralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bcnolr: bcnolr$pack$hint_not_taken */
static SEM_PC
SEM_FN_NAME (frvbf,bcnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
((void) 0); /*nop*/
}
}
return vpc;
#undef FLD
}
/* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bceqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bcnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bclelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
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))))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bcgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
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)))))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bcltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
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)))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bcgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
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))))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bclslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bchilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
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))))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bcclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bcnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bcnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bcplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bcvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,bcnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_bceqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fcbralr: fcbralr$pack $ccond$hint_taken */
static SEM_PC
SEM_FN_NAME (frvbf,fcbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 5);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fcbnolr: fcbnolr$pack$hint_not_taken */
static SEM_PC
SEM_FN_NAME (frvbf,fcbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
((void) 0); /*nop*/
}
}
return vpc;
#undef FLD
}
/* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fcbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fcbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
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))))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fcblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
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)))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fcbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fcbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fcbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
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)))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fcbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fcbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
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))))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fcbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fcblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
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)))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fcbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fcbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
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))))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fcbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
static SEM_PC
SEM_FN_NAME (frvbf,fcbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
{
SI tmp_tmp;
tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
{
USI opval = tmp_tmp;
sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
}
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))))) {
if (EQSI (FLD (f_ccond), 0)) {
if (NESI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
} else {
if (EQSI (tmp_tmp, 0)) {
{
USI opval = GET_H_SPR (((UINT) 272));
sim_queue_pc_write (current_cpu, opval);
written |= (1 << 6);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
}
}
}
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* jmpl: jmpl$pack @($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,jmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cjmpl.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
if (EQSI (FLD (f_LI), 1)) {
frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
}
{
USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
sim_queue_pc_write (current_cpu, opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
frvbf_model_branch (current_cpu, pc, 2);
}
return vpc;
#undef FLD
}
/* calll: calll$pack $callann($GRi,$GRj) */
static SEM_PC
SEM_FN_NAME (frvbf,calll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cjmpl.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
if (EQSI (FLD (f_LI), 1)) {
frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
}
{
USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
sim_queue_pc_write (current_cpu, opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
frvbf_model_branch (current_cpu, pc, 2);
}
return vpc;
#undef FLD
}
/* jmpil: jmpil$pack @($GRi,$s12) */
static SEM_PC
SEM_FN_NAME (frvbf,jmpil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_jmpil.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
if (EQSI (FLD (f_LI), 1)) {
frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
}
{
USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
sim_queue_pc_write (current_cpu, opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
frvbf_model_branch (current_cpu, pc, 2);
}
return vpc;
#undef FLD
}
/* callil: callil$pack @($GRi,$s12) */
static SEM_PC
SEM_FN_NAME (frvbf,callil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_jmpil.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
if (EQSI (FLD (f_LI), 1)) {
frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
}
{
USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
sim_queue_pc_write (current_cpu, opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
frvbf_model_branch (current_cpu, pc, 2);
}
return vpc;
#undef FLD
}
/* call: call$pack $label24 */
static SEM_PC
SEM_FN_NAME (frvbf,call) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_call.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
{
USI opval = FLD (i_label24);
sim_queue_pc_write (current_cpu, opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
frvbf_model_branch (current_cpu, pc, 2);
}
return vpc;
#undef FLD
}
/* rett: rett$pack $debug */
static SEM_PC
SEM_FN_NAME (frvbf,rett) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_rett.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
{
USI opval = frv_rett (current_cpu, pc, FLD (f_debug));
sim_queue_pc_write (current_cpu, opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
}
frvbf_model_branch (current_cpu, pc, 2);
}
return vpc;
#undef FLD
}
/* rei: rei$pack $eir */
static SEM_PC
SEM_FN_NAME (frvbf,rei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_empty.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
((void) 0); /*nop*/
return vpc;
#undef FLD
}
/* tra: tra$pack $GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,tra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tno: tno$pack */
static SEM_PC
SEM_FN_NAME (frvbf,tno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_empty.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
((void) 0); /*nop*/
return vpc;
#undef FLD
}
/* teq: teq$pack $ICCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,teq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_teq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tne: tne$pack $ICCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,tne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_teq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tle: tle$pack $ICCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,tle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_teq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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))))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,tgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_teq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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)))))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,tlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_teq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tge: tge$pack $ICCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,tge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_teq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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))))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tls: tls$pack $ICCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,tls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_teq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* thi: thi$pack $ICCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,thi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_teq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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))))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tc: tc$pack $ICCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,tc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_teq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,tnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_teq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tn: tn$pack $ICCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,tn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_teq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tp: tp$pack $ICCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,tp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_teq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tv: tv$pack $ICCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,tv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_teq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,tnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_teq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftra: ftra$pack $GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,ftra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftno: ftno$pack */
static SEM_PC
SEM_FN_NAME (frvbf,ftno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_empty.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
((void) 0); /*nop*/
return vpc;
#undef FLD
}
/* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,ftne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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))))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,fteq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,ftlg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,ftue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,ftul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,ftge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,ftlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,ftuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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))))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,ftug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,ftle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,ftgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,ftule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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))))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,ftu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fto: fto$pack $FCCi_2,$GRi,$GRj */
static SEM_PC
SEM_FN_NAME (frvbf,fto) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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))))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tira: tira$pack $GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,tira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftine.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tino: tino$pack */
static SEM_PC
SEM_FN_NAME (frvbf,tino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_empty.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
((void) 0); /*nop*/
return vpc;
#undef FLD
}
/* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,tieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_tieq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tine: tine$pack $ICCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,tine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_tieq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tile: tile$pack $ICCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,tile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_tieq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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))))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,tigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_tieq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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)))))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,tilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_tieq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tige: tige$pack $ICCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,tige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_tieq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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))))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tils: tils$pack $ICCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,tils) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_tieq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,tihi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_tieq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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))))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tic: tic$pack $ICCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,tic) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_tieq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,tinc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_tieq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tin: tin$pack $ICCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,tin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_tieq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tip: tip$pack $ICCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,tip) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_tieq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,tiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_tieq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,tinv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_tieq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftira: ftira$pack $GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,ftira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftine.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftino: ftino$pack */
static SEM_PC
SEM_FN_NAME (frvbf,ftino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_empty.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
((void) 0); /*nop*/
return vpc;
#undef FLD
}
/* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,ftine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftine.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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))))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,ftieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftine.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,ftilg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftine.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,ftiue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftine.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,ftiul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftine.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,ftige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftine.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,ftilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftine.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,ftiuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftine.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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))))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,ftiug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftine.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,ftile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftine.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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)))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,ftigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftine.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,ftiule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftine.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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))))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,ftiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftine.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
static SEM_PC
SEM_FN_NAME (frvbf,ftio) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_ftine.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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))))) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
if (NEBI (CPU (h_psr_esr), 0)) {
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
}
}
frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* break: break$pack */
static SEM_PC
SEM_FN_NAME (frvbf,break) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_break.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
; /*clobber*/
frv_break (current_cpu);
}
return vpc;
#undef FLD
}
/* mtrap: mtrap$pack */
static SEM_PC
SEM_FN_NAME (frvbf,mtrap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_empty.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
frv_mtrap (current_cpu);
return vpc;
#undef FLD
}
/* andcr: andcr$pack $CRi,$CRj,$CRk */
static SEM_PC
SEM_FN_NAME (frvbf,andcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_andcr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
UQI opval = frvbf_cr_logic (current_cpu, 0, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
return vpc;
#undef FLD
}
/* orcr: orcr$pack $CRi,$CRj,$CRk */
static SEM_PC
SEM_FN_NAME (frvbf,orcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_andcr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
UQI opval = frvbf_cr_logic (current_cpu, 1, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
return vpc;
#undef FLD
}
/* xorcr: xorcr$pack $CRi,$CRj,$CRk */
static SEM_PC
SEM_FN_NAME (frvbf,xorcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_andcr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
UQI opval = frvbf_cr_logic (current_cpu, 2, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
return vpc;
#undef FLD
}
/* nandcr: nandcr$pack $CRi,$CRj,$CRk */
static SEM_PC
SEM_FN_NAME (frvbf,nandcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_andcr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
UQI opval = frvbf_cr_logic (current_cpu, 3, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
return vpc;
#undef FLD
}
/* norcr: norcr$pack $CRi,$CRj,$CRk */
static SEM_PC
SEM_FN_NAME (frvbf,norcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_andcr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
UQI opval = frvbf_cr_logic (current_cpu, 4, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
return vpc;
#undef FLD
}
/* andncr: andncr$pack $CRi,$CRj,$CRk */
static SEM_PC
SEM_FN_NAME (frvbf,andncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_andcr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
UQI opval = frvbf_cr_logic (current_cpu, 5, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
return vpc;
#undef FLD
}
/* orncr: orncr$pack $CRi,$CRj,$CRk */
static SEM_PC
SEM_FN_NAME (frvbf,orncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_andcr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
UQI opval = frvbf_cr_logic (current_cpu, 6, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
return vpc;
#undef FLD
}
/* nandncr: nandncr$pack $CRi,$CRj,$CRk */
static SEM_PC
SEM_FN_NAME (frvbf,nandncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_andcr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
UQI opval = frvbf_cr_logic (current_cpu, 7, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
return vpc;
#undef FLD
}
/* norncr: norncr$pack $CRi,$CRj,$CRk */
static SEM_PC
SEM_FN_NAME (frvbf,norncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_andcr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
UQI opval = frvbf_cr_logic (current_cpu, 8, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
return vpc;
#undef FLD
}
/* notcr: notcr$pack $CRj,$CRk */
static SEM_PC
SEM_FN_NAME (frvbf,notcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_andcr.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
UQI opval = XORQI (CPU (h_cccr[FLD (f_CRj)]), 1);
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
return vpc;
#undef FLD
}
/* ckra: ckra$pack $CRj_int */
static SEM_PC
SEM_FN_NAME (frvbf,ckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cckeq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
UQI opval = 3;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
return vpc;
#undef FLD
}
/* ckno: ckno$pack $CRj_int */
static SEM_PC
SEM_FN_NAME (frvbf,ckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cckeq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
UQI opval = 2;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
return vpc;
#undef FLD
}
/* ckeq: ckeq$pack $ICCi_3,$CRj_int */
static SEM_PC
SEM_FN_NAME (frvbf,ckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cckeq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
{
UQI opval = 3;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
} else {
{
UQI opval = 2;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ckne: ckne$pack $ICCi_3,$CRj_int */
static SEM_PC
SEM_FN_NAME (frvbf,ckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cckeq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
{
UQI opval = 3;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
} else {
{
UQI opval = 2;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ckle: ckle$pack $ICCi_3,$CRj_int */
static SEM_PC
SEM_FN_NAME (frvbf,ckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cckeq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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))))) {
{
UQI opval = 3;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
} else {
{
UQI opval = 2;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ckgt: ckgt$pack $ICCi_3,$CRj_int */
static SEM_PC
SEM_FN_NAME (frvbf,ckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cckeq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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)))))) {
{
UQI opval = 3;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
} else {
{
UQI opval = 2;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cklt: cklt$pack $ICCi_3,$CRj_int */
static SEM_PC
SEM_FN_NAME (frvbf,cklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cckeq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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)))) {
{
UQI opval = 3;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
} else {
{
UQI opval = 2;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ckge: ckge$pack $ICCi_3,$CRj_int */
static SEM_PC
SEM_FN_NAME (frvbf,ckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cckeq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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))))) {
{
UQI opval = 3;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
} else {
{
UQI opval = 2;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ckls: ckls$pack $ICCi_3,$CRj_int */
static SEM_PC
SEM_FN_NAME (frvbf,ckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cckeq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
{
UQI opval = 3;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
} else {
{
UQI opval = 2;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ckhi: ckhi$pack $ICCi_3,$CRj_int */
static SEM_PC
SEM_FN_NAME (frvbf,ckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cckeq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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))))) {
{
UQI opval = 3;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
} else {
{
UQI opval = 2;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ckc: ckc$pack $ICCi_3,$CRj_int */
static SEM_PC
SEM_FN_NAME (frvbf,ckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cckeq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
{
UQI opval = 3;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
} else {
{
UQI opval = 2;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cknc: cknc$pack $ICCi_3,$CRj_int */
static SEM_PC
SEM_FN_NAME (frvbf,cknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cckeq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
{
UQI opval = 3;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
} else {
{
UQI opval = 2;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ckn: ckn$pack $ICCi_3,$CRj_int */
static SEM_PC
SEM_FN_NAME (frvbf,ckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cckeq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
{
UQI opval = 3;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
} else {
{
UQI opval = 2;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ckp: ckp$pack $ICCi_3,$CRj_int */
static SEM_PC
SEM_FN_NAME (frvbf,ckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cckeq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
{
UQI opval = 3;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
} else {
{
UQI opval = 2;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* ckv: ckv$pack $ICCi_3,$CRj_int */
static SEM_PC
SEM_FN_NAME (frvbf,ckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cckeq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
{
UQI opval = 3;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
} else {
{
UQI opval = 2;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* cknv: cknv$pack $ICCi_3,$CRj_int */
static SEM_PC
SEM_FN_NAME (frvbf,cknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cckeq.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
{
UQI opval = 3;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
} else {
{
UQI opval = 2;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fckra: fckra$pack $CRj_float */
static SEM_PC
SEM_FN_NAME (frvbf,fckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cfckne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
UQI opval = 3;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
return vpc;
#undef FLD
}
/* fckno: fckno$pack $CRj_float */
static SEM_PC
SEM_FN_NAME (frvbf,fckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cfckne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
{
UQI opval = 2;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
return vpc;
#undef FLD
}
/* fckne: fckne$pack $FCCi_3,$CRj_float */
static SEM_PC
SEM_FN_NAME (frvbf,fckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cfckne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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))))) {
{
UQI opval = 3;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
} else {
{
UQI opval = 2;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fckeq: fckeq$pack $FCCi_3,$CRj_float */
static SEM_PC
SEM_FN_NAME (frvbf,fckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cfckne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
{
UQI opval = 3;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
} else {
{
UQI opval = 2;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fcklg: fcklg$pack $FCCi_3,$CRj_float */
static SEM_PC
SEM_FN_NAME (frvbf,fcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cfckne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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)))) {
{
UQI opval = 3;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
} else {
{
UQI opval = 2;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fckue: fckue$pack $FCCi_3,$CRj_float */
static SEM_PC
SEM_FN_NAME (frvbf,fckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cfckne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
{
UQI opval = 3;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
} else {
{
UQI opval = 2;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
}
abuf->written = written;
return vpc;
#undef FLD
}
/* fckul: fckul$pack $FCCi_3,$CRj_float */
static SEM_PC
SEM_FN_NAME (frvbf,fckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
#define FLD(f) abuf->fields.sfmt_cfckne.f
ARGBUF *abuf = SEM_ARGBUF (sem_arg);
int UNUSED written = 0;
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
{
UQI opval = 3;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
written |= (1 << 1);
CGEN_TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
}
} else {
{
UQI opval = 2;
sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
written |= (1 <<