coff object_p memory leaks
[deliverable/binutils-gdb.git] / sim / sh64 / sem-compact-switch.c
index 59270e8390521d939e2d689df7ece1bf45b6e889..ab6cbef3589ce8219650a5cb4c2bd91a0c910e2e 100644 (file)
@@ -2,23 +2,22 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+Copyright 1996-2019 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 <http://www.gnu.org/licenses/>.
 
 */
 
@@ -69,6 +68,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
     { SH64_COMPACT_INSN_DIV0S_COMPACT, && case_sem_INSN_DIV0S_COMPACT },
     { SH64_COMPACT_INSN_DIV0U_COMPACT, && case_sem_INSN_DIV0U_COMPACT },
     { SH64_COMPACT_INSN_DIV1_COMPACT, && case_sem_INSN_DIV1_COMPACT },
+    { SH64_COMPACT_INSN_DIVU_COMPACT, && case_sem_INSN_DIVU_COMPACT },
+    { SH64_COMPACT_INSN_MULR_COMPACT, && case_sem_INSN_MULR_COMPACT },
     { SH64_COMPACT_INSN_DMULSL_COMPACT, && case_sem_INSN_DMULSL_COMPACT },
     { SH64_COMPACT_INSN_DMULUL_COMPACT, && case_sem_INSN_DMULUL_COMPACT },
     { SH64_COMPACT_INSN_DT_COMPACT, && case_sem_INSN_DT_COMPACT },
@@ -96,6 +97,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
     { SH64_COMPACT_INSN_FMOV5_COMPACT, && case_sem_INSN_FMOV5_COMPACT },
     { SH64_COMPACT_INSN_FMOV6_COMPACT, && case_sem_INSN_FMOV6_COMPACT },
     { SH64_COMPACT_INSN_FMOV7_COMPACT, && case_sem_INSN_FMOV7_COMPACT },
+    { SH64_COMPACT_INSN_FMOV8_COMPACT, && case_sem_INSN_FMOV8_COMPACT },
+    { SH64_COMPACT_INSN_FMOV9_COMPACT, && case_sem_INSN_FMOV9_COMPACT },
     { SH64_COMPACT_INSN_FMUL_COMPACT, && case_sem_INSN_FMUL_COMPACT },
     { SH64_COMPACT_INSN_FNEG_COMPACT, && case_sem_INSN_FNEG_COMPACT },
     { SH64_COMPACT_INSN_FRCHG_COMPACT, && case_sem_INSN_FRCHG_COMPACT },
@@ -107,8 +110,11 @@ with this program; if not, write to the Free Software Foundation, Inc.,
     { SH64_COMPACT_INSN_FTRV_COMPACT, && case_sem_INSN_FTRV_COMPACT },
     { SH64_COMPACT_INSN_JMP_COMPACT, && case_sem_INSN_JMP_COMPACT },
     { SH64_COMPACT_INSN_JSR_COMPACT, && case_sem_INSN_JSR_COMPACT },
-    { SH64_COMPACT_INSN_LDC_COMPACT, && case_sem_INSN_LDC_COMPACT },
-    { SH64_COMPACT_INSN_LDCL_COMPACT, && case_sem_INSN_LDCL_COMPACT },
+    { SH64_COMPACT_INSN_LDC_GBR_COMPACT, && case_sem_INSN_LDC_GBR_COMPACT },
+    { SH64_COMPACT_INSN_LDC_VBR_COMPACT, && case_sem_INSN_LDC_VBR_COMPACT },
+    { SH64_COMPACT_INSN_LDC_SR_COMPACT, && case_sem_INSN_LDC_SR_COMPACT },
+    { SH64_COMPACT_INSN_LDCL_GBR_COMPACT, && case_sem_INSN_LDCL_GBR_COMPACT },
+    { SH64_COMPACT_INSN_LDCL_VBR_COMPACT, && case_sem_INSN_LDCL_VBR_COMPACT },
     { SH64_COMPACT_INSN_LDS_FPSCR_COMPACT, && case_sem_INSN_LDS_FPSCR_COMPACT },
     { SH64_COMPACT_INSN_LDSL_FPSCR_COMPACT, && case_sem_INSN_LDSL_FPSCR_COMPACT },
     { SH64_COMPACT_INSN_LDS_FPUL_COMPACT, && case_sem_INSN_LDS_FPUL_COMPACT },
@@ -123,6 +129,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
     { SH64_COMPACT_INSN_MACW_COMPACT, && case_sem_INSN_MACW_COMPACT },
     { SH64_COMPACT_INSN_MOV_COMPACT, && case_sem_INSN_MOV_COMPACT },
     { SH64_COMPACT_INSN_MOVI_COMPACT, && case_sem_INSN_MOVI_COMPACT },
+    { SH64_COMPACT_INSN_MOVI20_COMPACT, && case_sem_INSN_MOVI20_COMPACT },
     { SH64_COMPACT_INSN_MOVB1_COMPACT, && case_sem_INSN_MOVB1_COMPACT },
     { SH64_COMPACT_INSN_MOVB2_COMPACT, && case_sem_INSN_MOVB2_COMPACT },
     { SH64_COMPACT_INSN_MOVB3_COMPACT, && case_sem_INSN_MOVB3_COMPACT },
@@ -144,6 +151,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
     { SH64_COMPACT_INSN_MOVL9_COMPACT, && case_sem_INSN_MOVL9_COMPACT },
     { SH64_COMPACT_INSN_MOVL10_COMPACT, && case_sem_INSN_MOVL10_COMPACT },
     { SH64_COMPACT_INSN_MOVL11_COMPACT, && case_sem_INSN_MOVL11_COMPACT },
+    { SH64_COMPACT_INSN_MOVL12_COMPACT, && case_sem_INSN_MOVL12_COMPACT },
+    { SH64_COMPACT_INSN_MOVL13_COMPACT, && case_sem_INSN_MOVL13_COMPACT },
     { SH64_COMPACT_INSN_MOVW1_COMPACT, && case_sem_INSN_MOVW1_COMPACT },
     { SH64_COMPACT_INSN_MOVW2_COMPACT, && case_sem_INSN_MOVW2_COMPACT },
     { SH64_COMPACT_INSN_MOVW3_COMPACT, && case_sem_INSN_MOVW3_COMPACT },
@@ -157,7 +166,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
     { SH64_COMPACT_INSN_MOVW11_COMPACT, && case_sem_INSN_MOVW11_COMPACT },
     { SH64_COMPACT_INSN_MOVA_COMPACT, && case_sem_INSN_MOVA_COMPACT },
     { SH64_COMPACT_INSN_MOVCAL_COMPACT, && case_sem_INSN_MOVCAL_COMPACT },
+    { SH64_COMPACT_INSN_MOVCOL_COMPACT, && case_sem_INSN_MOVCOL_COMPACT },
     { SH64_COMPACT_INSN_MOVT_COMPACT, && case_sem_INSN_MOVT_COMPACT },
+    { SH64_COMPACT_INSN_MOVUAL_COMPACT, && case_sem_INSN_MOVUAL_COMPACT },
+    { SH64_COMPACT_INSN_MOVUAL2_COMPACT, && case_sem_INSN_MOVUAL2_COMPACT },
     { SH64_COMPACT_INSN_MULL_COMPACT, && case_sem_INSN_MULL_COMPACT },
     { SH64_COMPACT_INSN_MULSW_COMPACT, && case_sem_INSN_MULSW_COMPACT },
     { SH64_COMPACT_INSN_MULUW_COMPACT, && case_sem_INSN_MULUW_COMPACT },
@@ -192,7 +204,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
     { SH64_COMPACT_INSN_SHLR8_COMPACT, && case_sem_INSN_SHLR8_COMPACT },
     { SH64_COMPACT_INSN_SHLR16_COMPACT, && case_sem_INSN_SHLR16_COMPACT },
     { SH64_COMPACT_INSN_STC_GBR_COMPACT, && case_sem_INSN_STC_GBR_COMPACT },
+    { SH64_COMPACT_INSN_STC_VBR_COMPACT, && case_sem_INSN_STC_VBR_COMPACT },
     { SH64_COMPACT_INSN_STCL_GBR_COMPACT, && case_sem_INSN_STCL_GBR_COMPACT },
+    { SH64_COMPACT_INSN_STCL_VBR_COMPACT, && case_sem_INSN_STCL_VBR_COMPACT },
     { SH64_COMPACT_INSN_STS_FPSCR_COMPACT, && case_sem_INSN_STS_FPSCR_COMPACT },
     { SH64_COMPACT_INSN_STSL_FPSCR_COMPACT, && case_sem_INSN_STSL_FPSCR_COMPACT },
     { SH64_COMPACT_INSN_STS_FPUL_COMPACT, && case_sem_INSN_STS_FPUL_COMPACT },
@@ -237,21 +251,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
-#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
-#else
-#define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_/**/attr)
-#endif
 
 {
 
@@ -282,7 +292,7 @@ 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;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
@@ -307,7 +317,7 @@ 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;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
@@ -326,7 +336,7 @@ 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;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
@@ -345,7 +355,7 @@ 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;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
@@ -373,7 +383,7 @@ 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;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
@@ -395,7 +405,7 @@ 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;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
@@ -424,7 +434,7 @@ 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.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -432,7 +442,7 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case)
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rn)), GET_H_GRC (FLD (f_rm)));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -451,7 +461,7 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case)
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rn)), EXTQISI (ANDQI (FLD (f_imm8), 255)));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -462,7 +472,7 @@ 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.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -473,12 +483,12 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case)
   {
     SI opval = ADDCSI (GET_H_GRC (FLD (f_rn)), GET_H_GRC (FLD (f_rm)), GET_H_TBIT ());
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   {
     BI opval = tmp_flag;
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 }
 
@@ -490,7 +500,7 @@ 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.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -501,12 +511,12 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case)
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rn)), GET_H_GRC (FLD (f_rm)));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   {
     BI opval = tmp_t;
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 }
 
