X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=sim%2Fm32r%2Fsem-switch.c;h=7987632dacce09ba714e0052d85cb450bf90ec88;hb=3922b302645fda04da42a5279399578ae2f6206c;hp=dce64a63b8adeeeaa3b68d0a7fb6ff85d2ce1fc5;hpb=0a18a6b8adb8e5d3ec215cf53e20dce1c600e201;p=deliverable%2Fbinutils-gdb.git diff --git a/sim/m32r/sem-switch.c b/sim/m32r/sem-switch.c index dce64a63b8..7987632dac 100644 --- a/sim/m32r/sem-switch.c +++ b/sim/m32r/sem-switch.c @@ -2,23 +2,22 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. +Copyright 1996-2020 Free Software Foundation, Inc. -This file is part of the GNU Simulators. +This file is part of the GNU simulators. -This program 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 2, or (at your option) -any later version. + 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. -This program 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. + 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, write to the Free Software Foundation, Inc., -59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ @@ -137,16 +136,23 @@ with this program; if not, write to the Free Software Foundation, Inc., { M32RBF_INSN_SUBX, && case_sem_INSN_SUBX }, { M32RBF_INSN_TRAP, && case_sem_INSN_TRAP }, { M32RBF_INSN_UNLOCK, && case_sem_INSN_UNLOCK }, + { M32RBF_INSN_CLRPSW, && case_sem_INSN_CLRPSW }, + { M32RBF_INSN_SETPSW, && case_sem_INSN_SETPSW }, + { M32RBF_INSN_BSET, && case_sem_INSN_BSET }, + { M32RBF_INSN_BCLR, && case_sem_INSN_BCLR }, + { M32RBF_INSN_BTST, && case_sem_INSN_BTST }, { 0, 0 } }; int i; for (i = 0; labels[i].label != 0; ++i) + { #if FAST_P - CPU_IDESC (current_cpu) [labels[i].index].sem_fast_lab = labels[i].label; + CPU_IDESC (current_cpu) [labels[i].index].sem_fast_lab = labels[i].label; #else - CPU_IDESC (current_cpu) [labels[i].index].sem_full_lab = labels[i].label; + CPU_IDESC (current_cpu) [labels[i].index].sem_full_lab = labels[i].label; #endif + } #undef DEFINE_LABELS #endif /* DEFINE_LABELS */ @@ -155,17 +161,17 @@ with this program; if not, write to the Free Software Foundation, Inc., /* If hyper-fast [well not unnecessarily slow] execution is selected, turn off frills like tracing and profiling. */ -/* FIXME: A better way would be to have TRACE_RESULT check for something +/* FIXME: A better way would be to have CGEN_TRACE_RESULT check for something that can cause it to be optimized out. Another way would be to emit special handlers into the instruction "stream". */ #if FAST_P -#undef TRACE_RESULT -#define TRACE_RESULT(cpu, abuf, name, type, val) +#undef CGEN_TRACE_RESULT +#define CGEN_TRACE_RESULT(cpu, abuf, name, type, val) #endif #undef GET_ATTR -#define GET_ATTR(cpu, num, attr) CGEN_INSN_ATTR (abuf->idesc->opcode, CGEN_INSN_##attr) +#define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr) { @@ -196,19 +202,21 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case) { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f +#define FLD(f) abuf->fields.sfmt_empty.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 0); { -#if WITH_SCACHE - /* Update the recorded pc in the cpu state struct. */ + /* 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); -#endif - sim_engine_invalid_insn (current_cpu, pc); - sim_io_error (CPU_STATE (current_cpu), "invalid insn not handled\n"); - /* NOTREACHED */ + /* 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); } #undef FLD @@ -219,13 +227,13 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case) { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f +#define FLD(f) abuf->fields.sfmt_empty.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 0); { -#if WITH_SCACHE_PBB +#if WITH_SCACHE_PBB_M32RBF m32rbf_pbb_after (current_cpu, sem_arg); #endif } @@ -238,13 +246,13 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case) { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f +#define FLD(f) abuf->fields.sfmt_empty.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 0); { -#if WITH_SCACHE_PBB +#if WITH_SCACHE_PBB_M32RBF m32rbf_pbb_before (current_cpu, sem_arg); #endif } @@ -257,21 +265,21 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case) { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f +#define FLD(f) abuf->fields.sfmt_empty.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 0); { -#if WITH_SCACHE_PBB +#if WITH_SCACHE_PBB_M32RBF #ifdef DEFINE_SWITCH vpc = m32rbf_pbb_cti_chain (current_cpu, sem_arg, - pbb_br_npc_ptr, pbb_br_npc); + pbb_br_type, pbb_br_npc); BREAK (sem); #else /* FIXME: Allow provision of explicit ifmt spec in insn spec. */ vpc = m32rbf_pbb_cti_chain (current_cpu, sem_arg, - CPU_PBB_BR_NPC_PTR (current_cpu), + CPU_PBB_BR_TYPE (current_cpu), CPU_PBB_BR_NPC (current_cpu)); #endif #endif @@ -285,13 +293,13 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case) { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f +#define FLD(f) abuf->fields.sfmt_empty.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 0); { -#if WITH_SCACHE_PBB +#if WITH_SCACHE_PBB_M32RBF vpc = m32rbf_pbb_chain (current_cpu, sem_arg); #ifdef DEFINE_SWITCH BREAK (sem); @@ -307,19 +315,23 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case) { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f +#define FLD(f) abuf->fields.sfmt_empty.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 0); { -#if WITH_SCACHE_PBB -#ifdef DEFINE_SWITCH +#if WITH_SCACHE_PBB_M32RBF +#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 = m32rbf_pbb_begin (current_cpu, FAST_P); #else +#if 0 /* cgen engine can't handle dynamic fast/full switching yet. */ vpc = m32rbf_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu))); +#else + vpc = m32rbf_pbb_begin (current_cpu, 0); +#endif #endif #endif } @@ -332,15 +344,15 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case) { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_add.f +#define FLD(f) abuf->fields.sfmt_add.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { SI opval = ADDSI (* FLD (i_dr), * FLD (i_sr)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -351,15 +363,15 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case) { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_add3.f +#define FLD(f) abuf->fields.sfmt_add3.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); { SI opval = ADDSI (* FLD (i_sr), FLD (f_simm16)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -370,15 +382,15 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case) { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_add.f +#define FLD(f) abuf->fields.sfmt_add.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { SI opval = ANDSI (* FLD (i_dr), * FLD (i_sr)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -389,15 +401,15 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case) { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_and3.f +#define FLD(f) abuf->fields.sfmt_and3.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); { SI opval = ANDSI (* FLD (i_sr), FLD (f_uimm16)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -408,15 +420,15 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case) { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_add.f +#define FLD(f) abuf->fields.sfmt_add.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { SI opval = ORSI (* FLD (i_dr), * FLD (i_sr)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -427,15 +439,15 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case) { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_or3.f +#define FLD(f) abuf->fields.sfmt_and3.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); { SI opval = ORSI (* FLD (i_sr), FLD (f_uimm16)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -446,15 +458,15 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case) { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_add.f +#define FLD(f) abuf->fields.sfmt_add.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { SI opval = XORSI (* FLD (i_dr), * FLD (i_sr)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -465,15 +477,15 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case) { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_and3.f +#define FLD(f) abuf->fields.sfmt_and3.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); { SI opval = XORSI (* FLD (i_sr), FLD (f_uimm16)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -484,15 +496,15 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case) { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_addi.f +#define FLD(f) abuf->fields.sfmt_addi.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { SI opval = ADDSI (* FLD (i_dr), FLD (f_simm8)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -503,26 +515,26 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case) { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_addv.f +#define FLD(f) abuf->fields.sfmt_add.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); -do { - BI temp1;SI temp0; +{ + SI temp0;BI temp1; temp0 = ADDSI (* FLD (i_dr), * FLD (i_sr)); temp1 = ADDOFSI (* FLD (i_dr), * FLD (i_sr), 0); { SI opval = temp0; * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } { BI opval = temp1; CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "condbit", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); } -} while (0); +} #undef FLD } @@ -532,26 +544,26 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_addv3.f +#define FLD(f) abuf->fields.sfmt_add3.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); -do { - BI temp1;SI temp0; +{ + SI temp0;BI temp1; temp0 = ADDSI (* FLD (i_sr), FLD (f_simm16)); temp1 = ADDOFSI (* FLD (i_sr), FLD (f_simm16), 0); { SI opval = temp0; * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } { BI opval = temp1; CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "condbit", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); } -} while (0); +} #undef FLD } @@ -561,26 +573,26 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_addx.f +#define FLD(f) abuf->fields.sfmt_add.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); -do { - BI temp1;SI temp0; +{ + SI temp0;BI temp1; temp0 = ADDCSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); temp1 = ADDCFSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); { SI opval = temp0; * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } { BI opval = temp1; CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "condbit", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); } -} while (0); +} #undef FLD } @@ -590,23 +602,23 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.cti.fields.fmt_bc8.f +#define FLD(f) abuf->fields.sfmt_bl8.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; SEM_BRANCH_INIT vpc = SEM_NEXT_VPC (sem_arg, pc, 2); if (CPU (h_cond)) { { - USI opval = FLD (f_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc, SEM_BRANCH_ADDR_CACHE (sem_arg)); + USI opval = FLD (i_disp8); + SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); } } abuf->written = written; - SEM_BRANCH_FINI + SEM_BRANCH_FINI (vpc); #undef FLD } NEXT (vpc); @@ -615,23 +627,23 @@ if (CPU (h_cond)) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.cti.fields.fmt_bc24.f +#define FLD(f) abuf->fields.sfmt_bl24.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; SEM_BRANCH_INIT vpc = SEM_NEXT_VPC (sem_arg, pc, 4); if (CPU (h_cond)) { { - USI opval = FLD (f_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc, SEM_BRANCH_ADDR_CACHE (sem_arg)); + USI opval = FLD (i_disp24); + SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); } } abuf->written = written; - SEM_BRANCH_FINI + SEM_BRANCH_FINI (vpc); #undef FLD } NEXT (vpc); @@ -640,23 +652,23 @@ if (CPU (h_cond)) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.cti.fields.fmt_beq.f +#define FLD(f) abuf->fields.sfmt_beq.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; SEM_BRANCH_INIT vpc = SEM_NEXT_VPC (sem_arg, pc, 4); if (EQSI (* FLD (i_src1), * FLD (i_src2))) { { - USI opval = FLD (f_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc, SEM_BRANCH_ADDR_CACHE (sem_arg)); + USI opval = FLD (i_disp16); + SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); } } abuf->written = written; - SEM_BRANCH_FINI + SEM_BRANCH_FINI (vpc); #undef FLD } NEXT (vpc); @@ -665,23 +677,23 @@ if (EQSI (* FLD (i_src1), * FLD (i_src2))) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.cti.fields.fmt_beqz.f +#define FLD(f) abuf->fields.sfmt_beq.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; SEM_BRANCH_INIT vpc = SEM_NEXT_VPC (sem_arg, pc, 4); if (EQSI (* FLD (i_src2), 0)) { { - USI opval = FLD (f_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc, SEM_BRANCH_ADDR_CACHE (sem_arg)); + USI opval = FLD (i_disp16); + SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); } } abuf->written = written; - SEM_BRANCH_FINI + SEM_BRANCH_FINI (vpc); #undef FLD } NEXT (vpc); @@ -690,23 +702,23 @@ if (EQSI (* FLD (i_src2), 0)) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.cti.fields.fmt_beqz.f +#define FLD(f) abuf->fields.sfmt_beq.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; SEM_BRANCH_INIT vpc = SEM_NEXT_VPC (sem_arg, pc, 4); if (GESI (* FLD (i_src2), 0)) { { - USI opval = FLD (f_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc, SEM_BRANCH_ADDR_CACHE (sem_arg)); + USI opval = FLD (i_disp16); + SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); } } abuf->written = written; - SEM_BRANCH_FINI + SEM_BRANCH_FINI (vpc); #undef FLD } NEXT (vpc); @@ -715,23 +727,23 @@ if (GESI (* FLD (i_src2), 0)) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.cti.fields.fmt_beqz.f +#define FLD(f) abuf->fields.sfmt_beq.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; SEM_BRANCH_INIT vpc = SEM_NEXT_VPC (sem_arg, pc, 4); if (GTSI (* FLD (i_src2), 0)) { { - USI opval = FLD (f_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc, SEM_BRANCH_ADDR_CACHE (sem_arg)); + USI opval = FLD (i_disp16); + SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); } } abuf->written = written; - SEM_BRANCH_FINI + SEM_BRANCH_FINI (vpc); #undef FLD } NEXT (vpc); @@ -740,23 +752,23 @@ if (GTSI (* FLD (i_src2), 0)) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.cti.fields.fmt_beqz.f +#define FLD(f) abuf->fields.sfmt_beq.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; SEM_BRANCH_INIT vpc = SEM_NEXT_VPC (sem_arg, pc, 4); if (LESI (* FLD (i_src2), 0)) { { - USI opval = FLD (f_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc, SEM_BRANCH_ADDR_CACHE (sem_arg)); + USI opval = FLD (i_disp16); + SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); } } abuf->written = written; - SEM_BRANCH_FINI + SEM_BRANCH_FINI (vpc); #undef FLD } NEXT (vpc); @@ -765,23 +777,23 @@ if (LESI (* FLD (i_src2), 0)) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.cti.fields.fmt_beqz.f +#define FLD(f) abuf->fields.sfmt_beq.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; SEM_BRANCH_INIT vpc = SEM_NEXT_VPC (sem_arg, pc, 4); if (LTSI (* FLD (i_src2), 0)) { { - USI opval = FLD (f_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc, SEM_BRANCH_ADDR_CACHE (sem_arg)); + USI opval = FLD (i_disp16); + SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); } } abuf->written = written; - SEM_BRANCH_FINI + SEM_BRANCH_FINI (vpc); #undef FLD } NEXT (vpc); @@ -790,23 +802,23 @@ if (LTSI (* FLD (i_src2), 0)) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.cti.fields.fmt_beqz.f +#define FLD(f) abuf->fields.sfmt_beq.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; SEM_BRANCH_INIT vpc = SEM_NEXT_VPC (sem_arg, pc, 4); if (NESI (* FLD (i_src2), 0)) { { - USI opval = FLD (f_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc, SEM_BRANCH_ADDR_CACHE (sem_arg)); + USI opval = FLD (i_disp16); + SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); } } abuf->written = written; - SEM_BRANCH_FINI + SEM_BRANCH_FINI (vpc); #undef FLD } NEXT (vpc); @@ -815,26 +827,26 @@ if (NESI (* FLD (i_src2), 0)) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.cti.fields.fmt_bl8.f +#define FLD(f) abuf->fields.sfmt_bl8.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; SEM_BRANCH_INIT vpc = SEM_NEXT_VPC (sem_arg, pc, 2); -do { +{ { SI opval = ADDSI (ANDSI (pc, -4), 4); CPU (h_gr[((UINT) 14)]) = opval; - TRACE_RESULT (current_cpu, abuf, "gr-14", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } { - USI opval = FLD (f_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc, SEM_BRANCH_ADDR_CACHE (sem_arg)); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); + USI opval = FLD (i_disp8); + SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); + CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); } -} while (0); +} - SEM_BRANCH_FINI + SEM_BRANCH_FINI (vpc); #undef FLD } NEXT (vpc); @@ -843,26 +855,26 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.cti.fields.fmt_bl24.f +#define FLD(f) abuf->fields.sfmt_bl24.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; SEM_BRANCH_INIT vpc = SEM_NEXT_VPC (sem_arg, pc, 4); -do { +{ { SI opval = ADDSI (pc, 4); CPU (h_gr[((UINT) 14)]) = opval; - TRACE_RESULT (current_cpu, abuf, "gr-14", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } { - USI opval = FLD (f_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc, SEM_BRANCH_ADDR_CACHE (sem_arg)); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); + USI opval = FLD (i_disp24); + SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); + CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); } -} while (0); +} - SEM_BRANCH_FINI + SEM_BRANCH_FINI (vpc); #undef FLD } NEXT (vpc); @@ -871,23 +883,23 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.cti.fields.fmt_bc8.f +#define FLD(f) abuf->fields.sfmt_bl8.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; SEM_BRANCH_INIT vpc = SEM_NEXT_VPC (sem_arg, pc, 2); if (NOTBI (CPU (h_cond))) { { - USI opval = FLD (f_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc, SEM_BRANCH_ADDR_CACHE (sem_arg)); + USI opval = FLD (i_disp8); + SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); } } abuf->written = written; - SEM_BRANCH_FINI + SEM_BRANCH_FINI (vpc); #undef FLD } NEXT (vpc); @@ -896,23 +908,23 @@ if (NOTBI (CPU (h_cond))) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.cti.fields.fmt_bc24.f +#define FLD(f) abuf->fields.sfmt_bl24.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; SEM_BRANCH_INIT vpc = SEM_NEXT_VPC (sem_arg, pc, 4); if (NOTBI (CPU (h_cond))) { { - USI opval = FLD (f_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc, SEM_BRANCH_ADDR_CACHE (sem_arg)); + USI opval = FLD (i_disp24); + SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); } } abuf->written = written; - SEM_BRANCH_FINI + SEM_BRANCH_FINI (vpc); #undef FLD } NEXT (vpc); @@ -921,23 +933,23 @@ if (NOTBI (CPU (h_cond))) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.cti.fields.fmt_beq.f +#define FLD(f) abuf->fields.sfmt_beq.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; SEM_BRANCH_INIT vpc = SEM_NEXT_VPC (sem_arg, pc, 4); if (NESI (* FLD (i_src1), * FLD (i_src2))) { { - USI opval = FLD (f_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc, SEM_BRANCH_ADDR_CACHE (sem_arg)); + USI opval = FLD (i_disp16); + SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); } } abuf->written = written; - SEM_BRANCH_FINI + SEM_BRANCH_FINI (vpc); #undef FLD } NEXT (vpc); @@ -946,19 +958,19 @@ if (NESI (* FLD (i_src1), * FLD (i_src2))) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.cti.fields.fmt_bra8.f +#define FLD(f) abuf->fields.sfmt_bl8.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; SEM_BRANCH_INIT vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { - USI opval = FLD (f_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc, SEM_BRANCH_ADDR_CACHE (sem_arg)); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); + USI opval = FLD (i_disp8); + SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); + CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); } - SEM_BRANCH_FINI + SEM_BRANCH_FINI (vpc); #undef FLD } NEXT (vpc); @@ -967,19 +979,19 @@ if (NESI (* FLD (i_src1), * FLD (i_src2))) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.cti.fields.fmt_bra24.f +#define FLD(f) abuf->fields.sfmt_bl24.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; SEM_BRANCH_INIT vpc = SEM_NEXT_VPC (sem_arg, pc, 4); { - USI opval = FLD (f_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc, SEM_BRANCH_ADDR_CACHE (sem_arg)); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); + USI opval = FLD (i_disp24); + SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); + CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); } - SEM_BRANCH_FINI + SEM_BRANCH_FINI (vpc); #undef FLD } NEXT (vpc); @@ -988,15 +1000,15 @@ if (NESI (* FLD (i_src1), * FLD (i_src2))) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_cmp.f +#define FLD(f) abuf->fields.sfmt_st_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { BI opval = LTSI (* FLD (i_src1), * FLD (i_src2)); CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "condbit", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); } #undef FLD @@ -1007,15 +1019,15 @@ if (NESI (* FLD (i_src1), * FLD (i_src2))) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_cmpi.f +#define FLD(f) abuf->fields.sfmt_st_d.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); { BI opval = LTSI (* FLD (i_src2), FLD (f_simm16)); CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "condbit", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); } #undef FLD @@ -1026,15 +1038,15 @@ if (NESI (* FLD (i_src1), * FLD (i_src2))) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_cmp.f +#define FLD(f) abuf->fields.sfmt_st_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { BI opval = LTUSI (* FLD (i_src1), * FLD (i_src2)); CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "condbit", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); } #undef FLD @@ -1045,15 +1057,15 @@ if (NESI (* FLD (i_src1), * FLD (i_src2))) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_cmpi.f +#define FLD(f) abuf->fields.sfmt_st_d.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); { BI opval = LTUSI (* FLD (i_src2), FLD (f_simm16)); CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "condbit", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); } #undef FLD @@ -1064,9 +1076,9 @@ if (NESI (* FLD (i_src1), * FLD (i_src2))) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_div.f +#define FLD(f) abuf->fields.sfmt_add.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); if (NESI (* FLD (i_sr), 0)) { @@ -1074,7 +1086,7 @@ if (NESI (* FLD (i_sr), 0)) { SI opval = DIVSI (* FLD (i_dr), * FLD (i_sr)); * FLD (i_dr) = opval; written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } } @@ -1087,9 +1099,9 @@ if (NESI (* FLD (i_sr), 0)) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_div.f +#define FLD(f) abuf->fields.sfmt_add.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); if (NESI (* FLD (i_sr), 0)) { @@ -1097,7 +1109,7 @@ if (NESI (* FLD (i_sr), 0)) { SI opval = UDIVSI (* FLD (i_dr), * FLD (i_sr)); * FLD (i_dr) = opval; written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } } @@ -1110,9 +1122,9 @@ if (NESI (* FLD (i_sr), 0)) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_div.f +#define FLD(f) abuf->fields.sfmt_add.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); if (NESI (* FLD (i_sr), 0)) { @@ -1120,7 +1132,7 @@ if (NESI (* FLD (i_sr), 0)) { SI opval = MODSI (* FLD (i_dr), * FLD (i_sr)); * FLD (i_dr) = opval; written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } } @@ -1133,9 +1145,9 @@ if (NESI (* FLD (i_sr), 0)) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_div.f +#define FLD(f) abuf->fields.sfmt_add.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); if (NESI (* FLD (i_sr), 0)) { @@ -1143,7 +1155,7 @@ if (NESI (* FLD (i_sr), 0)) { SI opval = UMODSI (* FLD (i_dr), * FLD (i_sr)); * FLD (i_dr) = opval; written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } } @@ -1156,29 +1168,29 @@ if (NESI (* FLD (i_sr), 0)) { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.cti.fields.fmt_jl.f +#define FLD(f) abuf->fields.sfmt_jl.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; SEM_BRANCH_INIT vpc = SEM_NEXT_VPC (sem_arg, pc, 2); -do { - USI temp1;SI temp0; +{ + SI temp0;USI temp1; temp0 = ADDSI (ANDSI (pc, -4), 4); temp1 = ANDSI (* FLD (i_sr), -4); { SI opval = temp0; CPU (h_gr[((UINT) 14)]) = opval; - TRACE_RESULT (current_cpu, abuf, "gr-14", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } { USI opval = temp1; SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); } -} while (0); +} - SEM_BRANCH_FINI + SEM_BRANCH_FINI (vpc); #undef FLD } NEXT (vpc); @@ -1187,19 +1199,19 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.cti.fields.fmt_jmp.f +#define FLD(f) abuf->fields.sfmt_jl.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; SEM_BRANCH_INIT vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { USI opval = ANDSI (* FLD (i_sr), -4); SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); } - SEM_BRANCH_FINI + SEM_BRANCH_FINI (vpc); #undef FLD } NEXT (vpc); @@ -1208,15 +1220,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_ld.f +#define FLD(f) abuf->fields.sfmt_ld_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { - SI opval = GETMEMSI (current_cpu, * FLD (i_sr)); + SI opval = GETMEMSI (current_cpu, pc, * FLD (i_sr)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -1227,15 +1239,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_ld_d.f +#define FLD(f) abuf->fields.sfmt_add3.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); { - SI opval = GETMEMSI (current_cpu, ADDSI (* FLD (i_sr), FLD (f_simm16))); + SI opval = GETMEMSI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16))); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -1246,15 +1258,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_ldb.f +#define FLD(f) abuf->fields.sfmt_ld_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { - SI opval = EXTQISI (GETMEMQI (current_cpu, * FLD (i_sr))); + SI opval = EXTQISI (GETMEMQI (current_cpu, pc, * FLD (i_sr))); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -1265,15 +1277,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_ldb_d.f +#define FLD(f) abuf->fields.sfmt_add3.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); { - SI opval = EXTQISI (GETMEMQI (current_cpu, ADDSI (* FLD (i_sr), FLD (f_simm16)))); + SI opval = EXTQISI (GETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)))); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -1284,15 +1296,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_ldh.f +#define FLD(f) abuf->fields.sfmt_ld_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { - SI opval = EXTHISI (GETMEMHI (current_cpu, * FLD (i_sr))); + SI opval = EXTHISI (GETMEMHI (current_cpu, pc, * FLD (i_sr))); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -1303,15 +1315,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_ldh_d.f +#define FLD(f) abuf->fields.sfmt_add3.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); { - SI opval = EXTHISI (GETMEMHI (current_cpu, ADDSI (* FLD (i_sr), FLD (f_simm16)))); + SI opval = EXTHISI (GETMEMHI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)))); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -1322,15 +1334,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_ldb.f +#define FLD(f) abuf->fields.sfmt_ld_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { - SI opval = ZEXTQISI (GETMEMQI (current_cpu, * FLD (i_sr))); + SI opval = ZEXTQISI (GETMEMQI (current_cpu, pc, * FLD (i_sr))); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -1341,15 +1353,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_ldb_d.f +#define FLD(f) abuf->fields.sfmt_add3.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); { - SI opval = ZEXTQISI (GETMEMQI (current_cpu, ADDSI (* FLD (i_sr), FLD (f_simm16)))); + SI opval = ZEXTQISI (GETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)))); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -1360,15 +1372,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_ldh.f +#define FLD(f) abuf->fields.sfmt_ld_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { - SI opval = ZEXTHISI (GETMEMHI (current_cpu, * FLD (i_sr))); + SI opval = ZEXTHISI (GETMEMHI (current_cpu, pc, * FLD (i_sr))); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -1379,15 +1391,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_ldh_d.f +#define FLD(f) abuf->fields.sfmt_add3.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); { - SI opval = ZEXTHISI (GETMEMHI (current_cpu, ADDSI (* FLD (i_sr), FLD (f_simm16)))); + SI opval = ZEXTHISI (GETMEMHI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)))); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -1398,26 +1410,26 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_ld_plus.f +#define FLD(f) abuf->fields.sfmt_ld_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); -do { - SI temp1;SI temp0; - temp0 = GETMEMSI (current_cpu, * FLD (i_sr)); +{ + SI temp0;SI temp1; + temp0 = GETMEMSI (current_cpu, pc, * FLD (i_sr)); temp1 = ADDSI (* FLD (i_sr), 4); { SI opval = temp0; * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } { SI opval = temp1; * FLD (i_sr) = opval; - TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } -} while (0); +} #undef FLD } @@ -1427,15 +1439,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_ld24.f +#define FLD(f) abuf->fields.sfmt_ld24.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); { - SI opval = FLD (f_uimm24); + SI opval = FLD (i_uimm24); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -1446,15 +1458,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_ldi8.f +#define FLD(f) abuf->fields.sfmt_addi.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { SI opval = FLD (f_simm8); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -1465,15 +1477,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_ldi16.f +#define FLD(f) abuf->fields.sfmt_add3.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); { SI opval = FLD (f_simm16); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -1484,23 +1496,23 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_lock.f +#define FLD(f) abuf->fields.sfmt_ld_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); -do { +{ { BI opval = 1; CPU (h_lock) = opval; - TRACE_RESULT (current_cpu, abuf, "lock-0", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "lock", 'x', opval); } { - SI opval = GETMEMSI (current_cpu, * FLD (i_sr)); + SI opval = GETMEMSI (current_cpu, pc, * FLD (i_sr)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } -} while (0); +} #undef FLD } @@ -1510,15 +1522,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_machi.f +#define FLD(f) abuf->fields.sfmt_st_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { - DI opval = SRADI (SLLDI (ADDDI (m32rbf_h_accum_get (current_cpu), MULDI (EXTSIDI (ANDSI (* FLD (i_src1), 0xffff0000)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16))))), 8), 8); - m32rbf_h_accum_set (current_cpu, opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); + DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUM (), MULDI (EXTSIDI (ANDSI (* FLD (i_src1), 0xffff0000)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16))))), 8), 8); + SET_H_ACCUM (opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); } #undef FLD @@ -1529,15 +1541,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_machi.f +#define FLD(f) abuf->fields.sfmt_st_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { - DI opval = SRADI (SLLDI (ADDDI (m32rbf_h_accum_get (current_cpu), MULDI (EXTSIDI (SLLSI (* FLD (i_src1), 16)), EXTHIDI (TRUNCSIHI (* FLD (i_src2))))), 8), 8); - m32rbf_h_accum_set (current_cpu, opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); + DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUM (), MULDI (EXTSIDI (SLLSI (* FLD (i_src1), 16)), EXTHIDI (TRUNCSIHI (* FLD (i_src2))))), 8), 8); + SET_H_ACCUM (opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); } #undef FLD @@ -1548,15 +1560,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_machi.f +#define FLD(f) abuf->fields.sfmt_st_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { - DI opval = SRADI (SLLDI (ADDDI (m32rbf_h_accum_get (current_cpu), MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16))))), 8), 8); - m32rbf_h_accum_set (current_cpu, opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); + DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUM (), MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16))))), 8), 8); + SET_H_ACCUM (opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); } #undef FLD @@ -1567,15 +1579,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_machi.f +#define FLD(f) abuf->fields.sfmt_st_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { - DI opval = SRADI (SLLDI (ADDDI (m32rbf_h_accum_get (current_cpu), MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (* FLD (i_src2))))), 8), 8); - m32rbf_h_accum_set (current_cpu, opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); + DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUM (), MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (* FLD (i_src2))))), 8), 8); + SET_H_ACCUM (opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); } #undef FLD @@ -1586,15 +1598,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_add.f +#define FLD(f) abuf->fields.sfmt_add.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { SI opval = MULSI (* FLD (i_dr), * FLD (i_sr)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -1605,15 +1617,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_mulhi.f +#define FLD(f) abuf->fields.sfmt_st_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { DI opval = SRADI (SLLDI (MULDI (EXTSIDI (ANDSI (* FLD (i_src1), 0xffff0000)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16)))), 16), 16); - m32rbf_h_accum_set (current_cpu, opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); + SET_H_ACCUM (opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); } #undef FLD @@ -1624,15 +1636,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_mulhi.f +#define FLD(f) abuf->fields.sfmt_st_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { DI opval = SRADI (SLLDI (MULDI (EXTSIDI (SLLSI (* FLD (i_src1), 16)), EXTHIDI (TRUNCSIHI (* FLD (i_src2)))), 16), 16); - m32rbf_h_accum_set (current_cpu, opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); + SET_H_ACCUM (opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); } #undef FLD @@ -1643,15 +1655,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_mulhi.f +#define FLD(f) abuf->fields.sfmt_st_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { DI opval = SRADI (SLLDI (MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16)))), 8), 8); - m32rbf_h_accum_set (current_cpu, opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); + SET_H_ACCUM (opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); } #undef FLD @@ -1662,15 +1674,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_mulhi.f +#define FLD(f) abuf->fields.sfmt_st_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { DI opval = SRADI (SLLDI (MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (* FLD (i_src2)))), 8), 8); - m32rbf_h_accum_set (current_cpu, opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); + SET_H_ACCUM (opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); } #undef FLD @@ -1681,15 +1693,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_mv.f +#define FLD(f) abuf->fields.sfmt_ld_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { SI opval = * FLD (i_sr); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -1700,15 +1712,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_mvfachi.f +#define FLD(f) abuf->fields.sfmt_seth.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { - SI opval = TRUNCDISI (SRADI (m32rbf_h_accum_get (current_cpu), 32)); + SI opval = TRUNCDISI (SRADI (GET_H_ACCUM (), 32)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -1719,15 +1731,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_mvfachi.f +#define FLD(f) abuf->fields.sfmt_seth.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { - SI opval = TRUNCDISI (m32rbf_h_accum_get (current_cpu)); + SI opval = TRUNCDISI (GET_H_ACCUM ()); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -1738,15 +1750,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_mvfachi.f +#define FLD(f) abuf->fields.sfmt_seth.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { - SI opval = TRUNCDISI (SRADI (m32rbf_h_accum_get (current_cpu), 16)); + SI opval = TRUNCDISI (SRADI (GET_H_ACCUM (), 16)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -1757,15 +1769,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_mvfc.f +#define FLD(f) abuf->fields.sfmt_ld_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { - SI opval = m32rbf_h_cr_get (current_cpu, FLD (f_r2)); + SI opval = GET_H_CR (FLD (f_r2)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -1776,15 +1788,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_mvtachi.f +#define FLD(f) abuf->fields.sfmt_st_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { - DI opval = ORDI (ANDDI (m32rbf_h_accum_get (current_cpu), MAKEDI (0, 0xffffffff)), SLLDI (EXTSIDI (* FLD (i_src1)), 32)); - m32rbf_h_accum_set (current_cpu, opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); + DI opval = ORDI (ANDDI (GET_H_ACCUM (), MAKEDI (0, 0xffffffff)), SLLDI (EXTSIDI (* FLD (i_src1)), 32)); + SET_H_ACCUM (opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); } #undef FLD @@ -1795,15 +1807,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_mvtachi.f +#define FLD(f) abuf->fields.sfmt_st_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { - DI opval = ORDI (ANDDI (m32rbf_h_accum_get (current_cpu), MAKEDI (0xffffffff, 0)), ZEXTSIDI (* FLD (i_src1))); - m32rbf_h_accum_set (current_cpu, opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); + DI opval = ORDI (ANDDI (GET_H_ACCUM (), MAKEDI (0xffffffff, 0)), ZEXTSIDI (* FLD (i_src1))); + SET_H_ACCUM (opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); } #undef FLD @@ -1814,15 +1826,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_mvtc.f +#define FLD(f) abuf->fields.sfmt_ld_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { USI opval = * FLD (i_sr); - m32rbf_h_cr_set (current_cpu, FLD (f_r1), opval); - TRACE_RESULT (current_cpu, abuf, "dcr", 'x', opval); + SET_H_CR (FLD (f_r1), opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); } #undef FLD @@ -1833,15 +1845,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_mv.f +#define FLD(f) abuf->fields.sfmt_ld_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { SI opval = NEGSI (* FLD (i_sr)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -1852,9 +1864,9 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_nop.f +#define FLD(f) abuf->fields.sfmt_empty.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); PROFILE_COUNT_FILLNOPS (current_cpu, abuf->addr); @@ -1867,15 +1879,15 @@ PROFILE_COUNT_FILLNOPS (current_cpu, abuf->addr); { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_mv.f +#define FLD(f) abuf->fields.sfmt_ld_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { SI opval = INVSI (* FLD (i_sr)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -1886,21 +1898,21 @@ PROFILE_COUNT_FILLNOPS (current_cpu, abuf->addr); { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_rac.f +#define FLD(f) abuf->fields.sfmt_empty.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); -do { +{ DI tmp_tmp1; - tmp_tmp1 = SLLDI (m32rbf_h_accum_get (current_cpu), 1); + tmp_tmp1 = SLLDI (GET_H_ACCUM (), 1); tmp_tmp1 = ADDDI (tmp_tmp1, MAKEDI (0, 32768)); { DI opval = (GTDI (tmp_tmp1, MAKEDI (32767, 0xffff0000))) ? (MAKEDI (32767, 0xffff0000)) : (LTDI (tmp_tmp1, MAKEDI (0xffff8000, 0))) ? (MAKEDI (0xffff8000, 0)) : (ANDDI (tmp_tmp1, MAKEDI (0xffffffff, 0xffff0000))); - m32rbf_h_accum_set (current_cpu, opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); + SET_H_ACCUM (opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); } -} while (0); +} #undef FLD } @@ -1910,30 +1922,30 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_rac.f +#define FLD(f) abuf->fields.sfmt_empty.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); -do { +{ DI tmp_tmp1; - tmp_tmp1 = ANDDI (m32rbf_h_accum_get (current_cpu), MAKEDI (16777215, 0xffffffff)); + tmp_tmp1 = ANDDI (GET_H_ACCUM (), MAKEDI (16777215, 0xffffffff)); if (ANDIF (GEDI (tmp_tmp1, MAKEDI (16383, 0x80000000)), LEDI (tmp_tmp1, MAKEDI (8388607, 0xffffffff)))) { tmp_tmp1 = MAKEDI (16383, 0x80000000); } else { if (ANDIF (GEDI (tmp_tmp1, MAKEDI (8388608, 0)), LEDI (tmp_tmp1, MAKEDI (16760832, 0)))) { tmp_tmp1 = MAKEDI (16760832, 0); } else { - tmp_tmp1 = ANDDI (ADDDI (m32rbf_h_accum_get (current_cpu), MAKEDI (0, 1073741824)), MAKEDI (0xffffffff, 0x80000000)); + tmp_tmp1 = ANDDI (ADDDI (GET_H_ACCUM (), MAKEDI (0, 1073741824)), MAKEDI (0xffffffff, 0x80000000)); } } tmp_tmp1 = SLLDI (tmp_tmp1, 1); { DI opval = SRADI (SLLDI (tmp_tmp1, 7), 7); - m32rbf_h_accum_set (current_cpu, opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); + SET_H_ACCUM (opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); } -} while (0); +} #undef FLD } @@ -1943,36 +1955,36 @@ if (ANDIF (GEDI (tmp_tmp1, MAKEDI (8388608, 0)), LEDI (tmp_tmp1, MAKEDI (1676083 { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.cti.fields.fmt_rte.f +#define FLD(f) abuf->fields.sfmt_empty.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; SEM_BRANCH_INIT vpc = SEM_NEXT_VPC (sem_arg, pc, 2); -do { +{ { - USI opval = ANDSI (m32rbf_h_cr_get (current_cpu, ((UINT) 6)), -4); + USI opval = ANDSI (GET_H_CR (((UINT) 6)), -4); SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); } { - USI opval = m32rbf_h_cr_get (current_cpu, ((UINT) 14)); - m32rbf_h_cr_set (current_cpu, ((UINT) 6), opval); - TRACE_RESULT (current_cpu, abuf, "cr-6", 'x', opval); + USI opval = GET_H_CR (((UINT) 14)); + SET_H_CR (((UINT) 6), opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); } { UQI opval = CPU (h_bpsw); - m32rbf_h_psw_set (current_cpu, opval); - TRACE_RESULT (current_cpu, abuf, "psw-0", 'x', opval); + SET_H_PSW (opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "psw", 'x', opval); } { UQI opval = CPU (h_bbpsw); CPU (h_bpsw) = opval; - TRACE_RESULT (current_cpu, abuf, "bpsw-0", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "bpsw", 'x', opval); } -} while (0); +} - SEM_BRANCH_FINI + SEM_BRANCH_FINI (vpc); #undef FLD } NEXT (vpc); @@ -1981,15 +1993,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_seth.f +#define FLD(f) abuf->fields.sfmt_seth.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); { SI opval = SLLSI (FLD (f_hi16), 16); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -2000,15 +2012,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_add.f +#define FLD(f) abuf->fields.sfmt_add.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { SI opval = SLLSI (* FLD (i_dr), ANDSI (* FLD (i_sr), 31)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -2019,15 +2031,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_sll3.f +#define FLD(f) abuf->fields.sfmt_add3.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); { SI opval = SLLSI (* FLD (i_sr), ANDSI (FLD (f_simm16), 31)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -2038,15 +2050,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_slli.f +#define FLD(f) abuf->fields.sfmt_slli.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { SI opval = SLLSI (* FLD (i_dr), FLD (f_uimm5)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -2057,15 +2069,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_add.f +#define FLD(f) abuf->fields.sfmt_add.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { SI opval = SRASI (* FLD (i_dr), ANDSI (* FLD (i_sr), 31)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -2076,15 +2088,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_sll3.f +#define FLD(f) abuf->fields.sfmt_add3.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); { SI opval = SRASI (* FLD (i_sr), ANDSI (FLD (f_simm16), 31)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -2095,15 +2107,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_slli.f +#define FLD(f) abuf->fields.sfmt_slli.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { SI opval = SRASI (* FLD (i_dr), FLD (f_uimm5)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -2114,15 +2126,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_add.f +#define FLD(f) abuf->fields.sfmt_add.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { SI opval = SRLSI (* FLD (i_dr), ANDSI (* FLD (i_sr), 31)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -2133,15 +2145,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_sll3.f +#define FLD(f) abuf->fields.sfmt_add3.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); { SI opval = SRLSI (* FLD (i_sr), ANDSI (FLD (f_simm16), 31)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -2152,15 +2164,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_slli.f +#define FLD(f) abuf->fields.sfmt_slli.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { SI opval = SRLSI (* FLD (i_dr), FLD (f_uimm5)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -2171,15 +2183,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_st.f +#define FLD(f) abuf->fields.sfmt_st_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, * FLD (i_src2), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); + SETMEMSI (current_cpu, pc, * FLD (i_src2), opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); } #undef FLD @@ -2190,15 +2202,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_st_d.f +#define FLD(f) abuf->fields.sfmt_st_d.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); { SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, ADDSI (* FLD (i_src2), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); + SETMEMSI (current_cpu, pc, ADDSI (* FLD (i_src2), FLD (f_simm16)), opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); } #undef FLD @@ -2209,15 +2221,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_stb.f +#define FLD(f) abuf->fields.sfmt_st_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { QI opval = * FLD (i_src1); - SETMEMQI (current_cpu, * FLD (i_src2), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); + SETMEMQI (current_cpu, pc, * FLD (i_src2), opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); } #undef FLD @@ -2228,15 +2240,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_stb_d.f +#define FLD(f) abuf->fields.sfmt_st_d.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); { QI opval = * FLD (i_src1); - SETMEMQI (current_cpu, ADDSI (* FLD (i_src2), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); + SETMEMQI (current_cpu, pc, ADDSI (* FLD (i_src2), FLD (f_simm16)), opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); } #undef FLD @@ -2247,15 +2259,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_sth.f +#define FLD(f) abuf->fields.sfmt_st_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { HI opval = * FLD (i_src1); - SETMEMHI (current_cpu, * FLD (i_src2), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); + SETMEMHI (current_cpu, pc, * FLD (i_src2), opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); } #undef FLD @@ -2266,15 +2278,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_sth_d.f +#define FLD(f) abuf->fields.sfmt_st_d.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); { HI opval = * FLD (i_src1); - SETMEMHI (current_cpu, ADDSI (* FLD (i_src2), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); + SETMEMHI (current_cpu, pc, ADDSI (* FLD (i_src2), FLD (f_simm16)), opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); } #undef FLD @@ -2285,25 +2297,25 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_st_plus.f +#define FLD(f) abuf->fields.sfmt_st_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); -do { +{ SI tmp_new_src2; tmp_new_src2 = ADDSI (* FLD (i_src2), 4); { SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, tmp_new_src2, opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); + SETMEMSI (current_cpu, pc, tmp_new_src2, opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); } { SI opval = tmp_new_src2; * FLD (i_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "src2", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } -} while (0); +} #undef FLD } @@ -2313,25 +2325,25 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_st_plus.f +#define FLD(f) abuf->fields.sfmt_st_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); -do { +{ SI tmp_new_src2; tmp_new_src2 = SUBSI (* FLD (i_src2), 4); { SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, tmp_new_src2, opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); + SETMEMSI (current_cpu, pc, tmp_new_src2, opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); } { SI opval = tmp_new_src2; * FLD (i_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "src2", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } -} while (0); +} #undef FLD } @@ -2341,15 +2353,15 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_add.f +#define FLD(f) abuf->fields.sfmt_add.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); { SI opval = SUBSI (* FLD (i_dr), * FLD (i_sr)); * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } #undef FLD @@ -2360,26 +2372,26 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_addv.f +#define FLD(f) abuf->fields.sfmt_add.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); -do { - BI temp1;SI temp0; +{ + SI temp0;BI temp1; temp0 = SUBSI (* FLD (i_dr), * FLD (i_sr)); temp1 = SUBOFSI (* FLD (i_dr), * FLD (i_sr), 0); { SI opval = temp0; * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } { BI opval = temp1; CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "condbit", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); } -} while (0); +} #undef FLD } @@ -2389,26 +2401,26 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_addx.f +#define FLD(f) abuf->fields.sfmt_add.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); -do { - BI temp1;SI temp0; +{ + SI temp0;BI temp1; temp0 = SUBCSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); temp1 = SUBCFSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); { SI opval = temp0; * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "dr", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); } { BI opval = temp1; CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "condbit", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); } -} while (0); +} #undef FLD } @@ -2418,46 +2430,46 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.cti.fields.fmt_trap.f +#define FLD(f) abuf->fields.sfmt_trap.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; SEM_BRANCH_INIT vpc = SEM_NEXT_VPC (sem_arg, pc, 2); -do { +{ { - USI opval = m32rbf_h_cr_get (current_cpu, ((UINT) 6)); - m32rbf_h_cr_set (current_cpu, ((UINT) 14), opval); - TRACE_RESULT (current_cpu, abuf, "cr-14", 'x', opval); + USI opval = GET_H_CR (((UINT) 6)); + SET_H_CR (((UINT) 14), opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); } { USI opval = ADDSI (pc, 4); - m32rbf_h_cr_set (current_cpu, ((UINT) 6), opval); - TRACE_RESULT (current_cpu, abuf, "cr-6", 'x', opval); + SET_H_CR (((UINT) 6), opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); } { UQI opval = CPU (h_bpsw); CPU (h_bbpsw) = opval; - TRACE_RESULT (current_cpu, abuf, "bbpsw-0", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "bbpsw", 'x', opval); } { - UQI opval = m32rbf_h_psw_get (current_cpu); + UQI opval = GET_H_PSW (); CPU (h_bpsw) = opval; - TRACE_RESULT (current_cpu, abuf, "bpsw-0", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "bpsw", 'x', opval); } { - UQI opval = ANDQI (m32rbf_h_psw_get (current_cpu), 128); - m32rbf_h_psw_set (current_cpu, opval); - TRACE_RESULT (current_cpu, abuf, "psw-0", 'x', opval); + UQI opval = ANDQI (GET_H_PSW (), 128); + SET_H_PSW (opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "psw", 'x', opval); } { SI opval = m32r_trap (current_cpu, pc, FLD (f_uimm4)); SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); } -} while (0); +} - SEM_BRANCH_FINI + SEM_BRANCH_FINI (vpc); #undef FLD } NEXT (vpc); @@ -2466,32 +2478,127 @@ do { { SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_unlock.f +#define FLD(f) abuf->fields.sfmt_st_plus.f int UNUSED written = 0; - PCADDR UNUSED pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 2); -do { +{ if (CPU (h_lock)) { { SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, * FLD (i_src2), opval); - written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); + SETMEMSI (current_cpu, pc, * FLD (i_src2), opval); + written |= (1 << 4); + CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); } } { BI opval = 0; CPU (h_lock) = opval; - TRACE_RESULT (current_cpu, abuf, "lock-0", 'x', opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "lock", 'x', opval); } -} while (0); +} abuf->written = written; #undef FLD } NEXT (vpc); + CASE (sem, INSN_CLRPSW) : /* clrpsw $uimm8 */ +{ + SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); + ARGBUF *abuf = SEM_ARGBUF (sem_arg); +#define FLD(f) abuf->fields.sfmt_clrpsw.f + int UNUSED written = 0; + IADDR UNUSED pc = abuf->addr; + vpc = SEM_NEXT_VPC (sem_arg, pc, 2); + + { + USI opval = ANDSI (GET_H_CR (((UINT) 0)), ORSI (ZEXTQISI (INVQI (FLD (f_uimm8))), 65280)); + SET_H_CR (((UINT) 0), opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); + } + +#undef FLD +} + NEXT (vpc); + + CASE (sem, INSN_SETPSW) : /* setpsw $uimm8 */ +{ + SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); + ARGBUF *abuf = SEM_ARGBUF (sem_arg); +#define FLD(f) abuf->fields.sfmt_clrpsw.f + int UNUSED written = 0; + IADDR UNUSED pc = abuf->addr; + vpc = SEM_NEXT_VPC (sem_arg, pc, 2); + + { + USI opval = FLD (f_uimm8); + SET_H_CR (((UINT) 0), opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); + } + +#undef FLD +} + NEXT (vpc); + + CASE (sem, INSN_BSET) : /* bset $uimm3,@($slo16,$sr) */ +{ + SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); + ARGBUF *abuf = SEM_ARGBUF (sem_arg); +#define FLD(f) abuf->fields.sfmt_bset.f + int UNUSED written = 0; + IADDR UNUSED pc = abuf->addr; + vpc = SEM_NEXT_VPC (sem_arg, pc, 4); + + { + QI opval = ORQI (GETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16))), SLLQI (1, SUBSI (7, FLD (f_uimm3)))); + SETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)), opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); + } + +#undef FLD +} + NEXT (vpc); + + CASE (sem, INSN_BCLR) : /* bclr $uimm3,@($slo16,$sr) */ +{ + SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); + ARGBUF *abuf = SEM_ARGBUF (sem_arg); +#define FLD(f) abuf->fields.sfmt_bset.f + int UNUSED written = 0; + IADDR UNUSED pc = abuf->addr; + vpc = SEM_NEXT_VPC (sem_arg, pc, 4); + + { + QI opval = ANDQI (GETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16))), INVQI (SLLQI (1, SUBSI (7, FLD (f_uimm3))))); + SETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)), opval); + CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); + } + +#undef FLD +} + NEXT (vpc); + + CASE (sem, INSN_BTST) : /* btst $uimm3,$sr */ +{ + SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); + ARGBUF *abuf = SEM_ARGBUF (sem_arg); +#define FLD(f) abuf->fields.sfmt_bset.f + int UNUSED written = 0; + IADDR UNUSED pc = abuf->addr; + vpc = SEM_NEXT_VPC (sem_arg, pc, 2); + + { + BI opval = ANDQI (SRLQI (* FLD (i_sr), SUBSI (7, FLD (f_uimm3))), 1); + CPU (h_cond) = opval; + CGEN_TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); + } + +#undef FLD +} + NEXT (vpc); + } ENDSWITCH (sem) /* End of semantic switch. */