@@ -518,7 +528,7 @@ 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.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -526,7 +536,7 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case)
   {
     DI opval = ANDDI (GET_H_GR (FLD (f_rm)), GET_H_GR (FLD (f_rn)));
     SET_H_GR (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn64", 'D', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'D', opval);
   }
 
 #undef FLD
@@ -545,7 +555,7 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case)
   {
     SI opval = ANDSI (GET_H_GRC (((UINT) 0)), ZEXTSIDI (FLD (f_imm8)));
     SET_H_GRC (((UINT) 0), opval);
-    TRACE_RESULT (current_cpu, abuf, "r0", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -569,7 +579,7 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case)
   {
     UQI opval = tmp_data;
     SETMEMUQI (current_cpu, pc, tmp_addr, opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
 }
 
@@ -592,7 +602,7 @@ if (NOTBI (GET_H_TBIT ())) {
     UDI opval = FLD (i_disp8);
     SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
     written |= (1 << 2);
-    TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
   }
 }
 
@@ -613,14 +623,23 @@ if (NOTBI (GET_H_TBIT ())) {
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
 if (NOTBI (GET_H_TBIT ())) {
+{
+  {
+    UDI opval = ADDDI (pc, 2);
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+((void) 0); /*nop*/
 {
   {
     UDI opval = FLD (i_disp8);
     SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
-    written |= (1 << 2);
-    TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
   }
 }
+}
 }
 
   abuf->written = written;
@@ -639,12 +658,20 @@ if (NOTBI (GET_H_TBIT ())) {
   SEM_BRANCH_INIT
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
+{
+  {
+    UDI opval = ADDDI (pc, 2);
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+((void) 0); /*nop*/
 {
   {
     UDI opval = FLD (i_disp12);
     SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
-    TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
   }
+}
 }
 
   SEM_BRANCH_FINI (vpc);
@@ -662,12 +689,20 @@ if (NOTBI (GET_H_TBIT ())) {
   SEM_BRANCH_INIT
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
+{
+  {
+    UDI opval = ADDDI (pc, 2);
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+((void) 0); /*nop*/
 {
   {
     UDI opval = ADDDI (EXTSIDI (GET_H_GRC (FLD (f_rn))), ADDDI (pc, 4));
     SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
-    TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
   }
+}
 }
 
   SEM_BRANCH_FINI (vpc);
@@ -679,7 +714,7 @@ if (NOTBI (GET_H_TBIT ())) {
 {
   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;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -705,12 +740,20 @@ sh64_break (current_cpu, pc);
   {
     SI opval = ADDDI (pc, 4);
     SET_H_PR (opval);
-    TRACE_RESULT (current_cpu, abuf, "pr", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pr", 'x', opval);
   }
+}
+  {
+    UDI opval = ADDDI (pc, 2);
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+((void) 0); /*nop*/
+{
   {
     UDI opval = FLD (i_disp12);
     SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
-    TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
   }
 }
 }
@@ -735,12 +778,20 @@ sh64_break (current_cpu, pc);
   {
     SI opval = ADDDI (pc, 4);
     SET_H_PR (opval);
-    TRACE_RESULT (current_cpu, abuf, "pr", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pr", 'x', opval);
   }
+}
+  {
+    UDI opval = ADDDI (pc, 2);
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+((void) 0); /*nop*/
+{
   {
     UDI opval = ADDDI (EXTSIDI (GET_H_GRC (FLD (f_rn))), ADDDI (pc, 4));
     SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
-    TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
   }
 }
 }
@@ -765,7 +816,7 @@ if (GET_H_TBIT ()) {
     UDI opval = FLD (i_disp8);
     SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
     written |= (1 << 2);
-    TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
   }
 }
 
@@ -786,14 +837,23 @@ if (GET_H_TBIT ()) {
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
 if (GET_H_TBIT ()) {
+{
+  {
+    UDI opval = ADDDI (pc, 2);
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+((void) 0); /*nop*/
 {
   {
     UDI opval = FLD (i_disp8);
     SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
-    written |= (1 << 2);
-    TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
   }
 }
+}
 }
 
   abuf->written = written;
@@ -806,7 +866,7 @@ if (GET_H_TBIT ()) {
 {
   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;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -815,12 +875,12 @@ if (GET_H_TBIT ()) {
   {
     SI opval = 0;
     SET_H_MACL (opval);
-    TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
   }
   {
     SI opval = 0;
     SET_H_MACH (opval);
-    TRACE_RESULT (current_cpu, abuf, "mach", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mach", 'x', opval);
   }
 }
 
@@ -832,7 +892,7 @@ if (GET_H_TBIT ()) {
 {
   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;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -840,7 +900,7 @@ if (GET_H_TBIT ()) {
   {
     BI opval = 0;
     SET_H_SBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "sbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sbit", 'x', opval);
   }
 
 #undef FLD
@@ -851,7 +911,7 @@ if (GET_H_TBIT ()) {
 {
   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;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -859,7 +919,7 @@ if (GET_H_TBIT ()) {
   {
     BI opval = 0;
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 
 #undef FLD
@@ -870,7 +930,7 @@ if (GET_H_TBIT ()) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -878,7 +938,7 @@ if (GET_H_TBIT ()) {
   {
     BI opval = EQSI (GET_H_GRC (FLD (f_rm)), GET_H_GRC (FLD (f_rn)));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 
 #undef FLD
@@ -897,7 +957,7 @@ if (GET_H_TBIT ()) {
   {
     BI opval = EQSI (GET_H_GRC (((UINT) 0)), EXTQISI (ANDQI (FLD (f_imm8), 255)));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 
 #undef FLD
@@ -908,7 +968,7 @@ if (GET_H_TBIT ()) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -916,7 +976,7 @@ if (GET_H_TBIT ()) {
   {
     BI opval = GESI (GET_H_GRC (FLD (f_rn)), GET_H_GRC (FLD (f_rm)));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 
 #undef FLD
@@ -927,7 +987,7 @@ if (GET_H_TBIT ()) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -935,7 +995,7 @@ if (GET_H_TBIT ()) {
   {
     BI opval = GTSI (GET_H_GRC (FLD (f_rn)), GET_H_GRC (FLD (f_rm)));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 
 #undef FLD
@@ -946,7 +1006,7 @@ if (GET_H_TBIT ()) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -954,7 +1014,7 @@ if (GET_H_TBIT ()) {
   {
     BI opval = GTUSI (GET_H_GRC (FLD (f_rn)), GET_H_GRC (FLD (f_rm)));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 
 #undef FLD
@@ -965,7 +1025,7 @@ if (GET_H_TBIT ()) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -973,7 +1033,7 @@ if (GET_H_TBIT ()) {
   {
     BI opval = GEUSI (GET_H_GRC (FLD (f_rn)), GET_H_GRC (FLD (f_rm)));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 
 #undef FLD
@@ -992,7 +1052,7 @@ if (GET_H_TBIT ()) {
   {
     BI opval = GTSI (GET_H_GRC (FLD (f_rn)), 0);
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 
 #undef FLD
@@ -1011,7 +1071,7 @@ if (GET_H_TBIT ()) {
   {
     BI opval = GESI (GET_H_GRC (FLD (f_rn)), 0);
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 
 #undef FLD
@@ -1022,7 +1082,7 @@ if (GET_H_TBIT ()) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -1038,7 +1098,7 @@ if (GET_H_TBIT ()) {
   {
     BI opval = ((GTUBI (tmp_t, 0)) ? (1) : (0));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 }
 
@@ -1050,7 +1110,7 @@ if (GET_H_TBIT ()) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -1059,17 +1119,17 @@ if (GET_H_TBIT ()) {
   {
     BI opval = SRLSI (GET_H_GRC (FLD (f_rn)), 31);
     SET_H_QBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
   }
   {
     BI opval = SRLSI (GET_H_GRC (FLD (f_rm)), 31);
     SET_H_MBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "mbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mbit", 'x', opval);
   }
   {
     BI opval = ((EQSI (SRLSI (GET_H_GRC (FLD (f_rm)), 31), SRLSI (GET_H_GRC (FLD (f_rn)), 31))) ? (0) : (1));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 }
 
@@ -1081,7 +1141,7 @@ if (GET_H_TBIT ()) {
 {
   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;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -1090,17 +1150,17 @@ if (GET_H_TBIT ()) {
   {
     BI opval = 0;
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
   {
     BI opval = 0;
     SET_H_QBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
   }
   {
     BI opval = 0;
     SET_H_MBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "mbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mbit", 'x', opval);
   }
 }
 
@@ -1112,7 +1172,7 @@ if (GET_H_TBIT ()) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -1125,12 +1185,12 @@ if (GET_H_TBIT ()) {
   {
     BI opval = SRLSI (GET_H_GRC (FLD (f_rn)), 31);
     SET_H_QBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
   }
   {
     SI opval = ORSI (SLLSI (GET_H_GRC (FLD (f_rn)), 1), ZEXTBISI (GET_H_TBIT ()));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 if (NOTBI (tmp_oldq)) {
 if (NOTBI (GET_H_MBIT ())) {
@@ -1139,20 +1199,20 @@ if (NOTBI (GET_H_MBIT ())) {
   {
     SI opval = SUBSI (GET_H_GRC (FLD (f_rn)), GET_H_GRC (FLD (f_rm)));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   tmp_tmp1 = GTUSI (GET_H_GRC (FLD (f_rn)), tmp_tmp0);
 if (NOTBI (GET_H_QBIT ())) {
   {
     BI opval = ((tmp_tmp1) ? (1) : (0));
     SET_H_QBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
   }
 } else {
   {
     BI opval = ((EQQI (tmp_tmp1, 0)) ? (1) : (0));
     SET_H_QBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
   }
 }
 }
@@ -1162,20 +1222,20 @@ if (NOTBI (GET_H_QBIT ())) {
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rn)), GET_H_GRC (FLD (f_rm)));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   tmp_tmp1 = LTUSI (GET_H_GRC (FLD (f_rn)), tmp_tmp0);
 if (NOTBI (GET_H_QBIT ())) {
   {
     BI opval = ((EQQI (tmp_tmp1, 0)) ? (1) : (0));
     SET_H_QBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
   }
 } else {
   {
     BI opval = ((tmp_tmp1) ? (1) : (0));
     SET_H_QBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
   }
 }
 }
@@ -1187,20 +1247,20 @@ if (NOTBI (GET_H_MBIT ())) {
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rm)), GET_H_GRC (FLD (f_rn)));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   tmp_tmp1 = LTUSI (GET_H_GRC (FLD (f_rn)), tmp_tmp0);
 if (NOTBI (GET_H_QBIT ())) {
   {
     BI opval = ((tmp_tmp1) ? (1) : (0));
     SET_H_QBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
   }
 } else {
   {
     BI opval = ((EQQI (tmp_tmp1, 0)) ? (1) : (0));
     SET_H_QBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
   }
 }
 }
@@ -1210,20 +1270,20 @@ if (NOTBI (GET_H_QBIT ())) {
   {
     SI opval = SUBSI (GET_H_GRC (FLD (f_rn)), GET_H_GRC (FLD (f_rm)));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   tmp_tmp1 = GTUSI (GET_H_GRC (FLD (f_rn)), tmp_tmp0);
 if (NOTBI (GET_H_QBIT ())) {
   {
     BI opval = ((EQQI (tmp_tmp1, 0)) ? (1) : (0));
     SET_H_QBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
   }
 } else {
   {
     BI opval = ((tmp_tmp1) ? (1) : (0));
     SET_H_QBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "qbit", 'x', opval);
   }
 }
 }
@@ -1232,10 +1292,48 @@ if (NOTBI (GET_H_QBIT ())) {
   {
     BI opval = ((EQBI (GET_H_QBIT (), GET_H_MBIT ())) ? (1) : (0));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 }
 
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_DIVU_COMPACT) : /* divu r0, $rn */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_movw10_compact.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
+
+  {
+    SI opval = UDIVSI (GET_H_GRC (FLD (f_rn)), GET_H_GRC (((UINT) 0)));
+    SET_H_GRC (FLD (f_rn), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_MULR_COMPACT) : /* mulr r0, $rn */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_movw10_compact.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
+
+  {
+    SI opval = MULSI (GET_H_GRC (FLD (f_rn)), GET_H_GRC (((UINT) 0)));
+    SET_H_GRC (FLD (f_rn), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
+  }
+
 #undef FLD
 }
   NEXT (vpc);
@@ -1244,7 +1342,7 @@ if (NOTBI (GET_H_QBIT ())) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -1255,12 +1353,12 @@ if (NOTBI (GET_H_QBIT ())) {
   {
     SI opval = SUBWORDDISI (tmp_result, 0);
     SET_H_MACH (opval);
-    TRACE_RESULT (current_cpu, abuf, "mach", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mach", 'x', opval);
   }
   {
     SI opval = SUBWORDDISI (tmp_result, 1);
     SET_H_MACL (opval);
-    TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
   }
 }
 
@@ -1272,7 +1370,7 @@ if (NOTBI (GET_H_QBIT ())) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -1283,12 +1381,12 @@ if (NOTBI (GET_H_QBIT ())) {
   {
     SI opval = SUBWORDDISI (tmp_result, 0);
     SET_H_MACH (opval);
-    TRACE_RESULT (current_cpu, abuf, "mach", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mach", 'x', opval);
   }
   {
     SI opval = SUBWORDDISI (tmp_result, 1);
     SET_H_MACL (opval);
-    TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
   }
 }
 
@@ -1309,12 +1407,12 @@ if (NOTBI (GET_H_QBIT ())) {
   {
     SI opval = SUBSI (GET_H_GRC (FLD (f_rn)), 1);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   {
     BI opval = EQSI (GET_H_GRC (FLD (f_rn)), 0);
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 }
 
@@ -1326,7 +1424,7 @@ if (NOTBI (GET_H_QBIT ())) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -1334,7 +1432,7 @@ if (NOTBI (GET_H_QBIT ())) {
   {
     SI opval = EXTQISI (SUBWORDSIQI (GET_H_GRC (FLD (f_rm)), 3));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -1345,7 +1443,7 @@ if (NOTBI (GET_H_QBIT ())) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -1353,7 +1451,7 @@ if (NOTBI (GET_H_QBIT ())) {
   {
     SI opval = EXTHISI (SUBWORDSIHI (GET_H_GRC (FLD (f_rm)), 1));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -1364,7 +1462,7 @@ if (NOTBI (GET_H_QBIT ())) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -1372,7 +1470,7 @@ if (NOTBI (GET_H_QBIT ())) {
   {
     SI opval = ZEXTQISI (SUBWORDSIQI (GET_H_GRC (FLD (f_rm)), 3));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -1383,7 +1481,7 @@ if (NOTBI (GET_H_QBIT ())) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -1391,7 +1489,7 @@ if (NOTBI (GET_H_QBIT ())) {
   {
     SI opval = ZEXTHISI (SUBWORDSIHI (GET_H_GRC (FLD (f_rm)), 1));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -1409,17 +1507,17 @@ if (NOTBI (GET_H_QBIT ())) {
 
 if (GET_H_PRBIT ()) {
   {
-    DF opval = sh64_fabsd (current_cpu, GET_H_DR (FLD (f_rn)));
-    SET_H_DR (FLD (f_rn), opval);
-    written |= (1 << 5);
-    TRACE_RESULT (current_cpu, abuf, "dr-index-of--DFLT-fsdn", 'f', opval);
+    DF opval = sh64_fabsd (current_cpu, GET_H_FSD (FLD (f_rn)));
+    SET_H_FSD (FLD (f_rn), opval);
+    written |= (1 << 2);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsd", 'f', opval);
   }
 } else {
   {
-    SF opval = sh64_fabss (current_cpu, GET_H_FRC (FLD (f_rn)));
-    SET_H_FRC (FLD (f_rn), opval);
-    written |= (1 << 4);
-    TRACE_RESULT (current_cpu, abuf, "fsdn", 'f', opval);
+    DF opval = sh64_fabss (current_cpu, GET_H_FSD (FLD (f_rn)));
+    SET_H_FSD (FLD (f_rn), opval);
+    written |= (1 << 2);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsd", 'f', opval);
   }
 }
 
@@ -1432,24 +1530,24 @@ if (GET_H_PRBIT ()) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
 if (GET_H_PRBIT ()) {
   {
-    DF opval = sh64_faddd (current_cpu, GET_H_DR (FLD (f_rm)), GET_H_DR (FLD (f_rn)));
-    SET_H_DR (FLD (f_rn), opval);
-    written |= (1 << 8);
-    TRACE_RESULT (current_cpu, abuf, "dr-index-of--DFLT-fsdn", 'f', opval);
+    DF opval = sh64_faddd (current_cpu, GET_H_FSD (FLD (f_rm)), GET_H_FSD (FLD (f_rn)));
+    SET_H_FSD (FLD (f_rn), opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsd", 'f', opval);
   }
 } else {
   {
-    SF opval = sh64_fadds (current_cpu, GET_H_FRC (FLD (f_rm)), GET_H_FRC (FLD (f_rn)));
-    SET_H_FRC (FLD (f_rn), opval);
-    written |= (1 << 7);
-    TRACE_RESULT (current_cpu, abuf, "fsdn", 'f', opval);
+    DF opval = sh64_fadds (current_cpu, GET_H_FSD (FLD (f_rm)), GET_H_FSD (FLD (f_rn)));
+    SET_H_FSD (FLD (f_rn), opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsd", 'f', opval);
   }
 }
 
@@ -1462,24 +1560,24 @@ if (GET_H_PRBIT ()) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
 if (GET_H_PRBIT ()) {
   {
-    BI opval = sh64_fcmpeqd (current_cpu, GET_H_DR (FLD (f_rm)), GET_H_DR (FLD (f_rn)));
+    BI opval = sh64_fcmpeqd (current_cpu, GET_H_FSD (FLD (f_rm)), GET_H_FSD (FLD (f_rn)));
     SET_H_TBIT (opval);
-    written |= (1 << 7);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 } else {
   {
-    BI opval = sh64_fcmpeqs (current_cpu, GET_H_FRC (FLD (f_rm)), GET_H_FRC (FLD (f_rn)));
+    BI opval = sh64_fcmpeqs (current_cpu, GET_H_FSD (FLD (f_rm)), GET_H_FSD (FLD (f_rn)));
     SET_H_TBIT (opval);
-    written |= (1 << 7);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 }
 
@@ -1492,24 +1590,24 @@ if (GET_H_PRBIT ()) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
 if (GET_H_PRBIT ()) {
   {
-    BI opval = sh64_fcmpgtd (current_cpu, GET_H_DR (FLD (f_rn)), GET_H_DR (FLD (f_rm)));
+    BI opval = sh64_fcmpgtd (current_cpu, GET_H_FSD (FLD (f_rn)), GET_H_FSD (FLD (f_rm)));
     SET_H_TBIT (opval);
-    written |= (1 << 7);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 } else {
   {
-    BI opval = sh64_fcmpgts (current_cpu, GET_H_FRC (FLD (f_rn)), GET_H_FRC (FLD (f_rm)));
+    BI opval = sh64_fcmpgts (current_cpu, GET_H_FSD (FLD (f_rn)), GET_H_FSD (FLD (f_rm)));
     SET_H_TBIT (opval);
-    written |= (1 << 7);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 }
 
@@ -1522,7 +1620,7 @@ if (GET_H_PRBIT ()) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_fcnvds_compact.f
+#define FLD(f) abuf->fields.sfmt_fmov8_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -1530,7 +1628,7 @@ if (GET_H_PRBIT ()) {
   {
     SF opval = sh64_fcnvds (current_cpu, GET_H_DRC (FLD (f_dn)));
     CPU (h_fr[((UINT) 32)]) = opval;
-    TRACE_RESULT (current_cpu, abuf, "fpul", 'f', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
   }
 
 #undef FLD
@@ -1541,7 +1639,7 @@ if (GET_H_PRBIT ()) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_fcnvds_compact.f
+#define FLD(f) abuf->fields.sfmt_fmov8_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -1549,7 +1647,7 @@ if (GET_H_PRBIT ()) {
   {
     DF opval = sh64_fcnvsd (current_cpu, CPU (h_fr[((UINT) 32)]));
     SET_H_DRC (FLD (f_dn), opval);
-    TRACE_RESULT (current_cpu, abuf, "drn", 'f', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "drc", 'f', opval);
   }
 
 #undef FLD
@@ -1560,24 +1658,24 @@ if (GET_H_PRBIT ()) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
 if (GET_H_PRBIT ()) {
   {
-    DF opval = sh64_fdivd (current_cpu, GET_H_DR (FLD (f_rn)), GET_H_DR (FLD (f_rm)));
-    SET_H_DR (FLD (f_rn), opval);
-    written |= (1 << 8);
-    TRACE_RESULT (current_cpu, abuf, "dr-index-of--DFLT-fsdn", 'f', opval);
+    DF opval = sh64_fdivd (current_cpu, GET_H_FSD (FLD (f_rn)), GET_H_FSD (FLD (f_rm)));
+    SET_H_FSD (FLD (f_rn), opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsd", 'f', opval);
   }
 } else {
   {
-    SF opval = sh64_fdivs (current_cpu, GET_H_FRC (FLD (f_rn)), GET_H_FRC (FLD (f_rm)));
-    SET_H_FRC (FLD (f_rn), opval);
-    written |= (1 << 7);
-    TRACE_RESULT (current_cpu, abuf, "fsdn", 'f', opval);
+    DF opval = sh64_fdivs (current_cpu, GET_H_FSD (FLD (f_rn)), GET_H_FSD (FLD (f_rm)));
+    SET_H_FSD (FLD (f_rn), opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsd", 'f', opval);
   }
 }
 
@@ -1595,28 +1693,13 @@ if (GET_H_PRBIT ()) {
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
-{
-  QI tmp_m;
-  QI tmp_n;
-  SF tmp_res;
-  tmp_m = FLD (f_vm);
-  tmp_n = FLD (f_vn);
-  tmp_res = sh64_fmuls (current_cpu, GET_H_FVC (FLD (f_vm)), GET_H_FVC (FLD (f_vn)));
-  tmp_res = sh64_fadds (current_cpu, tmp_res, sh64_fmuls (current_cpu, GET_H_FRC (ADDQI (tmp_m, 1)), GET_H_FRC (ADDQI (tmp_n, 1))));
-  tmp_res = sh64_fadds (current_cpu, tmp_res, sh64_fmuls (current_cpu, GET_H_FRC (ADDQI (tmp_m, 2)), GET_H_FRC (ADDQI (tmp_n, 2))));
-  tmp_res = sh64_fadds (current_cpu, tmp_res, sh64_fmuls (current_cpu, GET_H_FRC (ADDQI (tmp_m, 3)), GET_H_FRC (ADDQI (tmp_n, 3))));
-  {
-    SF opval = tmp_res;
-    SET_H_FRC (ADDQI (tmp_n, 3), opval);
-    TRACE_RESULT (current_cpu, abuf, "frc-add--DFLT-n-3", 'f', opval);
-  }
-}
+sh64_fipr (current_cpu, FLD (f_vm), FLD (f_vn));
 
 #undef FLD
 }
   NEXT (vpc);
 
-  CASE (sem, INSN_FLDS_COMPACT) : /* flds $frn */
+  CASE (sem, INSN_FLDS_COMPACT) : /* flds $frn, fpul */
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
@@ -1628,7 +1711,7 @@ if (GET_H_PRBIT ()) {
   {
     SF opval = GET_H_FRC (FLD (f_rn));
     CPU (h_fr[((UINT) 32)]) = opval;
-    TRACE_RESULT (current_cpu, abuf, "fpul", 'f', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
   }
 
 #undef FLD
@@ -1647,7 +1730,7 @@ if (GET_H_PRBIT ()) {
   {
     SF opval = sh64_fldi0 (current_cpu);
     SET_H_FRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "frn", 'f', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "frc", 'f', opval);
   }
 
 #undef FLD
@@ -1666,7 +1749,7 @@ if (GET_H_PRBIT ()) {
   {
     SF opval = sh64_fldi1 (current_cpu);
     SET_H_FRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "frn", 'f', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "frc", 'f', opval);
   }
 
 #undef FLD
@@ -1685,16 +1768,16 @@ if (GET_H_PRBIT ()) {
 if (GET_H_PRBIT ()) {
   {
     DF opval = sh64_floatld (current_cpu, CPU (h_fr[((UINT) 32)]));
-    SET_H_DR (FLD (f_rn), opval);
-    written |= (1 << 4);
-    TRACE_RESULT (current_cpu, abuf, "dr-index-of--DFLT-fsdn", 'f', opval);
+    SET_H_FSD (FLD (f_rn), opval);
+    written |= (1 << 2);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsd", 'f', opval);
   }
 } else {
   {
-    SF opval = sh64_floatls (current_cpu, CPU (h_fr[((UINT) 32)]));
-    SET_H_FRC (FLD (f_rn), opval);
-    written |= (1 << 3);
-    TRACE_RESULT (current_cpu, abuf, "fsdn", 'f', opval);
+    DF opval = sh64_floatls (current_cpu, CPU (h_fr[((UINT) 32)]));
+    SET_H_FSD (FLD (f_rn), opval);
+    written |= (1 << 2);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsd", 'f', opval);
   }
 }
 
@@ -1707,7 +1790,7 @@ if (GET_H_PRBIT ()) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -1715,102 +1798,55 @@ if (GET_H_PRBIT ()) {
   {
     SF opval = sh64_fmacs (current_cpu, GET_H_FRC (((UINT) 0)), GET_H_FRC (FLD (f_rm)), GET_H_FRC (FLD (f_rn)));
     SET_H_FRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "frn", 'f', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "frc", 'f', opval);
   }
 
 #undef FLD
 }
   NEXT (vpc);
 
-  CASE (sem, INSN_FMOV1_COMPACT) : /* fmov $frm, $frn */
+  CASE (sem, INSN_FMOV1_COMPACT) : /* fmov $fmovm, $fmovn */
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
-if (NOTBI (GET_H_SZBIT ())) {
-  {
-    SF opval = GET_H_FRC (FLD (f_rm));
-    SET_H_FRC (FLD (f_rn), opval);
-    written |= (1 << 6);
-    TRACE_RESULT (current_cpu, abuf, "frn", 'f', opval);
-  }
-} else {
-if (EQSI (ANDSI (FLD (f_rm), 1), 1)) {
-if (EQSI (ANDSI (FLD (f_rn), 1), 1)) {
-  {
-    DF opval = GET_H_XD (((FLD (f_rm)) & (INVQI (1))));
-    SET_H_XD (((FLD (f_rn)) & (INVQI (1))), opval);
-    written |= (1 << 8);
-    TRACE_RESULT (current_cpu, abuf, "xd-and--DFLT-index-of--DFLT-frn-inv--QI-1", 'f', opval);
-  }
-} else {
   {
-    DF opval = GET_H_XD (((FLD (f_rm)) & (INVQI (1))));
-    SET_H_DR (FLD (f_rn), opval);
-    written |= (1 << 7);
-    TRACE_RESULT (current_cpu, abuf, "dr-index-of--DFLT-frn", 'f', opval);
+    DF opval = GET_H_FMOV (FLD (f_rm));
+    SET_H_FMOV (FLD (f_rn), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fmov", 'f', opval);
   }
-}
-} else {
-if (EQSI (ANDSI (FLD (f_rn), 1), 1)) {
-  {
-    DF opval = GET_H_DR (FLD (f_rm));
-    SET_H_XD (((FLD (f_rn)) & (INVQI (1))), opval);
-    written |= (1 << 8);
-    TRACE_RESULT (current_cpu, abuf, "xd-and--DFLT-index-of--DFLT-frn-inv--QI-1", 'f', opval);
-  }
-} else {
-  {
-    DF opval = GET_H_DR (FLD (f_rm));
-    SET_H_DR (FLD (f_rn), opval);
-    written |= (1 << 7);
-    TRACE_RESULT (current_cpu, abuf, "dr-index-of--DFLT-frn", 'f', opval);
-  }
-}
-}
-}
 
-  abuf->written = written;
 #undef FLD
 }
   NEXT (vpc);
 
-  CASE (sem, INSN_FMOV2_COMPACT) : /* fmov @$rm, $frn */
+  CASE (sem, INSN_FMOV2_COMPACT) : /* fmov @$rm, $fmovn */
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
 if (NOTBI (GET_H_SZBIT ())) {
   {
-    SF opval = GETMEMSF (current_cpu, pc, GET_H_GRC (FLD (f_rm)));
-    SET_H_FRC (FLD (f_rn), opval);
-    written |= (1 << 5);
-    TRACE_RESULT (current_cpu, abuf, "frn", 'f', opval);
-  }
-} else {
-if (EQSI (ANDSI (FLD (f_rn), 1), 1)) {
-  {
-    DF opval = GETMEMDF (current_cpu, pc, GET_H_GRC (FLD (f_rm)));
-    SET_H_XD (((FLD (f_rn)) & (INVQI (1))), opval);
-    written |= (1 << 7);
-    TRACE_RESULT (current_cpu, abuf, "xd-and--DFLT-index-of--DFLT-frn-inv--QI-1", 'f', opval);
+    DF opval = GETMEMSF (current_cpu, pc, GET_H_GRC (FLD (f_rm)));
+    SET_H_FMOV (FLD (f_rn), opval);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fmov", 'f', opval);
   }
 } else {
   {
     DF opval = GETMEMDF (current_cpu, pc, GET_H_GRC (FLD (f_rm)));
-    SET_H_DR (FLD (f_rn), opval);
-    written |= (1 << 6);
-    TRACE_RESULT (current_cpu, abuf, "dr-index-of--DFLT-frn", 'f', opval);
+    SET_H_FMOV (FLD (f_rn), opval);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fmov", 'f', opval);
   }
-}
 }
 
   abuf->written = written;
@@ -1818,11 +1854,11 @@ if (EQSI (ANDSI (FLD (f_rn), 1), 1)) {
 }
   NEXT (vpc);
 
-  CASE (sem, INSN_FMOV3_COMPACT) : /* fmov @${rm}+, frn */
+  CASE (sem, INSN_FMOV3_COMPACT) : /* fmov @${rm}+, fmovn */
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -1830,40 +1866,31 @@ if (EQSI (ANDSI (FLD (f_rn), 1), 1)) {
 if (NOTBI (GET_H_SZBIT ())) {
 {
   {
-    SF opval = GETMEMSF (current_cpu, pc, GET_H_GRC (FLD (f_rm)));
-    SET_H_FRC (FLD (f_rn), opval);
-    written |= (1 << 5);
-    TRACE_RESULT (current_cpu, abuf, "frn", 'f', opval);
+    DF opval = GETMEMSF (current_cpu, pc, GET_H_GRC (FLD (f_rm)));
+    SET_H_FMOV (FLD (f_rn), opval);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fmov", 'f', opval);
   }
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rm)), 4);
     SET_H_GRC (FLD (f_rm), opval);
-    written |= (1 << 8);
-    TRACE_RESULT (current_cpu, abuf, "rm", 'x', opval);
+    written |= (1 << 5);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 } else {
 {
-if (EQSI (ANDSI (FLD (f_rn), 1), 1)) {
-  {
-    DF opval = GETMEMDF (current_cpu, pc, GET_H_GRC (FLD (f_rm)));
-    SET_H_XD (((FLD (f_rn)) & (INVQI (1))), opval);
-    written |= (1 << 7);
-    TRACE_RESULT (current_cpu, abuf, "xd-and--DFLT-index-of--DFLT-frn-inv--QI-1", 'f', opval);
-  }
-} else {
   {
     DF opval = GETMEMDF (current_cpu, pc, GET_H_GRC (FLD (f_rm)));
-    SET_H_DR (FLD (f_rn), opval);
-    written |= (1 << 6);
-    TRACE_RESULT (current_cpu, abuf, "dr-index-of--DFLT-frn", 'f', opval);
+    SET_H_FMOV (FLD (f_rn), opval);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fmov", 'f', opval);
   }
-}
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rm)), 8);
     SET_H_GRC (FLD (f_rm), opval);
-    written |= (1 << 8);
-    TRACE_RESULT (current_cpu, abuf, "rm", 'x', opval);
+    written |= (1 << 5);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 }
@@ -1873,38 +1900,29 @@ if (EQSI (ANDSI (FLD (f_rn), 1), 1)) {
 }
   NEXT (vpc);
 
-  CASE (sem, INSN_FMOV4_COMPACT) : /* fmov @(r0, $rm), $frn */
+  CASE (sem, INSN_FMOV4_COMPACT) : /* fmov @(r0, $rm), $fmovn */
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
 if (NOTBI (GET_H_SZBIT ())) {
   {
-    SF opval = GETMEMSF (current_cpu, pc, ADDSI (GET_H_GRC (((UINT) 0)), GET_H_GRC (FLD (f_rm))));
-    SET_H_FRC (FLD (f_rn), opval);
-    written |= (1 << 6);
-    TRACE_RESULT (current_cpu, abuf, "frn", 'f', opval);
-  }
-} else {
-if (EQSI (ANDSI (FLD (f_rn), 1), 1)) {
-  {
-    DF opval = GETMEMDF (current_cpu, pc, ADDSI (GET_H_GRC (((UINT) 0)), GET_H_GRC (FLD (f_rm))));
-    SET_H_XD (((FLD (f_rn)) & (INVQI (1))), opval);
-    written |= (1 << 8);
-    TRACE_RESULT (current_cpu, abuf, "xd-and--DFLT-index-of--DFLT-frn-inv--QI-1", 'f', opval);
+    DF opval = GETMEMSF (current_cpu, pc, ADDSI (GET_H_GRC (((UINT) 0)), GET_H_GRC (FLD (f_rm))));
+    SET_H_FMOV (FLD (f_rn), opval);
+    written |= (1 << 5);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fmov", 'f', opval);
   }
 } else {
   {
     DF opval = GETMEMDF (current_cpu, pc, ADDSI (GET_H_GRC (((UINT) 0)), GET_H_GRC (FLD (f_rm))));
-    SET_H_DR (FLD (f_rn), opval);
-    written |= (1 << 7);
-    TRACE_RESULT (current_cpu, abuf, "dr-index-of--DFLT-frn", 'f', opval);
+    SET_H_FMOV (FLD (f_rn), opval);
+    written |= (1 << 5);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fmov", 'f', opval);
   }
-}
 }
 
   abuf->written = written;
@@ -1912,38 +1930,29 @@ if (EQSI (ANDSI (FLD (f_rn), 1), 1)) {
 }
   NEXT (vpc);
 
-  CASE (sem, INSN_FMOV5_COMPACT) : /* fmov $frm, @$rn */
+  CASE (sem, INSN_FMOV5_COMPACT) : /* fmov $fmovm, @$rn */
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
 if (NOTBI (GET_H_SZBIT ())) {
   {
-    SF opval = GET_H_FRC (FLD (f_rm));
+    SF opval = GET_H_FMOV (FLD (f_rm));
     SETMEMSF (current_cpu, pc, GET_H_GRC (FLD (f_rn)), opval);
-    written |= (1 << 6);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'f', opval);
-  }
-} else {
-if (EQSI (ANDSI (FLD (f_rm), 1), 1)) {
-  {
-    DF opval = GET_H_XD (((FLD (f_rm)) & (INVQI (1))));
-    SETMEMDF (current_cpu, pc, GET_H_GRC (FLD (f_rn)), opval);
-    written |= (1 << 7);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'f', opval);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'f', opval);
   }
 } else {
   {
-    DF opval = GET_H_DR (FLD (f_rm));
+    DF opval = GET_H_FMOV (FLD (f_rm));
     SETMEMDF (current_cpu, pc, GET_H_GRC (FLD (f_rn)), opval);
-    written |= (1 << 7);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'f', opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'f', opval);
   }
-}
 }
 
   abuf->written = written;
@@ -1951,11 +1960,11 @@ if (EQSI (ANDSI (FLD (f_rm), 1), 1)) {
 }
   NEXT (vpc);
 
-  CASE (sem, INSN_FMOV6_COMPACT) : /* fmov $frm, @-$rn */
+  CASE (sem, INSN_FMOV6_COMPACT) : /* fmov $fmovm, @-$rn */
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -1965,14 +1974,14 @@ if (NOTBI (GET_H_SZBIT ())) {
   {
     SI opval = SUBSI (GET_H_GRC (FLD (f_rn)), 4);
     SET_H_GRC (FLD (f_rn), opval);
-    written |= (1 << 8);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    written |= (1 << 5);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   {
-    SF opval = GET_H_FRC (FLD (f_rm));
+    SF opval = GET_H_FMOV (FLD (f_rm));
     SETMEMSF (current_cpu, pc, GET_H_GRC (FLD (f_rn)), opval);
-    written |= (1 << 6);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'f', opval);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'f', opval);
   }
 }
 } else {
@@ -1980,25 +1989,16 @@ if (NOTBI (GET_H_SZBIT ())) {
   {
     SI opval = SUBSI (GET_H_GRC (FLD (f_rn)), 8);
     SET_H_GRC (FLD (f_rn), opval);
-    written |= (1 << 8);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
-  }
-if (EQSI (ANDSI (FLD (f_rm), 1), 1)) {
-  {
-    DF opval = GET_H_XD (((FLD (f_rm)) & (INVQI (1))));
-    SETMEMDF (current_cpu, pc, GET_H_GRC (FLD (f_rn)), opval);
-    written |= (1 << 7);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'f', opval);
+    written |= (1 << 5);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
-} else {
   {
-    DF opval = GET_H_DR (FLD (f_rm));
+    DF opval = GET_H_FMOV (FLD (f_rm));
     SETMEMDF (current_cpu, pc, GET_H_GRC (FLD (f_rn)), opval);
-    written |= (1 << 7);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'f', opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'f', opval);
   }
 }
-}
 }
 
   abuf->written = written;
@@ -2006,41 +2006,70 @@ if (EQSI (ANDSI (FLD (f_rm), 1), 1)) {
 }
   NEXT (vpc);
 
-  CASE (sem, INSN_FMOV7_COMPACT) : /* fmov $frm, @(r0, $rn) */
+  CASE (sem, INSN_FMOV7_COMPACT) : /* fmov $fmovm, @(r0, $rn) */
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
 if (NOTBI (GET_H_SZBIT ())) {
   {
-    SF opval = GET_H_FRC (FLD (f_rm));
+    SF opval = GET_H_FMOV (FLD (f_rm));
     SETMEMSF (current_cpu, pc, ADDSI (GET_H_GRC (((UINT) 0)), GET_H_GRC (FLD (f_rn))), opval);
-    written |= (1 << 7);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'f', opval);
+    written |= (1 << 5);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'f', opval);
   }
 } else {
-if (EQSI (ANDSI (FLD (f_rm), 1), 1)) {
   {
-    DF opval = GET_H_XD (((FLD (f_rm)) & (INVQI (1))));
+    DF opval = GET_H_FMOV (FLD (f_rm));
     SETMEMDF (current_cpu, pc, ADDSI (GET_H_GRC (((UINT) 0)), GET_H_GRC (FLD (f_rn))), opval);
-    written |= (1 << 8);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'f', opval);
+    written |= (1 << 4);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'f', opval);
   }
-} else {
+}
+
+  abuf->written = written;
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_FMOV8_COMPACT) : /* fmov.d @($imm12x8, $rm), $drn */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_fmov8_compact.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
   {
-    DF opval = GET_H_DR (FLD (f_rm));
-    SETMEMDF (current_cpu, pc, ADDSI (GET_H_GRC (((UINT) 0)), GET_H_GRC (FLD (f_rn))), opval);
-    written |= (1 << 8);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'f', opval);
+    DF opval = GETMEMDF (current_cpu, pc, ADDSI (GET_H_GRC (FLD (f_rm)), FLD (f_imm12x8)));
+    SET_H_DRC (FLD (f_dn), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "drc", 'f', opval);
   }
+
+#undef FLD
 }
-}
+  NEXT (vpc);
+
+  CASE (sem, INSN_FMOV9_COMPACT) : /* mov.l $drm, @($imm12x8, $rn) */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_fmov9_compact.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    DF opval = GET_H_DRC (FLD (f_dm));
+    SETMEMDF (current_cpu, pc, ADDSI (GET_H_GRC (FLD (f_rn)), FLD (f_imm12x8)), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'f', opval);
+  }
 
-  abuf->written = written;
 #undef FLD
 }
   NEXT (vpc);
@@ -2049,24 +2078,24 @@ if (EQSI (ANDSI (FLD (f_rm), 1), 1)) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
 if (GET_H_PRBIT ()) {
   {
-    DF opval = sh64_fmuld (current_cpu, GET_H_DR (FLD (f_rm)), GET_H_DR (FLD (f_rn)));
-    SET_H_DR (FLD (f_rn), opval);
-    written |= (1 << 8);
-    TRACE_RESULT (current_cpu, abuf, "dr-index-of--DFLT-fsdn", 'f', opval);
+    DF opval = sh64_fmuld (current_cpu, GET_H_FSD (FLD (f_rm)), GET_H_FSD (FLD (f_rn)));
+    SET_H_FSD (FLD (f_rn), opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsd", 'f', opval);
   }
 } else {
   {
-    SF opval = sh64_fmuls (current_cpu, GET_H_FRC (FLD (f_rm)), GET_H_FRC (FLD (f_rn)));
-    SET_H_FRC (FLD (f_rn), opval);
-    written |= (1 << 7);
-    TRACE_RESULT (current_cpu, abuf, "fsdn", 'f', opval);
+    DF opval = sh64_fmuls (current_cpu, GET_H_FSD (FLD (f_rm)), GET_H_FSD (FLD (f_rn)));
+    SET_H_FSD (FLD (f_rn), opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsd", 'f', opval);
   }
 }
 
@@ -2086,17 +2115,17 @@ if (GET_H_PRBIT ()) {
 
 if (GET_H_PRBIT ()) {
   {
-    DF opval = sh64_fnegd (current_cpu, GET_H_DR (FLD (f_rn)));
-    SET_H_DR (FLD (f_rn), opval);
-    written |= (1 << 5);
-    TRACE_RESULT (current_cpu, abuf, "dr-index-of--DFLT-fsdn", 'f', opval);
+    DF opval = sh64_fnegd (current_cpu, GET_H_FSD (FLD (f_rn)));
+    SET_H_FSD (FLD (f_rn), opval);
+    written |= (1 << 2);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsd", 'f', opval);
   }
 } else {
   {
-    SF opval = sh64_fnegs (current_cpu, GET_H_FRC (FLD (f_rn)));
-    SET_H_FRC (FLD (f_rn), opval);
-    written |= (1 << 4);
-    TRACE_RESULT (current_cpu, abuf, "fsdn", 'f', opval);
+    DF opval = sh64_fnegs (current_cpu, GET_H_FSD (FLD (f_rn)));
+    SET_H_FSD (FLD (f_rn), opval);
+    written |= (1 << 2);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsd", 'f', opval);
   }
 }
 
@@ -2109,7 +2138,7 @@ if (GET_H_PRBIT ()) {
 {
   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;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -2117,7 +2146,7 @@ if (GET_H_PRBIT ()) {
   {
     BI opval = NOTBI (GET_H_FRBIT ());
     SET_H_FRBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "frbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "frbit", 'x', opval);
   }
 
 #undef FLD
@@ -2128,7 +2157,7 @@ if (GET_H_PRBIT ()) {
 {
   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;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -2136,7 +2165,7 @@ if (GET_H_PRBIT ()) {
   {
     BI opval = NOTBI (GET_H_SZBIT ());
     SET_H_SZBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "szbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "szbit", 'x', opval);
   }
 
 #undef FLD
@@ -2154,17 +2183,17 @@ if (GET_H_PRBIT ()) {
 
 if (GET_H_PRBIT ()) {
   {
-    DF opval = sh64_fsqrtd (current_cpu, GET_H_DR (FLD (f_rn)));
-    SET_H_DR (FLD (f_rn), opval);
-    written |= (1 << 5);
-    TRACE_RESULT (current_cpu, abuf, "dr-index-of--DFLT-fsdn", 'f', opval);
+    DF opval = sh64_fsqrtd (current_cpu, GET_H_FSD (FLD (f_rn)));
+    SET_H_FSD (FLD (f_rn), opval);
+    written |= (1 << 2);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsd", 'f', opval);
   }
 } else {
   {
-    SF opval = sh64_fsqrts (current_cpu, GET_H_FRC (FLD (f_rn)));
-    SET_H_FRC (FLD (f_rn), opval);
-    written |= (1 << 4);
-    TRACE_RESULT (current_cpu, abuf, "fsdn", 'f', opval);
+    DF opval = sh64_fsqrts (current_cpu, GET_H_FSD (FLD (f_rn)));
+    SET_H_FSD (FLD (f_rn), opval);
+    written |= (1 << 2);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsd", 'f', opval);
   }
 }
 
@@ -2185,7 +2214,7 @@ if (GET_H_PRBIT ()) {
   {
     SF opval = CPU (h_fr[((UINT) 32)]);
     SET_H_FRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "frn", 'f', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "frc", 'f', opval);
   }
 
 #undef FLD
@@ -2196,24 +2225,24 @@ if (GET_H_PRBIT ()) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
 if (GET_H_PRBIT ()) {
   {
-    DF opval = sh64_fsubd (current_cpu, GET_H_DR (FLD (f_rn)), GET_H_DR (FLD (f_rm)));
-    SET_H_DR (FLD (f_rn), opval);
-    written |= (1 << 8);
-    TRACE_RESULT (current_cpu, abuf, "dr-index-of--DFLT-fsdn", 'f', opval);
+    DF opval = sh64_fsubd (current_cpu, GET_H_FSD (FLD (f_rn)), GET_H_FSD (FLD (f_rm)));
+    SET_H_FSD (FLD (f_rn), opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsd", 'f', opval);
   }
 } else {
   {
-    SF opval = sh64_fsubs (current_cpu, GET_H_FRC (FLD (f_rn)), GET_H_FRC (FLD (f_rm)));
-    SET_H_FRC (FLD (f_rn), opval);
-    written |= (1 << 7);
-    TRACE_RESULT (current_cpu, abuf, "fsdn", 'f', opval);
+    DF opval = sh64_fsubs (current_cpu, GET_H_FSD (FLD (f_rn)), GET_H_FSD (FLD (f_rm)));
+    SET_H_FSD (FLD (f_rn), opval);
+    written |= (1 << 3);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fsd", 'f', opval);
   }
 }
 
@@ -2232,9 +2261,9 @@ if (GET_H_PRBIT ()) {
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
   {
-    SF opval = ((GET_H_PRBIT ()) ? (sh64_ftrcdl (current_cpu, GET_H_DR (FLD (f_rn)))) : (sh64_ftrcsl (current_cpu, GET_H_FRC (FLD (f_rn)))));
+    SF opval = ((GET_H_PRBIT ()) ? (sh64_ftrcdl (current_cpu, GET_H_FSD (FLD (f_rn)))) : (sh64_ftrcsl (current_cpu, GET_H_FSD (FLD (f_rn)))));
     CPU (h_fr[((UINT) 32)]) = opval;
-    TRACE_RESULT (current_cpu, abuf, "fpul", 'f', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
   }
 
 #undef FLD
@@ -2250,106 +2279,141 @@ if (GET_H_PRBIT ()) {
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
+sh64_ftrv (current_cpu, FLD (f_vn));
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_JMP_COMPACT) : /* jmp @$rn */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_movw10_compact.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
+
+{
+  {
+    UDI opval = ADDDI (pc, 2);
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+((void) 0); /*nop*/
+{
+  {
+    UDI opval = GET_H_GRC (FLD (f_rn));
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+}
+((void) 0); /*nop*/
+}
+
+  SEM_BRANCH_FINI (vpc);
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_JSR_COMPACT) : /* jsr @$rn */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_movw10_compact.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  SEM_BRANCH_INIT
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
+
+{
 {
-  QI tmp_n;
-  SF tmp_res;
-  tmp_n = FLD (f_vn);
-  tmp_res = sh64_fmuls (current_cpu, GET_H_XF (((UINT) 0)), GET_H_FRC (tmp_n));
-  tmp_res = sh64_fadds (current_cpu, tmp_res, sh64_fmuls (current_cpu, GET_H_XF (((UINT) 4)), GET_H_FRC (ADDQI (tmp_n, 1))));
-  tmp_res = sh64_fadds (current_cpu, tmp_res, sh64_fmuls (current_cpu, GET_H_XF (((UINT) 8)), GET_H_FRC (ADDQI (tmp_n, 2))));
-  tmp_res = sh64_fadds (current_cpu, tmp_res, sh64_fmuls (current_cpu, GET_H_XF (((UINT) 12)), GET_H_FRC (ADDQI (tmp_n, 3))));
   {
-    SF opval = tmp_res;
-    SET_H_FRC (tmp_n, opval);
-    TRACE_RESULT (current_cpu, abuf, "frc-n", 'f', opval);
+    SI opval = ADDDI (pc, 4);
+    SET_H_PR (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pr", 'x', opval);
   }
-  tmp_res = sh64_fmuls (current_cpu, GET_H_XF (((UINT) 1)), GET_H_FRC (tmp_n));
-  tmp_res = sh64_fadds (current_cpu, tmp_res, sh64_fmuls (current_cpu, GET_H_XF (((UINT) 5)), GET_H_FRC (ADDQI (tmp_n, 1))));
-  tmp_res = sh64_fadds (current_cpu, tmp_res, sh64_fmuls (current_cpu, GET_H_XF (((UINT) 9)), GET_H_FRC (ADDQI (tmp_n, 2))));
-  tmp_res = sh64_fadds (current_cpu, tmp_res, sh64_fmuls (current_cpu, GET_H_XF (((UINT) 13)), GET_H_FRC (ADDQI (tmp_n, 3))));
+}
   {
-    SF opval = tmp_res;
-    SET_H_FRC (ADDQI (tmp_n, 1), opval);
-    TRACE_RESULT (current_cpu, abuf, "frc-add--DFLT-n-1", 'f', opval);
+    UDI opval = ADDDI (pc, 2);
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
   }
-  tmp_res = sh64_fmuls (current_cpu, GET_H_XF (((UINT) 2)), GET_H_FRC (tmp_n));
-  tmp_res = sh64_fadds (current_cpu, tmp_res, sh64_fmuls (current_cpu, GET_H_XF (((UINT) 6)), GET_H_FRC (ADDQI (tmp_n, 1))));
-  tmp_res = sh64_fadds (current_cpu, tmp_res, sh64_fmuls (current_cpu, GET_H_XF (((UINT) 10)), GET_H_FRC (ADDQI (tmp_n, 2))));
-  tmp_res = sh64_fadds (current_cpu, tmp_res, sh64_fmuls (current_cpu, GET_H_XF (((UINT) 14)), GET_H_FRC (ADDQI (tmp_n, 3))));
+((void) 0); /*nop*/
+{
   {
-    SF opval = tmp_res;
-    SET_H_FRC (ADDQI (tmp_n, 2), opval);
-    TRACE_RESULT (current_cpu, abuf, "frc-add--DFLT-n-2", 'f', opval);
+    UDI opval = GET_H_GRC (FLD (f_rn));
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
   }
-  tmp_res = sh64_fmuls (current_cpu, GET_H_XF (((UINT) 3)), GET_H_FRC (tmp_n));
-  tmp_res = sh64_fadds (current_cpu, tmp_res, sh64_fmuls (current_cpu, GET_H_XF (((UINT) 7)), GET_H_FRC (ADDQI (tmp_n, 1))));
-  tmp_res = sh64_fadds (current_cpu, tmp_res, sh64_fmuls (current_cpu, GET_H_XF (((UINT) 11)), GET_H_FRC (ADDQI (tmp_n, 2))));
-  tmp_res = sh64_fadds (current_cpu, tmp_res, sh64_fmuls (current_cpu, GET_H_XF (((UINT) 15)), GET_H_FRC (ADDQI (tmp_n, 3))));
+}
+((void) 0); /*nop*/
+}
+
+  SEM_BRANCH_FINI (vpc);
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_LDC_GBR_COMPACT) : /* ldc $rn, gbr */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_movw10_compact.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
+
   {
-    SF opval = tmp_res;
-    SET_H_FRC (ADDQI (tmp_n, 3), opval);
-    TRACE_RESULT (current_cpu, abuf, "frc-add--DFLT-n-3", 'f', opval);
+    SI opval = GET_H_GRC (FLD (f_rn));
+    SET_H_GBR (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gbr", 'x', opval);
   }
-}
 
 #undef FLD
 }
   NEXT (vpc);
 
-  CASE (sem, INSN_JMP_COMPACT) : /* jmp @$rn */
+  CASE (sem, INSN_LDC_VBR_COMPACT) : /* ldc $rn, vbr */
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
-  SEM_BRANCH_INIT
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
-{
   {
-    UDI opval = GET_H_GRC (FLD (f_rn));
-    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
-    TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+    SI opval = GET_H_GRC (FLD (f_rn));
+    SET_H_VBR (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "vbr", 'x', opval);
   }
-}
 
-  SEM_BRANCH_FINI (vpc);
 #undef FLD
 }
   NEXT (vpc);
 
-  CASE (sem, INSN_JSR_COMPACT) : /* jsr @$rn */
+  CASE (sem, INSN_LDC_SR_COMPACT) : /* ldc $rn, sr */
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
-  SEM_BRANCH_INIT
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
-{
-{
   {
-    SI opval = ADDDI (pc, 4);
-    SET_H_PR (opval);
-    TRACE_RESULT (current_cpu, abuf, "pr", 'x', opval);
-  }
-  {
-    UDI opval = GET_H_GRC (FLD (f_rn));
-    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
-    TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+    SI opval = GET_H_GRC (FLD (f_rn));
+    CPU (h_sr) = opval;
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
   }
-}
-}
 
-  SEM_BRANCH_FINI (vpc);
 #undef FLD
 }
   NEXT (vpc);
 
-  CASE (sem, INSN_LDC_COMPACT) : /* ldc $rn, gbr */
+  CASE (sem, INSN_LDCL_GBR_COMPACT) : /* ldc.l @${rn}+, gbr */
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
@@ -2358,17 +2422,24 @@ if (GET_H_PRBIT ()) {
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
+{
   {
-    SI opval = GET_H_GRC (FLD (f_rn));
+    SI opval = GETMEMSI (current_cpu, pc, GET_H_GRC (FLD (f_rn)));
     SET_H_GBR (opval);
-    TRACE_RESULT (current_cpu, abuf, "gbr", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gbr", 'x', opval);
+  }
+  {
+    SI opval = ADDSI (GET_H_GRC (FLD (f_rn)), 4);
+    SET_H_GRC (FLD (f_rn), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
+}
 
 #undef FLD
 }
   NEXT (vpc);
 
-  CASE (sem, INSN_LDCL_COMPACT) : /* ldc.l @${rn}+, gbr */
+  CASE (sem, INSN_LDCL_VBR_COMPACT) : /* ldc.l @${rn}+, vbr */
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
@@ -2380,13 +2451,13 @@ if (GET_H_PRBIT ()) {
 {
   {
     SI opval = GETMEMSI (current_cpu, pc, GET_H_GRC (FLD (f_rn)));
-    SET_H_GBR (opval);
-    TRACE_RESULT (current_cpu, abuf, "gbr", 'x', opval);
+    SET_H_VBR (opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "vbr", 'x', opval);
   }
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rn)), 4);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 
@@ -2405,8 +2476,8 @@ if (GET_H_PRBIT ()) {
 
   {
     SI opval = GET_H_GRC (FLD (f_rn));
-    SET_H_FPCCR (opval);
-    TRACE_RESULT (current_cpu, abuf, "fpscr", 'x', opval);
+    CPU (h_fpscr) = opval;
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fpscr", 'x', opval);
   }
 
 #undef FLD
@@ -2425,13 +2496,13 @@ if (GET_H_PRBIT ()) {
 {
   {
     SI opval = GETMEMSI (current_cpu, pc, GET_H_GRC (FLD (f_rn)));
-    SET_H_FPCCR (opval);
-    TRACE_RESULT (current_cpu, abuf, "fpscr", 'x', opval);
+    CPU (h_fpscr) = opval;
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fpscr", 'x', opval);
   }
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rn)), 4);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 
@@ -2451,7 +2522,7 @@ if (GET_H_PRBIT ()) {
   {
     SF opval = SUBWORDSISF (GET_H_GRC (FLD (f_rn)));
     CPU (h_fr[((UINT) 32)]) = opval;
-    TRACE_RESULT (current_cpu, abuf, "fpul", 'f', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
   }
 
 #undef FLD
@@ -2471,12 +2542,12 @@ if (GET_H_PRBIT ()) {
   {
     SF opval = GETMEMSF (current_cpu, pc, GET_H_GRC (FLD (f_rn)));
     CPU (h_fr[((UINT) 32)]) = opval;
-    TRACE_RESULT (current_cpu, abuf, "fpul", 'f', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
   }
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rn)), 4);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 
@@ -2496,7 +2567,7 @@ if (GET_H_PRBIT ()) {
   {
     SI opval = GET_H_GRC (FLD (f_rn));
     SET_H_MACH (opval);
-    TRACE_RESULT (current_cpu, abuf, "mach", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mach", 'x', opval);
   }
 
 #undef FLD
@@ -2516,12 +2587,12 @@ if (GET_H_PRBIT ()) {
   {
     SI opval = GETMEMSI (current_cpu, pc, GET_H_GRC (FLD (f_rn)));
     SET_H_MACH (opval);
-    TRACE_RESULT (current_cpu, abuf, "mach", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mach", 'x', opval);
   }
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rn)), 4);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 
@@ -2541,7 +2612,7 @@ if (GET_H_PRBIT ()) {
   {
     SI opval = GET_H_GRC (FLD (f_rn));
     SET_H_MACL (opval);
-    TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
   }
 
 #undef FLD
@@ -2561,12 +2632,12 @@ if (GET_H_PRBIT ()) {
   {
     SI opval = GETMEMSI (current_cpu, pc, GET_H_GRC (FLD (f_rn)));
     SET_H_MACL (opval);
-    TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
   }
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rn)), 4);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 
@@ -2586,7 +2657,7 @@ if (GET_H_PRBIT ()) {
   {
     SI opval = GET_H_GRC (FLD (f_rn));
     SET_H_PR (opval);
-    TRACE_RESULT (current_cpu, abuf, "pr", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pr", 'x', opval);
   }
 
 #undef FLD
@@ -2606,12 +2677,12 @@ if (GET_H_PRBIT ()) {
   {
     SI opval = GETMEMSI (current_cpu, pc, GET_H_GRC (FLD (f_rn)));
     SET_H_PR (opval);
-    TRACE_RESULT (current_cpu, abuf, "pr", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pr", 'x', opval);
   }
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rn)), 4);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 
@@ -2623,7 +2694,7 @@ if (GET_H_PRBIT ()) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -2638,20 +2709,20 @@ if (GET_H_PRBIT ()) {
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rn)), 4);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 if (EQSI (FLD (f_rn), FLD (f_rm))) {
 {
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rn)), 4);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rm)), 4);
     SET_H_GRC (FLD (f_rm), opval);
     written |= (1 << 11);
-    TRACE_RESULT (current_cpu, abuf, "rm", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 }
@@ -2660,7 +2731,7 @@ if (EQSI (FLD (f_rn), FLD (f_rm))) {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rm)), 4);
     SET_H_GRC (FLD (f_rm), opval);
     written |= (1 << 11);
-    TRACE_RESULT (current_cpu, abuf, "rm", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   tmp_tmpry = MULDI (ZEXTSIDI (tmp_x), ZEXTSIDI (tmp_y));
   tmp_mac = ORDI (SLLDI (ZEXTSIDI (GET_H_MACH ()), 32), ZEXTSIDI (GET_H_MACL ()));
@@ -2684,12 +2755,12 @@ if (LTDI (tmp_result, tmp_min)) {
   {
     SI opval = SUBWORDDISI (tmp_result, 0);
     SET_H_MACH (opval);
-    TRACE_RESULT (current_cpu, abuf, "mach", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mach", 'x', opval);
   }
   {
     SI opval = SUBWORDDISI (tmp_result, 1);
     SET_H_MACL (opval);
-    TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
   }
 }
 }
@@ -2703,7 +2774,7 @@ if (LTDI (tmp_result, tmp_min)) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -2718,20 +2789,20 @@ if (LTDI (tmp_result, tmp_min)) {
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rn)), 2);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 if (EQSI (FLD (f_rn), FLD (f_rm))) {
 {
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rn)), 2);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rm)), 2);
     SET_H_GRC (FLD (f_rm), opval);
     written |= (1 << 11);
-    TRACE_RESULT (current_cpu, abuf, "rm", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 }
@@ -2740,7 +2811,7 @@ if (EQSI (FLD (f_rn), FLD (f_rm))) {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rm)), 2);
     SET_H_GRC (FLD (f_rm), opval);
     written |= (1 << 11);
-    TRACE_RESULT (current_cpu, abuf, "rm", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   tmp_tmpry = MULSI (ZEXTHISI (tmp_x), ZEXTHISI (tmp_y));
 if (GET_H_SBIT ()) {
@@ -2750,14 +2821,14 @@ if (ADDOFSI (tmp_tmpry, GET_H_MACL (), 0)) {
     SI opval = 1;
     SET_H_MACH (opval);
     written |= (1 << 9);
-    TRACE_RESULT (current_cpu, abuf, "mach", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mach", 'x', opval);
   }
 }
   {
     SI opval = ADDSI (tmp_tmpry, GET_H_MACL ());
     SET_H_MACL (opval);
     written |= (1 << 10);
-    TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
   }
 }
 } else {
@@ -2768,13 +2839,13 @@ if (ADDOFSI (tmp_tmpry, GET_H_MACL (), 0)) {
     SI opval = SUBWORDDISI (tmp_result, 0);
     SET_H_MACH (opval);
     written |= (1 << 9);
-    TRACE_RESULT (current_cpu, abuf, "mach", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "mach", 'x', opval);
   }
   {
     SI opval = SUBWORDDISI (tmp_result, 1);
     SET_H_MACL (opval);
     written |= (1 << 10);
-    TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
   }
 }
 }
@@ -2789,7 +2860,7 @@ if (ADDOFSI (tmp_tmpry, GET_H_MACL (), 0)) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -2797,7 +2868,7 @@ if (ADDOFSI (tmp_tmpry, GET_H_MACL (), 0)) {
   {
     DI opval = GET_H_GR (FLD (f_rm));
     SET_H_GR (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn64", 'D', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'D', opval);
   }
 
 #undef FLD
@@ -2816,7 +2887,26 @@ if (ADDOFSI (tmp_tmpry, GET_H_MACL (), 0)) {
   {
     SI opval = EXTQIDI (ANDQI (FLD (f_imm8), 255));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_MOVI20_COMPACT) : /* movi20 #$imm20, $rn */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_movi20_compact.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SI opval = FLD (f_imm20);
+    SET_H_GRC (FLD (f_rn), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -2827,7 +2917,7 @@ if (ADDOFSI (tmp_tmpry, GET_H_MACL (), 0)) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -2835,7 +2925,7 @@ if (ADDOFSI (tmp_tmpry, GET_H_MACL (), 0)) {
   {
     UQI opval = SUBWORDSIUQI (GET_H_GRC (FLD (f_rm)), 3);
     SETMEMUQI (current_cpu, pc, GET_H_GRC (FLD (f_rn)), opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
 
 #undef FLD
@@ -2846,7 +2936,7 @@ if (ADDOFSI (tmp_tmpry, GET_H_MACL (), 0)) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -2857,12 +2947,12 @@ if (ADDOFSI (tmp_tmpry, GET_H_MACL (), 0)) {
   {
     UQI opval = SUBWORDSIUQI (GET_H_GRC (FLD (f_rm)), 3);
     SETMEMUQI (current_cpu, pc, tmp_addr, opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
   {
     SI opval = tmp_addr;
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 
@@ -2874,7 +2964,7 @@ if (ADDOFSI (tmp_tmpry, GET_H_MACL (), 0)) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -2882,7 +2972,7 @@ if (ADDOFSI (tmp_tmpry, GET_H_MACL (), 0)) {
   {
     UQI opval = SUBWORDSIUQI (GET_H_GRC (FLD (f_rm)), 3);
     SETMEMUQI (current_cpu, pc, ADDSI (GET_H_GRC (((UINT) 0)), GET_H_GRC (FLD (f_rn))), opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
 
 #undef FLD
@@ -2904,7 +2994,7 @@ if (ADDOFSI (tmp_tmpry, GET_H_MACL (), 0)) {
   {
     UQI opval = SUBWORDSIUQI (GET_H_GRC (((UINT) 0)), 3);
     SETMEMUQI (current_cpu, pc, tmp_addr, opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
 }
 
@@ -2927,7 +3017,7 @@ if (ADDOFSI (tmp_tmpry, GET_H_MACL (), 0)) {
   {
     UQI opval = SUBWORDSIUQI (GET_H_GRC (((UINT) 0)), 3);
     SETMEMUQI (current_cpu, pc, tmp_addr, opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
 }
 
@@ -2939,7 +3029,7 @@ if (ADDOFSI (tmp_tmpry, GET_H_MACL (), 0)) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -2947,7 +3037,7 @@ if (ADDOFSI (tmp_tmpry, GET_H_MACL (), 0)) {
   {
     SI opval = EXTQISI (GETMEMQI (current_cpu, pc, GET_H_GRC (FLD (f_rm))));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -2958,7 +3048,7 @@ if (ADDOFSI (tmp_tmpry, GET_H_MACL (), 0)) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -2971,20 +3061,20 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
     SI opval = EXTQISI (tmp_data);
     SET_H_GRC (FLD (f_rm), opval);
     written |= (1 << 4);
-    TRACE_RESULT (current_cpu, abuf, "rm", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 } else {
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rm)), 1);
     SET_H_GRC (FLD (f_rm), opval);
     written |= (1 << 4);
-    TRACE_RESULT (current_cpu, abuf, "rm", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
   {
     SI opval = EXTQISI (tmp_data);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 
@@ -2997,7 +3087,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3005,7 +3095,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = EXTQISI (GETMEMQI (current_cpu, pc, ADDSI (GET_H_GRC (((UINT) 0)), GET_H_GRC (FLD (f_rm)))));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -3024,7 +3114,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = EXTQISI (GETMEMQI (current_cpu, pc, ADDSI (GET_H_GBR (), FLD (f_imm8))));
     SET_H_GRC (((UINT) 0), opval);
-    TRACE_RESULT (current_cpu, abuf, "r0", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -3043,7 +3133,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = EXTQISI (GETMEMQI (current_cpu, pc, ADDSI (GET_H_GRC (FLD (f_rm)), FLD (f_imm4))));
     SET_H_GRC (((UINT) 0), opval);
-    TRACE_RESULT (current_cpu, abuf, "r0", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -3054,7 +3144,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3062,7 +3152,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = GET_H_GRC (FLD (f_rm));
     SETMEMSI (current_cpu, pc, GET_H_GRC (FLD (f_rn)), opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
 
 #undef FLD
@@ -3073,7 +3163,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3084,12 +3174,12 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = GET_H_GRC (FLD (f_rm));
     SETMEMSI (current_cpu, pc, tmp_addr, opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
   {
     SI opval = tmp_addr;
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 
@@ -3101,7 +3191,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3109,7 +3199,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = GET_H_GRC (FLD (f_rm));
     SETMEMSI (current_cpu, pc, ADDSI (GET_H_GRC (((UINT) 0)), GET_H_GRC (FLD (f_rn))), opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
 
 #undef FLD
@@ -3128,7 +3218,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = GET_H_GRC (((UINT) 0));
     SETMEMSI (current_cpu, pc, ADDSI (GET_H_GBR (), FLD (f_imm8x4)), opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
 
 #undef FLD
@@ -3147,7 +3237,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = GET_H_GRC (FLD (f_rm));
     SETMEMSI (current_cpu, pc, ADDSI (GET_H_GRC (FLD (f_rn)), FLD (f_imm4x4)), opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
 
 #undef FLD
@@ -3158,7 +3248,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3166,7 +3256,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = GETMEMSI (current_cpu, pc, GET_H_GRC (FLD (f_rm)));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -3177,7 +3267,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3186,21 +3276,21 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = GETMEMSI (current_cpu, pc, GET_H_GRC (FLD (f_rm)));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = GET_H_GRC (FLD (f_rn));
     SET_H_GRC (FLD (f_rm), opval);
     written |= (1 << 5);
-    TRACE_RESULT (current_cpu, abuf, "rm", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 } else {
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rm)), 4);
     SET_H_GRC (FLD (f_rm), opval);
     written |= (1 << 5);
-    TRACE_RESULT (current_cpu, abuf, "rm", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 }
@@ -3214,7 +3304,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3222,7 +3312,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = GETMEMSI (current_cpu, pc, ADDSI (GET_H_GRC (((UINT) 0)), GET_H_GRC (FLD (f_rm))));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -3241,7 +3331,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = GETMEMSI (current_cpu, pc, ADDSI (GET_H_GBR (), FLD (f_imm8x4)));
     SET_H_GRC (((UINT) 0), opval);
-    TRACE_RESULT (current_cpu, abuf, "r0", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -3260,7 +3350,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = GETMEMSI (current_cpu, pc, ADDSI (FLD (f_imm8x4), ANDDI (ADDDI (pc, 4), INVSI (3))));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -3279,7 +3369,45 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = GETMEMSI (current_cpu, pc, ADDSI (GET_H_GRC (FLD (f_rm)), FLD (f_imm4x4)));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_MOVL12_COMPACT) : /* mov.l @($imm12x4, $rm), $rn */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SI opval = GETMEMSI (current_cpu, pc, ADDSI (GET_H_GRC (FLD (f_rm)), FLD (f_imm12x4)));
+    SET_H_GRC (FLD (f_rn), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_MOVL13_COMPACT) : /* mov.l $rm, @($imm12x4, $rn) */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+
+  {
+    SI opval = GET_H_GRC (FLD (f_rm));
+    SETMEMSI (current_cpu, pc, ADDSI (GET_H_GRC (FLD (f_rn)), FLD (f_imm12x4)), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
 
 #undef FLD
@@ -3290,7 +3418,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3298,7 +3426,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     HI opval = SUBWORDSIHI (GET_H_GRC (FLD (f_rm)), 1);
     SETMEMHI (current_cpu, pc, GET_H_GRC (FLD (f_rn)), opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
 
 #undef FLD
@@ -3309,7 +3437,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3320,12 +3448,12 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     HI opval = SUBWORDSIHI (GET_H_GRC (FLD (f_rm)), 1);
     SETMEMHI (current_cpu, pc, tmp_addr, opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
   {
     SI opval = tmp_addr;
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 
@@ -3337,7 +3465,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3345,7 +3473,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     HI opval = SUBWORDSIHI (GET_H_GRC (FLD (f_rm)), 1);
     SETMEMHI (current_cpu, pc, ADDSI (GET_H_GRC (((UINT) 0)), GET_H_GRC (FLD (f_rn))), opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
 
 #undef FLD
@@ -3364,14 +3492,14 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     HI opval = SUBWORDSIHI (GET_H_GRC (((UINT) 0)), 1);
     SETMEMHI (current_cpu, pc, ADDSI (GET_H_GBR (), FLD (f_imm8x2)), opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
 
 #undef FLD
 }
   NEXT (vpc);
 
-  CASE (sem, INSN_MOVW5_COMPACT) : /* mov.w r0, @($imm4x2, $rn) */
+  CASE (sem, INSN_MOVW5_COMPACT) : /* mov.w r0, @($imm4x2, $rm) */
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
@@ -3382,8 +3510,8 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 
   {
     HI opval = SUBWORDSIHI (GET_H_GRC (((UINT) 0)), 1);
-    SETMEMHI (current_cpu, pc, ADDSI (GET_H_GRC (FLD (f_rn)), FLD (f_imm4x2)), opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    SETMEMHI (current_cpu, pc, ADDSI (GET_H_GRC (FLD (f_rm)), FLD (f_imm4x2)), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
 
 #undef FLD
@@ -3394,7 +3522,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3402,7 +3530,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = EXTHISI (GETMEMHI (current_cpu, pc, GET_H_GRC (FLD (f_rm))));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -3413,7 +3541,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3426,20 +3554,20 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
     SI opval = EXTHISI (tmp_data);
     SET_H_GRC (FLD (f_rm), opval);
     written |= (1 << 4);
-    TRACE_RESULT (current_cpu, abuf, "rm", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 } else {
   {
     SI opval = ADDSI (GET_H_GRC (FLD (f_rm)), 2);
     SET_H_GRC (FLD (f_rm), opval);
     written |= (1 << 4);
-    TRACE_RESULT (current_cpu, abuf, "rm", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
   {
     SI opval = EXTHISI (tmp_data);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 
@@ -3452,7 +3580,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3460,7 +3588,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = EXTHISI (GETMEMHI (current_cpu, pc, ADDSI (GET_H_GRC (((UINT) 0)), GET_H_GRC (FLD (f_rm)))));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -3479,7 +3607,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = EXTHISI (GETMEMHI (current_cpu, pc, ADDSI (GET_H_GBR (), FLD (f_imm8x2))));
     SET_H_GRC (((UINT) 0), opval);
-    TRACE_RESULT (current_cpu, abuf, "r0", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -3498,7 +3626,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = EXTHISI (GETMEMHI (current_cpu, pc, ADDDI (ADDDI (pc, 4), FLD (f_imm8x2))));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -3509,7 +3637,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movw11_compact.f
+#define FLD(f) abuf->fields.sfmt_movw5_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3517,7 +3645,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = EXTHISI (GETMEMHI (current_cpu, pc, ADDSI (GET_H_GRC (FLD (f_rm)), FLD (f_imm4x2))));
     SET_H_GRC (((UINT) 0), opval);
-    TRACE_RESULT (current_cpu, abuf, "r0", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -3536,7 +3664,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = ADDDI (ANDDI (ADDDI (pc, 4), INVSI (3)), FLD (f_imm8x4));
     SET_H_GRC (((UINT) 0), opval);
-    TRACE_RESULT (current_cpu, abuf, "r0", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -3555,7 +3683,26 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = GET_H_GRC (((UINT) 0));
     SETMEMSI (current_cpu, pc, GET_H_GRC (FLD (f_rn)), opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_MOVCOL_COMPACT) : /* movco.l r0, @$rn */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_movw10_compact.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
+
+  {
+    SI opval = GET_H_GRC (FLD (f_rn));
+    SET_H_GRC (FLD (f_rn), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -3574,8 +3721,53 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = ZEXTBISI (GET_H_TBIT ());
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_MOVUAL_COMPACT) : /* movua.l @$rn, r0 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_movw10_compact.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
+
+  {
+    SI opval = sh64_movua (current_cpu, pc, GET_H_GRC (FLD (f_rn)));
+    SET_H_GRC (((UINT) 0), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_MOVUAL2_COMPACT) : /* movua.l @$rn+, r0 */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_movw10_compact.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
+
+{
+  {
+    SI opval = sh64_movua (current_cpu, pc, GET_H_GRC (FLD (f_rn)));
+    SET_H_GRC (((UINT) 0), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
+  }
+  {
+    SI opval = ADDSI (GET_H_GRC (FLD (f_rn)), 4);
+    SET_H_GRC (FLD (f_rn), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
+}
 
 #undef FLD
 }
@@ -3585,7 +3777,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3593,7 +3785,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = MULSI (GET_H_GRC (FLD (f_rm)), GET_H_GRC (FLD (f_rn)));
     SET_H_MACL (opval);
-    TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
   }
 
 #undef FLD
@@ -3604,7 +3796,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3612,7 +3804,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = MULSI (EXTHISI (SUBWORDSIHI (GET_H_GRC (FLD (f_rm)), 1)), EXTHISI (SUBWORDSIHI (GET_H_GRC (FLD (f_rn)), 1)));
     SET_H_MACL (opval);
-    TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
   }
 
 #undef FLD
@@ -3623,7 +3815,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3631,7 +3823,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = MULSI (ZEXTHISI (SUBWORDSIHI (GET_H_GRC (FLD (f_rm)), 1)), ZEXTHISI (SUBWORDSIHI (GET_H_GRC (FLD (f_rn)), 1)));
     SET_H_MACL (opval);
-    TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "macl", 'x', opval);
   }
 
 #undef FLD
@@ -3642,7 +3834,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3650,7 +3842,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = NEGSI (GET_H_GRC (FLD (f_rm)));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -3661,7 +3853,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3672,12 +3864,12 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = SUBCSI (0, GET_H_GRC (FLD (f_rm)), GET_H_TBIT ());
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   {
     BI opval = tmp_flag;
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 }
 
@@ -3689,7 +3881,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   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;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3704,7 +3896,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3712,7 +3904,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     DI opval = INVDI (GET_H_GR (FLD (f_rm)));
     SET_H_GR (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn64", 'D', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'D', opval);
   }
 
 #undef FLD
@@ -3723,12 +3915,19 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   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_movw10_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
+{
+  {
+    SI opval = GET_H_GRC (FLD (f_rn));
+    SET_H_GRC (FLD (f_rn), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
+  }
 ((void) 0); /*nop*/
+}
 
 #undef FLD
 }
@@ -3738,12 +3937,19 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   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_movw10_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
+{
+  {
+    SI opval = GET_H_GRC (FLD (f_rn));
+    SET_H_GRC (FLD (f_rn), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
+  }
 ((void) 0); /*nop*/
+}
 
 #undef FLD
 }
@@ -3753,12 +3959,19 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   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_movw10_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
+{
+  {
+    SI opval = GET_H_GRC (FLD (f_rn));
+    SET_H_GRC (FLD (f_rn), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
+  }
 ((void) 0); /*nop*/
+}
 
 #undef FLD
 }
@@ -3768,7 +3981,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3776,7 +3989,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     DI opval = ORDI (GET_H_GR (FLD (f_rm)), GET_H_GR (FLD (f_rn)));
     SET_H_GR (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn64", 'D', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'D', opval);
   }
 
 #undef FLD
@@ -3795,7 +4008,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = ORSI (GET_H_GRC (((UINT) 0)), ZEXTSIDI (FLD (f_imm8)));
     SET_H_GRC (((UINT) 0), opval);
-    TRACE_RESULT (current_cpu, abuf, "r0", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -3819,7 +4032,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     UQI opval = tmp_data;
     SETMEMUQI (current_cpu, pc, tmp_addr, opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
 }
 
@@ -3831,12 +4044,12 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   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_movw10_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
-((void) 0); /*nop*/
+sh64_pref (current_cpu, GET_H_GRC (FLD (f_rn)));
 
 #undef FLD
 }
@@ -3857,12 +4070,12 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = ORSI (SLLSI (GET_H_GRC (FLD (f_rn)), 1), GET_H_TBIT ());
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   {
     BI opval = ((tmp_temp) ? (1) : (0));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 }
 
@@ -3887,12 +4100,12 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = ORSI (SRLSI (GET_H_GRC (FLD (f_rn)), 1), SLLSI (tmp_temp, 31));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   {
     BI opval = ((tmp_lsbit) ? (1) : (0));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 }
 
@@ -3915,12 +4128,12 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = ORSI (SLLSI (GET_H_GRC (FLD (f_rn)), 1), tmp_temp);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   {
     BI opval = ((tmp_temp) ? (1) : (0));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 }
 
@@ -3945,12 +4158,12 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     SI opval = ORSI (SRLSI (GET_H_GRC (FLD (f_rn)), 1), SLLSI (tmp_temp, 31));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   {
     BI opval = ((tmp_lsbit) ? (1) : (0));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 }
 
@@ -3962,18 +4175,27 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   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;
   IADDR UNUSED pc = abuf->addr;
   SEM_BRANCH_INIT
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
+{
+  {
+    UDI opval = ADDDI (pc, 2);
+    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+  }
+((void) 0); /*nop*/
 {
   {
     UDI opval = GET_H_PR ();
     SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
-    TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'D', opval);
   }
+}
+((void) 0); /*nop*/
 }
 
   SEM_BRANCH_FINI (vpc);
@@ -3985,7 +4207,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   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;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -3993,7 +4215,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     BI opval = 1;
     SET_H_SBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "sbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "sbit", 'x', opval);
   }
 
 #undef FLD
@@ -4004,7 +4226,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   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;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -4012,7 +4234,7 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
   {
     BI opval = 1;
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 
 #undef FLD
@@ -4023,43 +4245,43 @@ if (EQSI (FLD (f_rm), FLD (f_rn))) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
 {
-  QI tmp_shamt;
-  tmp_shamt = ANDQI (GET_H_GRC (FLD (f_rm)), 31);
+  SI tmp_shamt;
+  tmp_shamt = ANDSI (GET_H_GRC (FLD (f_rm)), 31);
 if (GESI (GET_H_GRC (FLD (f_rm)), 0)) {
   {
     SI opval = SLLSI (GET_H_GRC (FLD (f_rn)), tmp_shamt);
     SET_H_GRC (FLD (f_rn), opval);
-    written |= (1 << 3);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    written |= (1 << 2);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 } else {
-if (NEQI (tmp_shamt, 0)) {
+if (NESI (tmp_shamt, 0)) {
   {
     SI opval = SRASI (GET_H_GRC (FLD (f_rn)), SUBSI (32, tmp_shamt));
     SET_H_GRC (FLD (f_rn), opval);
-    written |= (1 << 3);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    written |= (1 << 2);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 } else {
 if (LTSI (GET_H_GRC (FLD (f_rn)), 0)) {
   {
     SI opval = NEGSI (1);
     SET_H_GRC (FLD (f_rn), opval);
-    written |= (1 << 3);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    written |= (1 << 2);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 } else {
   {
     SI opval = 0;
     SET_H_GRC (FLD (f_rn), opval);
-    written |= (1 << 3);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    written |= (1 << 2);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 }
@@ -4086,12 +4308,12 @@ if (LTSI (GET_H_GRC (FLD (f_rn)), 0)) {
   {
     SI opval = SLLSI (GET_H_GRC (FLD (f_rn)), 1);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   {
     BI opval = ((tmp_t) ? (1) : (0));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 }
 
@@ -4114,12 +4336,12 @@ if (LTSI (GET_H_GRC (FLD (f_rn)), 0)) {
   {
     SI opval = SRASI (GET_H_GRC (FLD (f_rn)), 1);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   {
     BI opval = ((tmp_t) ? (1) : (0));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 }
 
@@ -4131,35 +4353,35 @@ if (LTSI (GET_H_GRC (FLD (f_rn)), 0)) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
 {
-  QI tmp_shamt;
-  tmp_shamt = ANDQI (GET_H_GRC (FLD (f_rm)), 31);
+  SI tmp_shamt;
+  tmp_shamt = ANDSI (GET_H_GRC (FLD (f_rm)), 31);
 if (GESI (GET_H_GRC (FLD (f_rm)), 0)) {
   {
     SI opval = SLLSI (GET_H_GRC (FLD (f_rn)), tmp_shamt);
     SET_H_GRC (FLD (f_rn), opval);
-    written |= (1 << 3);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    written |= (1 << 2);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 } else {
-if (NEQI (tmp_shamt, 0)) {
+if (NESI (tmp_shamt, 0)) {
   {
     SI opval = SRLSI (GET_H_GRC (FLD (f_rn)), SUBSI (32, tmp_shamt));
     SET_H_GRC (FLD (f_rn), opval);
-    written |= (1 << 3);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    written |= (1 << 2);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 } else {
   {
     SI opval = 0;
     SET_H_GRC (FLD (f_rn), opval);
-    written |= (1 << 3);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    written |= (1 << 2);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 }
@@ -4185,12 +4407,12 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = SLLSI (GET_H_GRC (FLD (f_rn)), 1);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   {
     BI opval = ((tmp_t) ? (1) : (0));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 }
 
@@ -4210,7 +4432,7 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = SLLSI (GET_H_GRC (FLD (f_rn)), 2);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -4229,7 +4451,7 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = SLLSI (GET_H_GRC (FLD (f_rn)), 8);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -4248,7 +4470,7 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = SLLSI (GET_H_GRC (FLD (f_rn)), 16);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -4270,12 +4492,12 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = SRLSI (GET_H_GRC (FLD (f_rn)), 1);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   {
     BI opval = ((tmp_t) ? (1) : (0));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 }
 
@@ -4295,7 +4517,7 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = SRLSI (GET_H_GRC (FLD (f_rn)), 2);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -4314,7 +4536,7 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = SRLSI (GET_H_GRC (FLD (f_rn)), 8);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -4333,7 +4555,7 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = SRLSI (GET_H_GRC (FLD (f_rn)), 16);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -4352,7 +4574,26 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = GET_H_GBR ();
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
+  }
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_STC_VBR_COMPACT) : /* stc vbr, $rn */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_movw10_compact.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
+
+  {
+    SI opval = GET_H_VBR ();
+    SET_H_GRC (FLD (f_rn), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -4374,12 +4615,40 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = GET_H_GBR ();
     SETMEMSI (current_cpu, pc, tmp_addr, opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+  }
+  {
+    SI opval = tmp_addr;
+    SET_H_GRC (FLD (f_rn), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
+  }
+}
+
+#undef FLD
+}
+  NEXT (vpc);
+
+  CASE (sem, INSN_STCL_VBR_COMPACT) : /* stc.l vbr, @-$rn */
+{
+  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
+  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
+#define FLD(f) abuf->fields.sfmt_movw10_compact.f
+  int UNUSED written = 0;
+  IADDR UNUSED pc = abuf->addr;
+  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
+
+{
+  DI tmp_addr;
+  tmp_addr = SUBSI (GET_H_GRC (FLD (f_rn)), 4);
+  {
+    SI opval = GET_H_VBR ();
+    SETMEMSI (current_cpu, pc, tmp_addr, opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
   {
     SI opval = tmp_addr;
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 
@@ -4397,9 +4666,9 @@ if (NEQI (tmp_shamt, 0)) {
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
   {
-    SI opval = GET_H_FPCCR ();
+    SI opval = CPU (h_fpscr);
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -4419,14 +4688,14 @@ if (NEQI (tmp_shamt, 0)) {
   DI tmp_addr;
   tmp_addr = SUBSI (GET_H_GRC (FLD (f_rn)), 4);
   {
-    SI opval = GET_H_FPCCR ();
+    SI opval = CPU (h_fpscr);
     SETMEMSI (current_cpu, pc, tmp_addr, opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
   {
     SI opval = tmp_addr;
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 
@@ -4446,7 +4715,7 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = SUBWORDSFSI (CPU (h_fr[((UINT) 32)]));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -4468,12 +4737,12 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SF opval = CPU (h_fr[((UINT) 32)]);
     SETMEMSF (current_cpu, pc, tmp_addr, opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'f', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'f', opval);
   }
   {
     SI opval = tmp_addr;
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 
@@ -4493,7 +4762,7 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = GET_H_MACH ();
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -4515,12 +4784,12 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = GET_H_MACH ();
     SETMEMSI (current_cpu, pc, tmp_addr, opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
   {
     SI opval = tmp_addr;
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 
@@ -4540,7 +4809,7 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = GET_H_MACL ();
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -4562,12 +4831,12 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = GET_H_MACL ();
     SETMEMSI (current_cpu, pc, tmp_addr, opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
   {
     SI opval = tmp_addr;
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 
@@ -4587,7 +4856,7 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = GET_H_PR ();
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -4609,12 +4878,12 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = GET_H_PR ();
     SETMEMSI (current_cpu, pc, tmp_addr, opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
   {
     SI opval = tmp_addr;
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 
@@ -4626,7 +4895,7 @@ if (NEQI (tmp_shamt, 0)) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -4634,7 +4903,7 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = SUBSI (GET_H_GRC (FLD (f_rn)), GET_H_GRC (FLD (f_rm)));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -4645,7 +4914,7 @@ if (NEQI (tmp_shamt, 0)) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -4656,12 +4925,12 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = SUBCSI (GET_H_GRC (FLD (f_rn)), GET_H_GRC (FLD (f_rm)), GET_H_TBIT ());
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   {
     BI opval = tmp_flag;
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 }
 
@@ -4673,7 +4942,7 @@ if (NEQI (tmp_shamt, 0)) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -4684,12 +4953,12 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = SUBSI (GET_H_GRC (FLD (f_rn)), GET_H_GRC (FLD (f_rm)));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
   {
     BI opval = ((tmp_t) ? (1) : (0));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 }
 
@@ -4701,7 +4970,7 @@ if (NEQI (tmp_shamt, 0)) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -4716,7 +4985,7 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = ORSI (SLLSI (tmp_top_half, 16), ORSI (SLLSI (tmp_byte0, 8), tmp_byte1));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 }
 
@@ -4728,7 +4997,7 @@ if (NEQI (tmp_shamt, 0)) {
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -4736,7 +5005,7 @@ if (NEQI (tmp_shamt, 0)) {
   {
     SI opval = ORSI (SRLSI (GET_H_GRC (FLD (f_rm)), 16), SLLSI (GET_H_GRC (FLD (f_rm)), 16));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -4758,13 +5027,13 @@ if (NEQI (tmp_shamt, 0)) {
   {
     BI opval = ((EQQI (tmp_byte, 0)) ? (1) : (0));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
   tmp_byte = ORQI (tmp_byte, 128);
   {
     UQI opval = tmp_byte;
     SETMEMUQI (current_cpu, pc, GET_H_GRC (FLD (f_rn)), opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
 }
 
@@ -4791,7 +5060,7 @@ sh64_compact_trapa (current_cpu, FLD (f_imm8), pc);
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -4799,7 +5068,7 @@ sh64_compact_trapa (current_cpu, FLD (f_imm8), pc);
   {
     BI opval = ((EQSI (ANDSI (GET_H_GRC (FLD (f_rm)), GET_H_GRC (FLD (f_rn))), 0)) ? (1) : (0));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 
 #undef FLD
@@ -4818,7 +5087,7 @@ sh64_compact_trapa (current_cpu, FLD (f_imm8), pc);
   {
     BI opval = ((EQSI (ANDSI (GET_H_GRC (((UINT) 0)), ZEXTSISI (FLD (f_imm8))), 0)) ? (1) : (0));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 
 #undef FLD
@@ -4840,7 +5109,7 @@ sh64_compact_trapa (current_cpu, FLD (f_imm8), pc);
   {
     BI opval = ((EQQI (ANDQI (GETMEMUQI (current_cpu, pc, tmp_addr), FLD (f_imm8)), 0)) ? (1) : (0));
     SET_H_TBIT (opval);
-    TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "tbit", 'x', opval);
   }
 }
 
@@ -4852,7 +5121,7 @@ sh64_compact_trapa (current_cpu, FLD (f_imm8), pc);
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -4860,7 +5129,7 @@ sh64_compact_trapa (current_cpu, FLD (f_imm8), pc);
   {
     DI opval = XORDI (GET_H_GR (FLD (f_rn)), GET_H_GR (FLD (f_rm)));
     SET_H_GR (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn64", 'D', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'D', opval);
   }
 
 #undef FLD
@@ -4877,9 +5146,9 @@ sh64_compact_trapa (current_cpu, FLD (f_imm8), pc);
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
 
   {
-    DI opval = XORDI (GET_H_GR (((UINT) 0)), ZEXTSIDI (FLD (f_imm8)));
-    SET_H_GR (((UINT) 0), opval);
-    TRACE_RESULT (current_cpu, abuf, "gr-0", 'D', opval);
+    SI opval = XORSI (GET_H_GRC (((UINT) 0)), ZEXTSIDI (FLD (f_imm8)));
+    SET_H_GRC (((UINT) 0), opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
@@ -4903,7 +5172,7 @@ sh64_compact_trapa (current_cpu, FLD (f_imm8), pc);
   {
     UQI opval = tmp_data;
     SETMEMUQI (current_cpu, pc, tmp_addr, opval);
-    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
   }
 }
 
@@ -4915,7 +5184,7 @@ sh64_compact_trapa (current_cpu, FLD (f_imm8), pc);
 {
   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
-#define FLD(f) abuf->fields.sfmt_movl5_compact.f
+#define FLD(f) abuf->fields.sfmt_movl12_compact.f
   int UNUSED written = 0;
   IADDR UNUSED pc = abuf->addr;
   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
@@ -4923,7 +5192,7 @@ sh64_compact_trapa (current_cpu, FLD (f_imm8), pc);
   {
     SI opval = ORSI (SLLSI (GET_H_GRC (FLD (f_rm)), 16), SRLSI (GET_H_GRC (FLD (f_rn)), 16));
     SET_H_GRC (FLD (f_rn), opval);
-    TRACE_RESULT (current_cpu, abuf, "rn", 'x', opval);
+    CGEN_TRACE_RESULT (current_cpu, abuf, "grc", 'x', opval);
   }
 
 #undef FLD
This page took 0.086474 seconds and 4 git commands to generate.