OSDN Git Service

* cgen-cpu.h: Update for new location of cgen/bitset.h.
authordevans <devans>
Sat, 24 Oct 2009 00:45:54 +0000 (00:45 +0000)
committerdevans <devans>
Sat, 24 Oct 2009 00:45:54 +0000 (00:45 +0000)
* tracedis.h: Ditto.

Plus update generated files to pick up two cgen changes:
1)
* desc-cpu.scm (/gen-hash-defines): Remove #include of cgen-bitset.h.
* sid-cpu.scm (cgen-desc.h): Update location of cgen's bitset.h.
2)
* utils-sim.scm (/gen-set-itype-and-extract): New function.
(/gen-bracketed-set-itype-and-extract): New function.
(/gen-decode-default-entry): Rewrite.
(/table-guts-to-mask, /all-opcode-bits-used?): New functions.
(/gen-decode-insn-entry): New arg table-guts-thus-far, all callers
updated.  Don't unnecessarily emit check for whether all opcode bits
have been examined.
(/gen-decode-expr-set-itype): Delete.
(/gen-decode-expr-entry): Update.
(/gen-decode-table-entry): New arg table-guts-thus-far, all callers
updated.  Keep track of decoder tables used thus far.
(/gen-decoder-switch): Ditto.

154 files changed:
sid/component/cgen-cpu/ChangeLog
sid/component/cgen-cpu/arm7t/ChangeLog
sid/component/cgen-cpu/arm7t/arm-cpu.h
sid/component/cgen-cpu/arm7t/arm-decode.cxx
sid/component/cgen-cpu/arm7t/arm-decode.h
sid/component/cgen-cpu/arm7t/arm-desc.h
sid/component/cgen-cpu/arm7t/arm-sem.cxx
sid/component/cgen-cpu/arm7t/arm-semsw.cxx
sid/component/cgen-cpu/arm7t/thumb-decode.cxx
sid/component/cgen-cpu/arm7t/thumb-decode.h
sid/component/cgen-cpu/arm7t/thumb-sem.cxx
sid/component/cgen-cpu/arm7t/thumb-semsw.cxx
sid/component/cgen-cpu/cgen-cpu.h
sid/component/cgen-cpu/m32r/ChangeLog
sid/component/cgen-cpu/m32r/m32r-cpu.h
sid/component/cgen-cpu/m32r/m32r-decode.cxx
sid/component/cgen-cpu/m32r/m32r-decode.h
sid/component/cgen-cpu/m32r/m32r-defs.h
sid/component/cgen-cpu/m32r/m32r-desc.h
sid/component/cgen-cpu/m32r/m32r-sem.cxx
sid/component/cgen-cpu/mep/ChangeLog
sid/component/cgen-cpu/mep/mep-cop1-16-decode.cxx
sid/component/cgen-cpu/mep/mep-cop1-16-sem.cxx
sid/component/cgen-cpu/mep/mep-cop1-32-decode.cxx
sid/component/cgen-cpu/mep/mep-cop1-32-sem.cxx
sid/component/cgen-cpu/mep/mep-cop1-48-decode.cxx
sid/component/cgen-cpu/mep/mep-cop1-64-decode.cxx
sid/component/cgen-cpu/mep/mep-cop1-64-sem.cxx
sid/component/cgen-cpu/mep/mep-core1-decode.cxx
sid/component/cgen-cpu/mep/mep-core1-sem.cxx
sid/component/cgen-cpu/mep/mep-decode.cxx
sid/component/cgen-cpu/mep/mep-desc.h
sid/component/cgen-cpu/mep/mep-sem.cxx
sid/component/cgen-cpu/mt/ChangeLog
sid/component/cgen-cpu/mt/mt-cpu.h
sid/component/cgen-cpu/mt/mt-decode.cxx
sid/component/cgen-cpu/mt/mt-decode.h
sid/component/cgen-cpu/mt/mt-defs.h
sid/component/cgen-cpu/mt/mt-desc.h
sid/component/cgen-cpu/mt/mt-sem.cxx
sid/component/cgen-cpu/mt/mt-write.cxx
sid/component/cgen-cpu/sh/ChangeLog
sid/component/cgen-cpu/sh/sh-desc.h
sid/component/cgen-cpu/sh/sh2-cpu.h
sid/component/cgen-cpu/sh/sh2-decode.cxx
sid/component/cgen-cpu/sh/sh2-decode.h
sid/component/cgen-cpu/sh/sh2-defs.h
sid/component/cgen-cpu/sh/sh2-model.cxx
sid/component/cgen-cpu/sh/sh2-model.h
sid/component/cgen-cpu/sh/sh2-sem.cxx
sid/component/cgen-cpu/sh/sh2-write.cxx
sid/component/cgen-cpu/sh/sh2a-fpu-cpu.h
sid/component/cgen-cpu/sh/sh2a-fpu-decode.cxx
sid/component/cgen-cpu/sh/sh2a-fpu-decode.h
sid/component/cgen-cpu/sh/sh2a-fpu-defs.h
sid/component/cgen-cpu/sh/sh2a-fpu-model.cxx
sid/component/cgen-cpu/sh/sh2a-fpu-model.h
sid/component/cgen-cpu/sh/sh2a-fpu-sem.cxx
sid/component/cgen-cpu/sh/sh2a-fpu-write.cxx
sid/component/cgen-cpu/sh/sh2a-nofpu-cpu.h
sid/component/cgen-cpu/sh/sh2a-nofpu-decode.cxx
sid/component/cgen-cpu/sh/sh2a-nofpu-decode.h
sid/component/cgen-cpu/sh/sh2a-nofpu-defs.h
sid/component/cgen-cpu/sh/sh2a-nofpu-model.cxx
sid/component/cgen-cpu/sh/sh2a-nofpu-model.h
sid/component/cgen-cpu/sh/sh2a-nofpu-sem.cxx
sid/component/cgen-cpu/sh/sh2a-nofpu-write.cxx
sid/component/cgen-cpu/sh/sh2e-cpu.h
sid/component/cgen-cpu/sh/sh2e-decode.cxx
sid/component/cgen-cpu/sh/sh2e-decode.h
sid/component/cgen-cpu/sh/sh2e-defs.h
sid/component/cgen-cpu/sh/sh2e-model.cxx
sid/component/cgen-cpu/sh/sh2e-model.h
sid/component/cgen-cpu/sh/sh2e-sem.cxx
sid/component/cgen-cpu/sh/sh2e-write.cxx
sid/component/cgen-cpu/sh/sh3-cpu.h
sid/component/cgen-cpu/sh/sh3-decode.cxx
sid/component/cgen-cpu/sh/sh3-decode.h
sid/component/cgen-cpu/sh/sh3-defs.h
sid/component/cgen-cpu/sh/sh3-model.cxx
sid/component/cgen-cpu/sh/sh3-model.h
sid/component/cgen-cpu/sh/sh3-sem.cxx
sid/component/cgen-cpu/sh/sh3-write.cxx
sid/component/cgen-cpu/sh/sh3e-cpu.h
sid/component/cgen-cpu/sh/sh3e-decode.cxx
sid/component/cgen-cpu/sh/sh3e-decode.h
sid/component/cgen-cpu/sh/sh3e-defs.h
sid/component/cgen-cpu/sh/sh3e-model.cxx
sid/component/cgen-cpu/sh/sh3e-model.h
sid/component/cgen-cpu/sh/sh3e-sem.cxx
sid/component/cgen-cpu/sh/sh3e-write.cxx
sid/component/cgen-cpu/sh/sh4-cpu.h
sid/component/cgen-cpu/sh/sh4-decode.cxx
sid/component/cgen-cpu/sh/sh4-decode.h
sid/component/cgen-cpu/sh/sh4-defs.h
sid/component/cgen-cpu/sh/sh4-model.cxx
sid/component/cgen-cpu/sh/sh4-model.h
sid/component/cgen-cpu/sh/sh4-nofpu-cpu.h
sid/component/cgen-cpu/sh/sh4-nofpu-decode.cxx
sid/component/cgen-cpu/sh/sh4-nofpu-decode.h
sid/component/cgen-cpu/sh/sh4-nofpu-defs.h
sid/component/cgen-cpu/sh/sh4-nofpu-model.cxx
sid/component/cgen-cpu/sh/sh4-nofpu-model.h
sid/component/cgen-cpu/sh/sh4-nofpu-sem.cxx
sid/component/cgen-cpu/sh/sh4-nofpu-write.cxx
sid/component/cgen-cpu/sh/sh4-sem.cxx
sid/component/cgen-cpu/sh/sh4-write.cxx
sid/component/cgen-cpu/sh/sh4a-cpu.h
sid/component/cgen-cpu/sh/sh4a-decode.cxx
sid/component/cgen-cpu/sh/sh4a-decode.h
sid/component/cgen-cpu/sh/sh4a-defs.h
sid/component/cgen-cpu/sh/sh4a-model.cxx
sid/component/cgen-cpu/sh/sh4a-model.h
sid/component/cgen-cpu/sh/sh4a-nofpu-cpu.h
sid/component/cgen-cpu/sh/sh4a-nofpu-decode.cxx
sid/component/cgen-cpu/sh/sh4a-nofpu-decode.h
sid/component/cgen-cpu/sh/sh4a-nofpu-defs.h
sid/component/cgen-cpu/sh/sh4a-nofpu-model.cxx
sid/component/cgen-cpu/sh/sh4a-nofpu-model.h
sid/component/cgen-cpu/sh/sh4a-nofpu-sem.cxx
sid/component/cgen-cpu/sh/sh4a-nofpu-write.cxx
sid/component/cgen-cpu/sh/sh4a-sem.cxx
sid/component/cgen-cpu/sh/sh4a-write.cxx
sid/component/cgen-cpu/sh/sh4al-cpu.h
sid/component/cgen-cpu/sh/sh4al-decode.cxx
sid/component/cgen-cpu/sh/sh4al-decode.h
sid/component/cgen-cpu/sh/sh4al-defs.h
sid/component/cgen-cpu/sh/sh4al-model.cxx
sid/component/cgen-cpu/sh/sh4al-model.h
sid/component/cgen-cpu/sh/sh4al-sem.cxx
sid/component/cgen-cpu/sh/sh4al-write.cxx
sid/component/cgen-cpu/sh/sh5-compact-decode.cxx
sid/component/cgen-cpu/sh/sh5-compact-decode.h
sid/component/cgen-cpu/sh/sh5-compact-defs.h
sid/component/cgen-cpu/sh/sh5-compact-model.cxx
sid/component/cgen-cpu/sh/sh5-compact-model.h
sid/component/cgen-cpu/sh/sh5-compact-sem.cxx
sid/component/cgen-cpu/sh/sh5-compact-write.cxx
sid/component/cgen-cpu/sh/sh5-cpu.h
sid/component/cgen-cpu/sh/sh5-media-decode.cxx
sid/component/cgen-cpu/sh/sh5-media-decode.h
sid/component/cgen-cpu/sh/sh5-media-defs.h
sid/component/cgen-cpu/sh/sh5-media-model.cxx
sid/component/cgen-cpu/sh/sh5-media-model.h
sid/component/cgen-cpu/sh/sh5-media-sem.cxx
sid/component/cgen-cpu/sh/sh5-media-write.cxx
sid/component/cgen-cpu/tracedis.h
sid/component/cgen-cpu/xstormy16/ChangeLog
sid/component/cgen-cpu/xstormy16/xstormy16-cpu.h
sid/component/cgen-cpu/xstormy16/xstormy16-decode.cxx
sid/component/cgen-cpu/xstormy16/xstormy16-decode.h
sid/component/cgen-cpu/xstormy16/xstormy16-defs.h
sid/component/cgen-cpu/xstormy16/xstormy16-desc.h
sid/component/cgen-cpu/xstormy16/xstormy16-sem.cxx

index 3d441e1..babf669 100644 (file)
@@ -1,3 +1,8 @@
+2009-10-23  Doug Evans  <dje@sebabeach.org>
+
+       * cgen-cpu.h: Update for new location of cgen/bitset.h.
+       * tracedis.h: Ditto.
+
 2009-02-03  DJ Delorie  <dj@redhat.com>
 
        * compCGEN.cxx: Update to new MeP configuration.
index 8c33941..b6b34e3 100644 (file)
@@ -1,3 +1,9 @@
+2009-10-23  Doug Evans  <dje@sebabeach.org>
+
+       * arm-desc.h: Regenerate.
+       * arm-decode.cxx: Regenerate.
+       * thumb-decode.cxx: Regenerate.
+
 2006-06-26  Dave Brolley  <brolley@redhat.com>
 
        * arm7f.h (get_pc): New member of arm7f_cpu.
index 5f0eb7f..f8469d9 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000, 2001, 2002, 2003 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -61,6 +61,68 @@ public:
   SI h_spsr_und;
   } hardware;
 
+  void stream_cgen_hardware (std::ostream &ost) const 
+  {
+    ost << hardware.h_pc << ' ';
+    for (int i = 0; i < 16; i++)
+      ost << hardware.h_gr[i] << ' ';
+    for (int i = 0; i < 7; i++)
+      ost << hardware.h_gr_usr[i] << ' ';
+    for (int i = 0; i < 7; i++)
+      ost << hardware.h_gr_fiq[i] << ' ';
+    for (int i = 0; i < 2; i++)
+      ost << hardware.h_gr_svc[i] << ' ';
+    for (int i = 0; i < 2; i++)
+      ost << hardware.h_gr_abt[i] << ' ';
+    for (int i = 0; i < 2; i++)
+      ost << hardware.h_gr_irq[i] << ' ';
+    for (int i = 0; i < 2; i++)
+      ost << hardware.h_gr_und[i] << ' ';
+    ost << hardware.h_cbit << ' ';
+    ost << hardware.h_nbit << ' ';
+    ost << hardware.h_vbit << ' ';
+    ost << hardware.h_zbit << ' ';
+    ost << hardware.h_ibit << ' ';
+    ost << hardware.h_fbit << ' ';
+    ost << hardware.h_tbit << ' ';
+    ost << hardware.h_mbits << ' ';
+    ost << hardware.h_spsr_fiq << ' ';
+    ost << hardware.h_spsr_svc << ' ';
+    ost << hardware.h_spsr_abt << ' ';
+    ost << hardware.h_spsr_irq << ' ';
+    ost << hardware.h_spsr_und << ' ';
+  }
+  void destream_cgen_hardware (std::istream &ist) 
+  {
+    ist >> hardware.h_pc;
+    for (int i = 0; i < 16; i++)
+      ist >> hardware.h_gr[i];
+    for (int i = 0; i < 7; i++)
+      ist >> hardware.h_gr_usr[i];
+    for (int i = 0; i < 7; i++)
+      ist >> hardware.h_gr_fiq[i];
+    for (int i = 0; i < 2; i++)
+      ist >> hardware.h_gr_svc[i];
+    for (int i = 0; i < 2; i++)
+      ist >> hardware.h_gr_abt[i];
+    for (int i = 0; i < 2; i++)
+      ist >> hardware.h_gr_irq[i];
+    for (int i = 0; i < 2; i++)
+      ist >> hardware.h_gr_und[i];
+    ist >> hardware.h_cbit;
+    ist >> hardware.h_nbit;
+    ist >> hardware.h_vbit;
+    ist >> hardware.h_zbit;
+    ist >> hardware.h_ibit;
+    ist >> hardware.h_fbit;
+    ist >> hardware.h_tbit;
+    ist >> hardware.h_mbits;
+    ist >> hardware.h_spsr_fiq;
+    ist >> hardware.h_spsr_svc;
+    ist >> hardware.h_spsr_abt;
+    ist >> hardware.h_spsr_irq;
+    ist >> hardware.h_spsr_und;
+  }
   // C++ register access function templates
 #define current_cpu this
 
index 627df87..20fa2d8 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000, 2001, 2002, 2003 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -27,221 +27,221 @@ bool arm_idesc::idesc_table_initialized_p = false;
 
 arm_idesc arm_idesc::idesc_table[ARM_INSN_MSR_S + 1] =
 {
-  { 0, 0, "X_COND", ARM_INSN_X_COND, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, 0, "X_AFTER", ARM_INSN_X_AFTER, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, 0, "X_BEFORE", ARM_INSN_X_BEFORE, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, 0, "X_CTI_CHAIN", ARM_INSN_X_CTI_CHAIN, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, 0, "X_CHAIN", ARM_INSN_X_CHAIN, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, 0, "X_BEGIN", ARM_INSN_X_BEGIN, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_x_invalid, "X_INVALID", ARM_INSN_X_INVALID, { 0|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_b, "B", ARM_INSN_B, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_bl, "BL", ARM_INSN_BL, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_bx, "BX", ARM_INSN_BX, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldr_post_dec_imm_offset, "LDR_POST_DEC_IMM_OFFSET", ARM_INSN_LDR_POST_DEC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldr_post_dec_reg_offset, "LDR_POST_DEC_REG_OFFSET", ARM_INSN_LDR_POST_DEC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldr_post_inc_imm_offset, "LDR_POST_INC_IMM_OFFSET", ARM_INSN_LDR_POST_INC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldr_post_inc_reg_offset, "LDR_POST_INC_REG_OFFSET", ARM_INSN_LDR_POST_INC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldr_post_dec_nonpriv_imm_offset, "LDR_POST_DEC_NONPRIV_IMM_OFFSET", ARM_INSN_LDR_POST_DEC_NONPRIV_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldr_post_dec_nonpriv_reg_offset, "LDR_POST_DEC_NONPRIV_REG_OFFSET", ARM_INSN_LDR_POST_DEC_NONPRIV_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldr_post_inc_nonpriv_imm_offset, "LDR_POST_INC_NONPRIV_IMM_OFFSET", ARM_INSN_LDR_POST_INC_NONPRIV_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldr_post_inc_nonpriv_reg_offset, "LDR_POST_INC_NONPRIV_REG_OFFSET", ARM_INSN_LDR_POST_INC_NONPRIV_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldr_pre_dec_imm_offset, "LDR_PRE_DEC_IMM_OFFSET", ARM_INSN_LDR_PRE_DEC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldr_pre_dec_reg_offset, "LDR_PRE_DEC_REG_OFFSET", ARM_INSN_LDR_PRE_DEC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldr_pre_inc_imm_offset, "LDR_PRE_INC_IMM_OFFSET", ARM_INSN_LDR_PRE_INC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldr_pre_inc_reg_offset, "LDR_PRE_INC_REG_OFFSET", ARM_INSN_LDR_PRE_INC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldr_pre_dec_wb_imm_offset, "LDR_PRE_DEC_WB_IMM_OFFSET", ARM_INSN_LDR_PRE_DEC_WB_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldr_pre_dec_wb_reg_offset, "LDR_PRE_DEC_WB_REG_OFFSET", ARM_INSN_LDR_PRE_DEC_WB_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldr_pre_inc_wb_imm_offset, "LDR_PRE_INC_WB_IMM_OFFSET", ARM_INSN_LDR_PRE_INC_WB_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldr_pre_inc_wb_reg_offset, "LDR_PRE_INC_WB_REG_OFFSET", ARM_INSN_LDR_PRE_INC_WB_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrb_post_dec_imm_offset, "LDRB_POST_DEC_IMM_OFFSET", ARM_INSN_LDRB_POST_DEC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrb_post_dec_reg_offset, "LDRB_POST_DEC_REG_OFFSET", ARM_INSN_LDRB_POST_DEC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrb_post_inc_imm_offset, "LDRB_POST_INC_IMM_OFFSET", ARM_INSN_LDRB_POST_INC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrb_post_inc_reg_offset, "LDRB_POST_INC_REG_OFFSET", ARM_INSN_LDRB_POST_INC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrb_post_dec_nonpriv_imm_offset, "LDRB_POST_DEC_NONPRIV_IMM_OFFSET", ARM_INSN_LDRB_POST_DEC_NONPRIV_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrb_post_dec_nonpriv_reg_offset, "LDRB_POST_DEC_NONPRIV_REG_OFFSET", ARM_INSN_LDRB_POST_DEC_NONPRIV_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrb_post_inc_nonpriv_imm_offset, "LDRB_POST_INC_NONPRIV_IMM_OFFSET", ARM_INSN_LDRB_POST_INC_NONPRIV_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrb_post_inc_nonpriv_reg_offset, "LDRB_POST_INC_NONPRIV_REG_OFFSET", ARM_INSN_LDRB_POST_INC_NONPRIV_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrb_pre_dec_imm_offset, "LDRB_PRE_DEC_IMM_OFFSET", ARM_INSN_LDRB_PRE_DEC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrb_pre_dec_reg_offset, "LDRB_PRE_DEC_REG_OFFSET", ARM_INSN_LDRB_PRE_DEC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrb_pre_inc_imm_offset, "LDRB_PRE_INC_IMM_OFFSET", ARM_INSN_LDRB_PRE_INC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrb_pre_inc_reg_offset, "LDRB_PRE_INC_REG_OFFSET", ARM_INSN_LDRB_PRE_INC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrb_pre_dec_wb_imm_offset, "LDRB_PRE_DEC_WB_IMM_OFFSET", ARM_INSN_LDRB_PRE_DEC_WB_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrb_pre_dec_wb_reg_offset, "LDRB_PRE_DEC_WB_REG_OFFSET", ARM_INSN_LDRB_PRE_DEC_WB_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrb_pre_inc_wb_imm_offset, "LDRB_PRE_INC_WB_IMM_OFFSET", ARM_INSN_LDRB_PRE_INC_WB_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrb_pre_inc_wb_reg_offset, "LDRB_PRE_INC_WB_REG_OFFSET", ARM_INSN_LDRB_PRE_INC_WB_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_str_post_dec_imm_offset, "STR_POST_DEC_IMM_OFFSET", ARM_INSN_STR_POST_DEC_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_str_post_dec_reg_offset, "STR_POST_DEC_REG_OFFSET", ARM_INSN_STR_POST_DEC_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_str_post_inc_imm_offset, "STR_POST_INC_IMM_OFFSET", ARM_INSN_STR_POST_INC_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_str_post_inc_reg_offset, "STR_POST_INC_REG_OFFSET", ARM_INSN_STR_POST_INC_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_str_post_dec_nonpriv_imm_offset, "STR_POST_DEC_NONPRIV_IMM_OFFSET", ARM_INSN_STR_POST_DEC_NONPRIV_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_str_post_dec_nonpriv_reg_offset, "STR_POST_DEC_NONPRIV_REG_OFFSET", ARM_INSN_STR_POST_DEC_NONPRIV_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_str_post_inc_nonpriv_imm_offset, "STR_POST_INC_NONPRIV_IMM_OFFSET", ARM_INSN_STR_POST_INC_NONPRIV_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_str_post_inc_nonpriv_reg_offset, "STR_POST_INC_NONPRIV_REG_OFFSET", ARM_INSN_STR_POST_INC_NONPRIV_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_str_pre_dec_imm_offset, "STR_PRE_DEC_IMM_OFFSET", ARM_INSN_STR_PRE_DEC_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_str_pre_dec_reg_offset, "STR_PRE_DEC_REG_OFFSET", ARM_INSN_STR_PRE_DEC_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_str_pre_inc_imm_offset, "STR_PRE_INC_IMM_OFFSET", ARM_INSN_STR_PRE_INC_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_str_pre_inc_reg_offset, "STR_PRE_INC_REG_OFFSET", ARM_INSN_STR_PRE_INC_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_str_pre_dec_wb_imm_offset, "STR_PRE_DEC_WB_IMM_OFFSET", ARM_INSN_STR_PRE_DEC_WB_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_str_pre_dec_wb_reg_offset, "STR_PRE_DEC_WB_REG_OFFSET", ARM_INSN_STR_PRE_DEC_WB_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_str_pre_inc_wb_imm_offset, "STR_PRE_INC_WB_IMM_OFFSET", ARM_INSN_STR_PRE_INC_WB_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_str_pre_inc_wb_reg_offset, "STR_PRE_INC_WB_REG_OFFSET", ARM_INSN_STR_PRE_INC_WB_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strb_post_dec_imm_offset, "STRB_POST_DEC_IMM_OFFSET", ARM_INSN_STRB_POST_DEC_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strb_post_dec_reg_offset, "STRB_POST_DEC_REG_OFFSET", ARM_INSN_STRB_POST_DEC_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strb_post_inc_imm_offset, "STRB_POST_INC_IMM_OFFSET", ARM_INSN_STRB_POST_INC_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strb_post_inc_reg_offset, "STRB_POST_INC_REG_OFFSET", ARM_INSN_STRB_POST_INC_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strb_post_dec_nonpriv_imm_offset, "STRB_POST_DEC_NONPRIV_IMM_OFFSET", ARM_INSN_STRB_POST_DEC_NONPRIV_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strb_post_dec_nonpriv_reg_offset, "STRB_POST_DEC_NONPRIV_REG_OFFSET", ARM_INSN_STRB_POST_DEC_NONPRIV_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strb_post_inc_nonpriv_imm_offset, "STRB_POST_INC_NONPRIV_IMM_OFFSET", ARM_INSN_STRB_POST_INC_NONPRIV_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strb_post_inc_nonpriv_reg_offset, "STRB_POST_INC_NONPRIV_REG_OFFSET", ARM_INSN_STRB_POST_INC_NONPRIV_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strb_pre_dec_imm_offset, "STRB_PRE_DEC_IMM_OFFSET", ARM_INSN_STRB_PRE_DEC_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strb_pre_dec_reg_offset, "STRB_PRE_DEC_REG_OFFSET", ARM_INSN_STRB_PRE_DEC_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strb_pre_inc_imm_offset, "STRB_PRE_INC_IMM_OFFSET", ARM_INSN_STRB_PRE_INC_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strb_pre_inc_reg_offset, "STRB_PRE_INC_REG_OFFSET", ARM_INSN_STRB_PRE_INC_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strb_pre_dec_wb_imm_offset, "STRB_PRE_DEC_WB_IMM_OFFSET", ARM_INSN_STRB_PRE_DEC_WB_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strb_pre_dec_wb_reg_offset, "STRB_PRE_DEC_WB_REG_OFFSET", ARM_INSN_STRB_PRE_DEC_WB_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strb_pre_inc_wb_imm_offset, "STRB_PRE_INC_WB_IMM_OFFSET", ARM_INSN_STRB_PRE_INC_WB_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strb_pre_inc_wb_reg_offset, "STRB_PRE_INC_WB_REG_OFFSET", ARM_INSN_STRB_PRE_INC_WB_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strh_pre_dec_imm_offset, "STRH_PRE_DEC_IMM_OFFSET", ARM_INSN_STRH_PRE_DEC_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strh_pre_dec_reg_offset, "STRH_PRE_DEC_REG_OFFSET", ARM_INSN_STRH_PRE_DEC_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strh_pre_inc_imm_offset, "STRH_PRE_INC_IMM_OFFSET", ARM_INSN_STRH_PRE_INC_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strh_pre_inc_reg_offset, "STRH_PRE_INC_REG_OFFSET", ARM_INSN_STRH_PRE_INC_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strh_pre_dec_wb_imm_offset, "STRH_PRE_DEC_WB_IMM_OFFSET", ARM_INSN_STRH_PRE_DEC_WB_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strh_pre_dec_wb_reg_offset, "STRH_PRE_DEC_WB_REG_OFFSET", ARM_INSN_STRH_PRE_DEC_WB_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strh_pre_inc_wb_imm_offset, "STRH_PRE_INC_WB_IMM_OFFSET", ARM_INSN_STRH_PRE_INC_WB_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strh_pre_inc_wb_reg_offset, "STRH_PRE_INC_WB_REG_OFFSET", ARM_INSN_STRH_PRE_INC_WB_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strh_post_dec_imm_offset, "STRH_POST_DEC_IMM_OFFSET", ARM_INSN_STRH_POST_DEC_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strh_post_dec_reg_offset, "STRH_POST_DEC_REG_OFFSET", ARM_INSN_STRH_POST_DEC_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strh_post_inc_imm_offset, "STRH_POST_INC_IMM_OFFSET", ARM_INSN_STRH_POST_INC_IMM_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_strh_post_inc_reg_offset, "STRH_POST_INC_REG_OFFSET", ARM_INSN_STRH_POST_INC_REG_OFFSET, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsb_pre_dec_imm_offset, "LDRSB_PRE_DEC_IMM_OFFSET", ARM_INSN_LDRSB_PRE_DEC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsb_pre_dec_reg_offset, "LDRSB_PRE_DEC_REG_OFFSET", ARM_INSN_LDRSB_PRE_DEC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsb_pre_inc_imm_offset, "LDRSB_PRE_INC_IMM_OFFSET", ARM_INSN_LDRSB_PRE_INC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsb_pre_inc_reg_offset, "LDRSB_PRE_INC_REG_OFFSET", ARM_INSN_LDRSB_PRE_INC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsb_pre_dec_wb_imm_offset, "LDRSB_PRE_DEC_WB_IMM_OFFSET", ARM_INSN_LDRSB_PRE_DEC_WB_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsb_pre_dec_wb_reg_offset, "LDRSB_PRE_DEC_WB_REG_OFFSET", ARM_INSN_LDRSB_PRE_DEC_WB_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsb_pre_inc_wb_imm_offset, "LDRSB_PRE_INC_WB_IMM_OFFSET", ARM_INSN_LDRSB_PRE_INC_WB_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsb_pre_inc_wb_reg_offset, "LDRSB_PRE_INC_WB_REG_OFFSET", ARM_INSN_LDRSB_PRE_INC_WB_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsb_post_dec_imm_offset, "LDRSB_POST_DEC_IMM_OFFSET", ARM_INSN_LDRSB_POST_DEC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsb_post_dec_reg_offset, "LDRSB_POST_DEC_REG_OFFSET", ARM_INSN_LDRSB_POST_DEC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsb_post_inc_imm_offset, "LDRSB_POST_INC_IMM_OFFSET", ARM_INSN_LDRSB_POST_INC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsb_post_inc_reg_offset, "LDRSB_POST_INC_REG_OFFSET", ARM_INSN_LDRSB_POST_INC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrh_pre_dec_imm_offset, "LDRH_PRE_DEC_IMM_OFFSET", ARM_INSN_LDRH_PRE_DEC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrh_pre_dec_reg_offset, "LDRH_PRE_DEC_REG_OFFSET", ARM_INSN_LDRH_PRE_DEC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrh_pre_inc_imm_offset, "LDRH_PRE_INC_IMM_OFFSET", ARM_INSN_LDRH_PRE_INC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrh_pre_inc_reg_offset, "LDRH_PRE_INC_REG_OFFSET", ARM_INSN_LDRH_PRE_INC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrh_pre_dec_wb_imm_offset, "LDRH_PRE_DEC_WB_IMM_OFFSET", ARM_INSN_LDRH_PRE_DEC_WB_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrh_pre_dec_wb_reg_offset, "LDRH_PRE_DEC_WB_REG_OFFSET", ARM_INSN_LDRH_PRE_DEC_WB_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrh_pre_inc_wb_imm_offset, "LDRH_PRE_INC_WB_IMM_OFFSET", ARM_INSN_LDRH_PRE_INC_WB_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrh_pre_inc_wb_reg_offset, "LDRH_PRE_INC_WB_REG_OFFSET", ARM_INSN_LDRH_PRE_INC_WB_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrh_post_dec_imm_offset, "LDRH_POST_DEC_IMM_OFFSET", ARM_INSN_LDRH_POST_DEC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrh_post_dec_reg_offset, "LDRH_POST_DEC_REG_OFFSET", ARM_INSN_LDRH_POST_DEC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrh_post_inc_imm_offset, "LDRH_POST_INC_IMM_OFFSET", ARM_INSN_LDRH_POST_INC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrh_post_inc_reg_offset, "LDRH_POST_INC_REG_OFFSET", ARM_INSN_LDRH_POST_INC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsh_pre_dec_imm_offset, "LDRSH_PRE_DEC_IMM_OFFSET", ARM_INSN_LDRSH_PRE_DEC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsh_pre_dec_reg_offset, "LDRSH_PRE_DEC_REG_OFFSET", ARM_INSN_LDRSH_PRE_DEC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsh_pre_inc_imm_offset, "LDRSH_PRE_INC_IMM_OFFSET", ARM_INSN_LDRSH_PRE_INC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsh_pre_inc_reg_offset, "LDRSH_PRE_INC_REG_OFFSET", ARM_INSN_LDRSH_PRE_INC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsh_pre_dec_wb_imm_offset, "LDRSH_PRE_DEC_WB_IMM_OFFSET", ARM_INSN_LDRSH_PRE_DEC_WB_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsh_pre_dec_wb_reg_offset, "LDRSH_PRE_DEC_WB_REG_OFFSET", ARM_INSN_LDRSH_PRE_DEC_WB_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsh_pre_inc_wb_imm_offset, "LDRSH_PRE_INC_WB_IMM_OFFSET", ARM_INSN_LDRSH_PRE_INC_WB_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsh_pre_inc_wb_reg_offset, "LDRSH_PRE_INC_WB_REG_OFFSET", ARM_INSN_LDRSH_PRE_INC_WB_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsh_post_dec_imm_offset, "LDRSH_POST_DEC_IMM_OFFSET", ARM_INSN_LDRSH_POST_DEC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsh_post_dec_reg_offset, "LDRSH_POST_DEC_REG_OFFSET", ARM_INSN_LDRSH_POST_DEC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsh_post_inc_imm_offset, "LDRSH_POST_INC_IMM_OFFSET", ARM_INSN_LDRSH_POST_INC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldrsh_post_inc_reg_offset, "LDRSH_POST_INC_REG_OFFSET", ARM_INSN_LDRSH_POST_INC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_mul, "MUL", ARM_INSN_MUL, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_mla, "MLA", ARM_INSN_MLA, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_umull, "UMULL", ARM_INSN_UMULL, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_umlal, "UMLAL", ARM_INSN_UMLAL, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_smull, "SMULL", ARM_INSN_SMULL, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_smlal, "SMLAL", ARM_INSN_SMLAL, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_swp, "SWP", ARM_INSN_SWP, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_swpb, "SWPB", ARM_INSN_SWPB, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_swi, "SWI", ARM_INSN_SWI, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_and_reg_imm_shift, "AND_REG_IMM_SHIFT", ARM_INSN_AND_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_and_reg_reg_shift, "AND_REG_REG_SHIFT", ARM_INSN_AND_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 12 } },
-  { 0, arm_sem_and_imm, "AND_IMM", ARM_INSN_AND_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_orr_reg_imm_shift, "ORR_REG_IMM_SHIFT", ARM_INSN_ORR_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_orr_reg_reg_shift, "ORR_REG_REG_SHIFT", ARM_INSN_ORR_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 12 } },
-  { 0, arm_sem_orr_imm, "ORR_IMM", ARM_INSN_ORR_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_eor_reg_imm_shift, "EOR_REG_IMM_SHIFT", ARM_INSN_EOR_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_eor_reg_reg_shift, "EOR_REG_REG_SHIFT", ARM_INSN_EOR_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 12 } },
-  { 0, arm_sem_eor_imm, "EOR_IMM", ARM_INSN_EOR_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_mov_reg_imm_shift, "MOV_REG_IMM_SHIFT", ARM_INSN_MOV_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_mov_reg_reg_shift, "MOV_REG_REG_SHIFT", ARM_INSN_MOV_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 12 } },
-  { 0, arm_sem_mov_imm, "MOV_IMM", ARM_INSN_MOV_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_bic_reg_imm_shift, "BIC_REG_IMM_SHIFT", ARM_INSN_BIC_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_bic_reg_reg_shift, "BIC_REG_REG_SHIFT", ARM_INSN_BIC_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 12 } },
-  { 0, arm_sem_bic_imm, "BIC_IMM", ARM_INSN_BIC_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_mvn_reg_imm_shift, "MVN_REG_IMM_SHIFT", ARM_INSN_MVN_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_mvn_reg_reg_shift, "MVN_REG_REG_SHIFT", ARM_INSN_MVN_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 12 } },
-  { 0, arm_sem_mvn_imm, "MVN_IMM", ARM_INSN_MVN_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_add_reg_imm_shift, "ADD_REG_IMM_SHIFT", ARM_INSN_ADD_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_add_reg_reg_shift, "ADD_REG_REG_SHIFT", ARM_INSN_ADD_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 12 } },
-  { 0, arm_sem_add_imm, "ADD_IMM", ARM_INSN_ADD_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_adc_reg_imm_shift, "ADC_REG_IMM_SHIFT", ARM_INSN_ADC_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_adc_reg_reg_shift, "ADC_REG_REG_SHIFT", ARM_INSN_ADC_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 12 } },
-  { 0, arm_sem_adc_imm, "ADC_IMM", ARM_INSN_ADC_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_sub_reg_imm_shift, "SUB_REG_IMM_SHIFT", ARM_INSN_SUB_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_sub_reg_reg_shift, "SUB_REG_REG_SHIFT", ARM_INSN_SUB_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 12 } },
-  { 0, arm_sem_sub_imm, "SUB_IMM", ARM_INSN_SUB_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_sbc_reg_imm_shift, "SBC_REG_IMM_SHIFT", ARM_INSN_SBC_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_sbc_reg_reg_shift, "SBC_REG_REG_SHIFT", ARM_INSN_SBC_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 12 } },
-  { 0, arm_sem_sbc_imm, "SBC_IMM", ARM_INSN_SBC_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_rsb_reg_imm_shift, "RSB_REG_IMM_SHIFT", ARM_INSN_RSB_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_rsb_reg_reg_shift, "RSB_REG_REG_SHIFT", ARM_INSN_RSB_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 12 } },
-  { 0, arm_sem_rsb_imm, "RSB_IMM", ARM_INSN_RSB_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_rsc_reg_imm_shift, "RSC_REG_IMM_SHIFT", ARM_INSN_RSC_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_rsc_reg_reg_shift, "RSC_REG_REG_SHIFT", ARM_INSN_RSC_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 12 } },
-  { 0, arm_sem_rsc_imm, "RSC_IMM", ARM_INSN_RSC_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_tst_reg_imm_shift, "TST_REG_IMM_SHIFT", ARM_INSN_TST_REG_IMM_SHIFT, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_tst_reg_reg_shift, "TST_REG_REG_SHIFT", ARM_INSN_TST_REG_REG_SHIFT, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 12 } },
-  { 0, arm_sem_tst_imm, "TST_IMM", ARM_INSN_TST_IMM, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_teq_reg_imm_shift, "TEQ_REG_IMM_SHIFT", ARM_INSN_TEQ_REG_IMM_SHIFT, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_teq_reg_reg_shift, "TEQ_REG_REG_SHIFT", ARM_INSN_TEQ_REG_REG_SHIFT, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 12 } },
-  { 0, arm_sem_teq_imm, "TEQ_IMM", ARM_INSN_TEQ_IMM, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_cmp_reg_imm_shift, "CMP_REG_IMM_SHIFT", ARM_INSN_CMP_REG_IMM_SHIFT, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_cmp_reg_reg_shift, "CMP_REG_REG_SHIFT", ARM_INSN_CMP_REG_REG_SHIFT, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 12 } },
-  { 0, arm_sem_cmp_imm, "CMP_IMM", ARM_INSN_CMP_IMM, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_cmn_reg_imm_shift, "CMN_REG_IMM_SHIFT", ARM_INSN_CMN_REG_IMM_SHIFT, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_cmn_reg_reg_shift, "CMN_REG_REG_SHIFT", ARM_INSN_CMN_REG_REG_SHIFT, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 12 } },
-  { 0, arm_sem_cmn_imm, "CMN_IMM", ARM_INSN_CMN_IMM, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldmda, "LDMDA", ARM_INSN_LDMDA, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldmda_sw, "LDMDA_SW", ARM_INSN_LDMDA_SW, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldmda_wb, "LDMDA_WB", ARM_INSN_LDMDA_WB, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldmda_sw_wb, "LDMDA_SW_WB", ARM_INSN_LDMDA_SW_WB, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldmib, "LDMIB", ARM_INSN_LDMIB, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldmib_sw, "LDMIB_SW", ARM_INSN_LDMIB_SW, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldmib_wb, "LDMIB_WB", ARM_INSN_LDMIB_WB, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldmib_sw_wb, "LDMIB_SW_WB", ARM_INSN_LDMIB_SW_WB, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldmia, "LDMIA", ARM_INSN_LDMIA, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldmia_sw, "LDMIA_SW", ARM_INSN_LDMIA_SW, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldmia_wb, "LDMIA_WB", ARM_INSN_LDMIA_WB, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldmia_sw_wb, "LDMIA_SW_WB", ARM_INSN_LDMIA_SW_WB, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldmdb, "LDMDB", ARM_INSN_LDMDB, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldmdb_sw, "LDMDB_SW", ARM_INSN_LDMDB_SW, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldmdb_wb, "LDMDB_WB", ARM_INSN_LDMDB_WB, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_ldmdb_sw_wb, "LDMDB_SW_WB", ARM_INSN_LDMDB_SW_WB, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_stmdb, "STMDB", ARM_INSN_STMDB, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_stmdb_sw, "STMDB_SW", ARM_INSN_STMDB_SW, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_stmdb_wb, "STMDB_WB", ARM_INSN_STMDB_WB, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_stmdb_sw_wb, "STMDB_SW_WB", ARM_INSN_STMDB_SW_WB, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_stmib, "STMIB", ARM_INSN_STMIB, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_stmib_sw, "STMIB_SW", ARM_INSN_STMIB_SW, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_stmib_wb, "STMIB_WB", ARM_INSN_STMIB_WB, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_stmib_sw_wb, "STMIB_SW_WB", ARM_INSN_STMIB_SW_WB, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_stmia, "STMIA", ARM_INSN_STMIA, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_stmia_sw, "STMIA_SW", ARM_INSN_STMIA_SW, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_stmia_wb, "STMIA_WB", ARM_INSN_STMIA_WB, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_stmia_sw_wb, "STMIA_SW_WB", ARM_INSN_STMIA_SW_WB, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_stmda, "STMDA", ARM_INSN_STMDA, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_stmda_sw, "STMDA_SW", ARM_INSN_STMDA_SW, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_stmda_wb, "STMDA_WB", ARM_INSN_STMDA_WB, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_stmda_sw_wb, "STMDA_SW_WB", ARM_INSN_STMDA_SW_WB, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_mrs_c, "MRS_C", ARM_INSN_MRS_C, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_mrs_s, "MRS_S", ARM_INSN_MRS_S, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_msr_c, "MSR_C", ARM_INSN_MSR_C, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
-  { 0, arm_sem_msr_s, "MSR_S", ARM_INSN_MSR_S, { 0, (1<<MACH_BASE), (1<<ISA_ARM), 8 } },
+  { 0, 0, "X_COND", ARM_INSN_X_COND, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, 0, "X_AFTER", ARM_INSN_X_AFTER, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, 0, "X_BEFORE", ARM_INSN_X_BEFORE, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, 0, "X_CTI_CHAIN", ARM_INSN_X_CTI_CHAIN, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, 0, "X_CHAIN", ARM_INSN_X_CHAIN, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, 0, "X_BEGIN", ARM_INSN_X_BEGIN, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_x_invalid, "X_INVALID", ARM_INSN_X_INVALID, { 0|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_b, "B", ARM_INSN_B, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_bl, "BL", ARM_INSN_BL, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_bx, "BX", ARM_INSN_BX, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldr_post_dec_imm_offset, "LDR_POST_DEC_IMM_OFFSET", ARM_INSN_LDR_POST_DEC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldr_post_dec_reg_offset, "LDR_POST_DEC_REG_OFFSET", ARM_INSN_LDR_POST_DEC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldr_post_inc_imm_offset, "LDR_POST_INC_IMM_OFFSET", ARM_INSN_LDR_POST_INC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldr_post_inc_reg_offset, "LDR_POST_INC_REG_OFFSET", ARM_INSN_LDR_POST_INC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldr_post_dec_nonpriv_imm_offset, "LDR_POST_DEC_NONPRIV_IMM_OFFSET", ARM_INSN_LDR_POST_DEC_NONPRIV_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldr_post_dec_nonpriv_reg_offset, "LDR_POST_DEC_NONPRIV_REG_OFFSET", ARM_INSN_LDR_POST_DEC_NONPRIV_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldr_post_inc_nonpriv_imm_offset, "LDR_POST_INC_NONPRIV_IMM_OFFSET", ARM_INSN_LDR_POST_INC_NONPRIV_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldr_post_inc_nonpriv_reg_offset, "LDR_POST_INC_NONPRIV_REG_OFFSET", ARM_INSN_LDR_POST_INC_NONPRIV_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldr_pre_dec_imm_offset, "LDR_PRE_DEC_IMM_OFFSET", ARM_INSN_LDR_PRE_DEC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldr_pre_dec_reg_offset, "LDR_PRE_DEC_REG_OFFSET", ARM_INSN_LDR_PRE_DEC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldr_pre_inc_imm_offset, "LDR_PRE_INC_IMM_OFFSET", ARM_INSN_LDR_PRE_INC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldr_pre_inc_reg_offset, "LDR_PRE_INC_REG_OFFSET", ARM_INSN_LDR_PRE_INC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldr_pre_dec_wb_imm_offset, "LDR_PRE_DEC_WB_IMM_OFFSET", ARM_INSN_LDR_PRE_DEC_WB_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldr_pre_dec_wb_reg_offset, "LDR_PRE_DEC_WB_REG_OFFSET", ARM_INSN_LDR_PRE_DEC_WB_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldr_pre_inc_wb_imm_offset, "LDR_PRE_INC_WB_IMM_OFFSET", ARM_INSN_LDR_PRE_INC_WB_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldr_pre_inc_wb_reg_offset, "LDR_PRE_INC_WB_REG_OFFSET", ARM_INSN_LDR_PRE_INC_WB_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrb_post_dec_imm_offset, "LDRB_POST_DEC_IMM_OFFSET", ARM_INSN_LDRB_POST_DEC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrb_post_dec_reg_offset, "LDRB_POST_DEC_REG_OFFSET", ARM_INSN_LDRB_POST_DEC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrb_post_inc_imm_offset, "LDRB_POST_INC_IMM_OFFSET", ARM_INSN_LDRB_POST_INC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrb_post_inc_reg_offset, "LDRB_POST_INC_REG_OFFSET", ARM_INSN_LDRB_POST_INC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrb_post_dec_nonpriv_imm_offset, "LDRB_POST_DEC_NONPRIV_IMM_OFFSET", ARM_INSN_LDRB_POST_DEC_NONPRIV_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrb_post_dec_nonpriv_reg_offset, "LDRB_POST_DEC_NONPRIV_REG_OFFSET", ARM_INSN_LDRB_POST_DEC_NONPRIV_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrb_post_inc_nonpriv_imm_offset, "LDRB_POST_INC_NONPRIV_IMM_OFFSET", ARM_INSN_LDRB_POST_INC_NONPRIV_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrb_post_inc_nonpriv_reg_offset, "LDRB_POST_INC_NONPRIV_REG_OFFSET", ARM_INSN_LDRB_POST_INC_NONPRIV_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrb_pre_dec_imm_offset, "LDRB_PRE_DEC_IMM_OFFSET", ARM_INSN_LDRB_PRE_DEC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrb_pre_dec_reg_offset, "LDRB_PRE_DEC_REG_OFFSET", ARM_INSN_LDRB_PRE_DEC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrb_pre_inc_imm_offset, "LDRB_PRE_INC_IMM_OFFSET", ARM_INSN_LDRB_PRE_INC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrb_pre_inc_reg_offset, "LDRB_PRE_INC_REG_OFFSET", ARM_INSN_LDRB_PRE_INC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrb_pre_dec_wb_imm_offset, "LDRB_PRE_DEC_WB_IMM_OFFSET", ARM_INSN_LDRB_PRE_DEC_WB_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrb_pre_dec_wb_reg_offset, "LDRB_PRE_DEC_WB_REG_OFFSET", ARM_INSN_LDRB_PRE_DEC_WB_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrb_pre_inc_wb_imm_offset, "LDRB_PRE_INC_WB_IMM_OFFSET", ARM_INSN_LDRB_PRE_INC_WB_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrb_pre_inc_wb_reg_offset, "LDRB_PRE_INC_WB_REG_OFFSET", ARM_INSN_LDRB_PRE_INC_WB_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_str_post_dec_imm_offset, "STR_POST_DEC_IMM_OFFSET", ARM_INSN_STR_POST_DEC_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_str_post_dec_reg_offset, "STR_POST_DEC_REG_OFFSET", ARM_INSN_STR_POST_DEC_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_str_post_inc_imm_offset, "STR_POST_INC_IMM_OFFSET", ARM_INSN_STR_POST_INC_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_str_post_inc_reg_offset, "STR_POST_INC_REG_OFFSET", ARM_INSN_STR_POST_INC_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_str_post_dec_nonpriv_imm_offset, "STR_POST_DEC_NONPRIV_IMM_OFFSET", ARM_INSN_STR_POST_DEC_NONPRIV_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_str_post_dec_nonpriv_reg_offset, "STR_POST_DEC_NONPRIV_REG_OFFSET", ARM_INSN_STR_POST_DEC_NONPRIV_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_str_post_inc_nonpriv_imm_offset, "STR_POST_INC_NONPRIV_IMM_OFFSET", ARM_INSN_STR_POST_INC_NONPRIV_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_str_post_inc_nonpriv_reg_offset, "STR_POST_INC_NONPRIV_REG_OFFSET", ARM_INSN_STR_POST_INC_NONPRIV_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_str_pre_dec_imm_offset, "STR_PRE_DEC_IMM_OFFSET", ARM_INSN_STR_PRE_DEC_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_str_pre_dec_reg_offset, "STR_PRE_DEC_REG_OFFSET", ARM_INSN_STR_PRE_DEC_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_str_pre_inc_imm_offset, "STR_PRE_INC_IMM_OFFSET", ARM_INSN_STR_PRE_INC_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_str_pre_inc_reg_offset, "STR_PRE_INC_REG_OFFSET", ARM_INSN_STR_PRE_INC_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_str_pre_dec_wb_imm_offset, "STR_PRE_DEC_WB_IMM_OFFSET", ARM_INSN_STR_PRE_DEC_WB_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_str_pre_dec_wb_reg_offset, "STR_PRE_DEC_WB_REG_OFFSET", ARM_INSN_STR_PRE_DEC_WB_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_str_pre_inc_wb_imm_offset, "STR_PRE_INC_WB_IMM_OFFSET", ARM_INSN_STR_PRE_INC_WB_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_str_pre_inc_wb_reg_offset, "STR_PRE_INC_WB_REG_OFFSET", ARM_INSN_STR_PRE_INC_WB_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strb_post_dec_imm_offset, "STRB_POST_DEC_IMM_OFFSET", ARM_INSN_STRB_POST_DEC_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strb_post_dec_reg_offset, "STRB_POST_DEC_REG_OFFSET", ARM_INSN_STRB_POST_DEC_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strb_post_inc_imm_offset, "STRB_POST_INC_IMM_OFFSET", ARM_INSN_STRB_POST_INC_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strb_post_inc_reg_offset, "STRB_POST_INC_REG_OFFSET", ARM_INSN_STRB_POST_INC_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strb_post_dec_nonpriv_imm_offset, "STRB_POST_DEC_NONPRIV_IMM_OFFSET", ARM_INSN_STRB_POST_DEC_NONPRIV_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strb_post_dec_nonpriv_reg_offset, "STRB_POST_DEC_NONPRIV_REG_OFFSET", ARM_INSN_STRB_POST_DEC_NONPRIV_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strb_post_inc_nonpriv_imm_offset, "STRB_POST_INC_NONPRIV_IMM_OFFSET", ARM_INSN_STRB_POST_INC_NONPRIV_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strb_post_inc_nonpriv_reg_offset, "STRB_POST_INC_NONPRIV_REG_OFFSET", ARM_INSN_STRB_POST_INC_NONPRIV_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strb_pre_dec_imm_offset, "STRB_PRE_DEC_IMM_OFFSET", ARM_INSN_STRB_PRE_DEC_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strb_pre_dec_reg_offset, "STRB_PRE_DEC_REG_OFFSET", ARM_INSN_STRB_PRE_DEC_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strb_pre_inc_imm_offset, "STRB_PRE_INC_IMM_OFFSET", ARM_INSN_STRB_PRE_INC_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strb_pre_inc_reg_offset, "STRB_PRE_INC_REG_OFFSET", ARM_INSN_STRB_PRE_INC_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strb_pre_dec_wb_imm_offset, "STRB_PRE_DEC_WB_IMM_OFFSET", ARM_INSN_STRB_PRE_DEC_WB_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strb_pre_dec_wb_reg_offset, "STRB_PRE_DEC_WB_REG_OFFSET", ARM_INSN_STRB_PRE_DEC_WB_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strb_pre_inc_wb_imm_offset, "STRB_PRE_INC_WB_IMM_OFFSET", ARM_INSN_STRB_PRE_INC_WB_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strb_pre_inc_wb_reg_offset, "STRB_PRE_INC_WB_REG_OFFSET", ARM_INSN_STRB_PRE_INC_WB_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strh_pre_dec_imm_offset, "STRH_PRE_DEC_IMM_OFFSET", ARM_INSN_STRH_PRE_DEC_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strh_pre_dec_reg_offset, "STRH_PRE_DEC_REG_OFFSET", ARM_INSN_STRH_PRE_DEC_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strh_pre_inc_imm_offset, "STRH_PRE_INC_IMM_OFFSET", ARM_INSN_STRH_PRE_INC_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strh_pre_inc_reg_offset, "STRH_PRE_INC_REG_OFFSET", ARM_INSN_STRH_PRE_INC_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strh_pre_dec_wb_imm_offset, "STRH_PRE_DEC_WB_IMM_OFFSET", ARM_INSN_STRH_PRE_DEC_WB_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strh_pre_dec_wb_reg_offset, "STRH_PRE_DEC_WB_REG_OFFSET", ARM_INSN_STRH_PRE_DEC_WB_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strh_pre_inc_wb_imm_offset, "STRH_PRE_INC_WB_IMM_OFFSET", ARM_INSN_STRH_PRE_INC_WB_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strh_pre_inc_wb_reg_offset, "STRH_PRE_INC_WB_REG_OFFSET", ARM_INSN_STRH_PRE_INC_WB_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strh_post_dec_imm_offset, "STRH_POST_DEC_IMM_OFFSET", ARM_INSN_STRH_POST_DEC_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strh_post_dec_reg_offset, "STRH_POST_DEC_REG_OFFSET", ARM_INSN_STRH_POST_DEC_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strh_post_inc_imm_offset, "STRH_POST_INC_IMM_OFFSET", ARM_INSN_STRH_POST_INC_IMM_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_strh_post_inc_reg_offset, "STRH_POST_INC_REG_OFFSET", ARM_INSN_STRH_POST_INC_REG_OFFSET, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsb_pre_dec_imm_offset, "LDRSB_PRE_DEC_IMM_OFFSET", ARM_INSN_LDRSB_PRE_DEC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsb_pre_dec_reg_offset, "LDRSB_PRE_DEC_REG_OFFSET", ARM_INSN_LDRSB_PRE_DEC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsb_pre_inc_imm_offset, "LDRSB_PRE_INC_IMM_OFFSET", ARM_INSN_LDRSB_PRE_INC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsb_pre_inc_reg_offset, "LDRSB_PRE_INC_REG_OFFSET", ARM_INSN_LDRSB_PRE_INC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsb_pre_dec_wb_imm_offset, "LDRSB_PRE_DEC_WB_IMM_OFFSET", ARM_INSN_LDRSB_PRE_DEC_WB_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsb_pre_dec_wb_reg_offset, "LDRSB_PRE_DEC_WB_REG_OFFSET", ARM_INSN_LDRSB_PRE_DEC_WB_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsb_pre_inc_wb_imm_offset, "LDRSB_PRE_INC_WB_IMM_OFFSET", ARM_INSN_LDRSB_PRE_INC_WB_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsb_pre_inc_wb_reg_offset, "LDRSB_PRE_INC_WB_REG_OFFSET", ARM_INSN_LDRSB_PRE_INC_WB_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsb_post_dec_imm_offset, "LDRSB_POST_DEC_IMM_OFFSET", ARM_INSN_LDRSB_POST_DEC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsb_post_dec_reg_offset, "LDRSB_POST_DEC_REG_OFFSET", ARM_INSN_LDRSB_POST_DEC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsb_post_inc_imm_offset, "LDRSB_POST_INC_IMM_OFFSET", ARM_INSN_LDRSB_POST_INC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsb_post_inc_reg_offset, "LDRSB_POST_INC_REG_OFFSET", ARM_INSN_LDRSB_POST_INC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrh_pre_dec_imm_offset, "LDRH_PRE_DEC_IMM_OFFSET", ARM_INSN_LDRH_PRE_DEC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrh_pre_dec_reg_offset, "LDRH_PRE_DEC_REG_OFFSET", ARM_INSN_LDRH_PRE_DEC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrh_pre_inc_imm_offset, "LDRH_PRE_INC_IMM_OFFSET", ARM_INSN_LDRH_PRE_INC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrh_pre_inc_reg_offset, "LDRH_PRE_INC_REG_OFFSET", ARM_INSN_LDRH_PRE_INC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrh_pre_dec_wb_imm_offset, "LDRH_PRE_DEC_WB_IMM_OFFSET", ARM_INSN_LDRH_PRE_DEC_WB_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrh_pre_dec_wb_reg_offset, "LDRH_PRE_DEC_WB_REG_OFFSET", ARM_INSN_LDRH_PRE_DEC_WB_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrh_pre_inc_wb_imm_offset, "LDRH_PRE_INC_WB_IMM_OFFSET", ARM_INSN_LDRH_PRE_INC_WB_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrh_pre_inc_wb_reg_offset, "LDRH_PRE_INC_WB_REG_OFFSET", ARM_INSN_LDRH_PRE_INC_WB_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrh_post_dec_imm_offset, "LDRH_POST_DEC_IMM_OFFSET", ARM_INSN_LDRH_POST_DEC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrh_post_dec_reg_offset, "LDRH_POST_DEC_REG_OFFSET", ARM_INSN_LDRH_POST_DEC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrh_post_inc_imm_offset, "LDRH_POST_INC_IMM_OFFSET", ARM_INSN_LDRH_POST_INC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrh_post_inc_reg_offset, "LDRH_POST_INC_REG_OFFSET", ARM_INSN_LDRH_POST_INC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsh_pre_dec_imm_offset, "LDRSH_PRE_DEC_IMM_OFFSET", ARM_INSN_LDRSH_PRE_DEC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsh_pre_dec_reg_offset, "LDRSH_PRE_DEC_REG_OFFSET", ARM_INSN_LDRSH_PRE_DEC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsh_pre_inc_imm_offset, "LDRSH_PRE_INC_IMM_OFFSET", ARM_INSN_LDRSH_PRE_INC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsh_pre_inc_reg_offset, "LDRSH_PRE_INC_REG_OFFSET", ARM_INSN_LDRSH_PRE_INC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsh_pre_dec_wb_imm_offset, "LDRSH_PRE_DEC_WB_IMM_OFFSET", ARM_INSN_LDRSH_PRE_DEC_WB_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsh_pre_dec_wb_reg_offset, "LDRSH_PRE_DEC_WB_REG_OFFSET", ARM_INSN_LDRSH_PRE_DEC_WB_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsh_pre_inc_wb_imm_offset, "LDRSH_PRE_INC_WB_IMM_OFFSET", ARM_INSN_LDRSH_PRE_INC_WB_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsh_pre_inc_wb_reg_offset, "LDRSH_PRE_INC_WB_REG_OFFSET", ARM_INSN_LDRSH_PRE_INC_WB_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsh_post_dec_imm_offset, "LDRSH_POST_DEC_IMM_OFFSET", ARM_INSN_LDRSH_POST_DEC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsh_post_dec_reg_offset, "LDRSH_POST_DEC_REG_OFFSET", ARM_INSN_LDRSH_POST_DEC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsh_post_inc_imm_offset, "LDRSH_POST_INC_IMM_OFFSET", ARM_INSN_LDRSH_POST_INC_IMM_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldrsh_post_inc_reg_offset, "LDRSH_POST_INC_REG_OFFSET", ARM_INSN_LDRSH_POST_INC_REG_OFFSET, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_mul, "MUL", ARM_INSN_MUL, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_mla, "MLA", ARM_INSN_MLA, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_umull, "UMULL", ARM_INSN_UMULL, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_umlal, "UMLAL", ARM_INSN_UMLAL, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_smull, "SMULL", ARM_INSN_SMULL, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_smlal, "SMLAL", ARM_INSN_SMLAL, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_swp, "SWP", ARM_INSN_SWP, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_swpb, "SWPB", ARM_INSN_SWPB, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_swi, "SWI", ARM_INSN_SWI, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_and_reg_imm_shift, "AND_REG_IMM_SHIFT", ARM_INSN_AND_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_and_reg_reg_shift, "AND_REG_REG_SHIFT", ARM_INSN_AND_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 12 } },
+  { 0, arm_sem_and_imm, "AND_IMM", ARM_INSN_AND_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_orr_reg_imm_shift, "ORR_REG_IMM_SHIFT", ARM_INSN_ORR_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_orr_reg_reg_shift, "ORR_REG_REG_SHIFT", ARM_INSN_ORR_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 12 } },
+  { 0, arm_sem_orr_imm, "ORR_IMM", ARM_INSN_ORR_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_eor_reg_imm_shift, "EOR_REG_IMM_SHIFT", ARM_INSN_EOR_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_eor_reg_reg_shift, "EOR_REG_REG_SHIFT", ARM_INSN_EOR_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 12 } },
+  { 0, arm_sem_eor_imm, "EOR_IMM", ARM_INSN_EOR_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_mov_reg_imm_shift, "MOV_REG_IMM_SHIFT", ARM_INSN_MOV_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_mov_reg_reg_shift, "MOV_REG_REG_SHIFT", ARM_INSN_MOV_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 12 } },
+  { 0, arm_sem_mov_imm, "MOV_IMM", ARM_INSN_MOV_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_bic_reg_imm_shift, "BIC_REG_IMM_SHIFT", ARM_INSN_BIC_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_bic_reg_reg_shift, "BIC_REG_REG_SHIFT", ARM_INSN_BIC_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 12 } },
+  { 0, arm_sem_bic_imm, "BIC_IMM", ARM_INSN_BIC_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_mvn_reg_imm_shift, "MVN_REG_IMM_SHIFT", ARM_INSN_MVN_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_mvn_reg_reg_shift, "MVN_REG_REG_SHIFT", ARM_INSN_MVN_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 12 } },
+  { 0, arm_sem_mvn_imm, "MVN_IMM", ARM_INSN_MVN_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_add_reg_imm_shift, "ADD_REG_IMM_SHIFT", ARM_INSN_ADD_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_add_reg_reg_shift, "ADD_REG_REG_SHIFT", ARM_INSN_ADD_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 12 } },
+  { 0, arm_sem_add_imm, "ADD_IMM", ARM_INSN_ADD_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_adc_reg_imm_shift, "ADC_REG_IMM_SHIFT", ARM_INSN_ADC_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_adc_reg_reg_shift, "ADC_REG_REG_SHIFT", ARM_INSN_ADC_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 12 } },
+  { 0, arm_sem_adc_imm, "ADC_IMM", ARM_INSN_ADC_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_sub_reg_imm_shift, "SUB_REG_IMM_SHIFT", ARM_INSN_SUB_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_sub_reg_reg_shift, "SUB_REG_REG_SHIFT", ARM_INSN_SUB_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 12 } },
+  { 0, arm_sem_sub_imm, "SUB_IMM", ARM_INSN_SUB_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_sbc_reg_imm_shift, "SBC_REG_IMM_SHIFT", ARM_INSN_SBC_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_sbc_reg_reg_shift, "SBC_REG_REG_SHIFT", ARM_INSN_SBC_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 12 } },
+  { 0, arm_sem_sbc_imm, "SBC_IMM", ARM_INSN_SBC_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_rsb_reg_imm_shift, "RSB_REG_IMM_SHIFT", ARM_INSN_RSB_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_rsb_reg_reg_shift, "RSB_REG_REG_SHIFT", ARM_INSN_RSB_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 12 } },
+  { 0, arm_sem_rsb_imm, "RSB_IMM", ARM_INSN_RSB_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_rsc_reg_imm_shift, "RSC_REG_IMM_SHIFT", ARM_INSN_RSC_REG_IMM_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_rsc_reg_reg_shift, "RSC_REG_REG_SHIFT", ARM_INSN_RSC_REG_REG_SHIFT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 12 } },
+  { 0, arm_sem_rsc_imm, "RSC_IMM", ARM_INSN_RSC_IMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_tst_reg_imm_shift, "TST_REG_IMM_SHIFT", ARM_INSN_TST_REG_IMM_SHIFT, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_tst_reg_reg_shift, "TST_REG_REG_SHIFT", ARM_INSN_TST_REG_REG_SHIFT, { 0, (1<<MACH_BASE), { 1, "\x80" }, 12 } },
+  { 0, arm_sem_tst_imm, "TST_IMM", ARM_INSN_TST_IMM, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_teq_reg_imm_shift, "TEQ_REG_IMM_SHIFT", ARM_INSN_TEQ_REG_IMM_SHIFT, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_teq_reg_reg_shift, "TEQ_REG_REG_SHIFT", ARM_INSN_TEQ_REG_REG_SHIFT, { 0, (1<<MACH_BASE), { 1, "\x80" }, 12 } },
+  { 0, arm_sem_teq_imm, "TEQ_IMM", ARM_INSN_TEQ_IMM, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_cmp_reg_imm_shift, "CMP_REG_IMM_SHIFT", ARM_INSN_CMP_REG_IMM_SHIFT, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_cmp_reg_reg_shift, "CMP_REG_REG_SHIFT", ARM_INSN_CMP_REG_REG_SHIFT, { 0, (1<<MACH_BASE), { 1, "\x80" }, 12 } },
+  { 0, arm_sem_cmp_imm, "CMP_IMM", ARM_INSN_CMP_IMM, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_cmn_reg_imm_shift, "CMN_REG_IMM_SHIFT", ARM_INSN_CMN_REG_IMM_SHIFT, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_cmn_reg_reg_shift, "CMN_REG_REG_SHIFT", ARM_INSN_CMN_REG_REG_SHIFT, { 0, (1<<MACH_BASE), { 1, "\x80" }, 12 } },
+  { 0, arm_sem_cmn_imm, "CMN_IMM", ARM_INSN_CMN_IMM, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldmda, "LDMDA", ARM_INSN_LDMDA, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldmda_sw, "LDMDA_SW", ARM_INSN_LDMDA_SW, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldmda_wb, "LDMDA_WB", ARM_INSN_LDMDA_WB, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldmda_sw_wb, "LDMDA_SW_WB", ARM_INSN_LDMDA_SW_WB, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldmib, "LDMIB", ARM_INSN_LDMIB, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldmib_sw, "LDMIB_SW", ARM_INSN_LDMIB_SW, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldmib_wb, "LDMIB_WB", ARM_INSN_LDMIB_WB, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldmib_sw_wb, "LDMIB_SW_WB", ARM_INSN_LDMIB_SW_WB, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldmia, "LDMIA", ARM_INSN_LDMIA, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldmia_sw, "LDMIA_SW", ARM_INSN_LDMIA_SW, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldmia_wb, "LDMIA_WB", ARM_INSN_LDMIA_WB, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldmia_sw_wb, "LDMIA_SW_WB", ARM_INSN_LDMIA_SW_WB, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldmdb, "LDMDB", ARM_INSN_LDMDB, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldmdb_sw, "LDMDB_SW", ARM_INSN_LDMDB_SW, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldmdb_wb, "LDMDB_WB", ARM_INSN_LDMDB_WB, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_ldmdb_sw_wb, "LDMDB_SW_WB", ARM_INSN_LDMDB_SW_WB, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_stmdb, "STMDB", ARM_INSN_STMDB, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_stmdb_sw, "STMDB_SW", ARM_INSN_STMDB_SW, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_stmdb_wb, "STMDB_WB", ARM_INSN_STMDB_WB, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_stmdb_sw_wb, "STMDB_SW_WB", ARM_INSN_STMDB_SW_WB, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_stmib, "STMIB", ARM_INSN_STMIB, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_stmib_sw, "STMIB_SW", ARM_INSN_STMIB_SW, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_stmib_wb, "STMIB_WB", ARM_INSN_STMIB_WB, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_stmib_sw_wb, "STMIB_SW_WB", ARM_INSN_STMIB_SW_WB, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_stmia, "STMIA", ARM_INSN_STMIA, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_stmia_sw, "STMIA_SW", ARM_INSN_STMIA_SW, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_stmia_wb, "STMIA_WB", ARM_INSN_STMIA_WB, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_stmia_sw_wb, "STMIA_SW_WB", ARM_INSN_STMIA_SW_WB, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_stmda, "STMDA", ARM_INSN_STMDA, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_stmda_sw, "STMDA_SW", ARM_INSN_STMDA_SW, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_stmda_wb, "STMDA_WB", ARM_INSN_STMDA_WB, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_stmda_sw_wb, "STMDA_SW_WB", ARM_INSN_STMDA_SW_WB, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_mrs_c, "MRS_C", ARM_INSN_MRS_C, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_mrs_s, "MRS_S", ARM_INSN_MRS_S, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_msr_c, "MSR_C", ARM_INSN_MSR_C, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
+  { 0, arm_sem_msr_s, "MSR_S", ARM_INSN_MSR_S, { 0, (1<<MACH_BASE), { 1, "\x80" }, 8 } },
 
 };
 
@@ -450,11 +450,23 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           case 23 : itype = ARM_INSN_AND_REG_REG_SHIFT; arm_extract_sfmt_and_reg_reg_shift (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 : /* fall through */
           case 25 : itype = ARM_INSN_MUL; arm_extract_sfmt_mul (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 11 : itype = ARM_INSN_STRH_POST_DEC_REG_OFFSET; arm_extract_sfmt_strh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 27 : itype = ARM_INSN_LDRH_POST_DEC_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 29 : itype = ARM_INSN_LDRSB_POST_DEC_REG_OFFSET; arm_extract_sfmt_ldrsb_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 31 : itype = ARM_INSN_LDRSH_POST_DEC_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 11 :
+            if ((entire_insn & 0xff00ff0) == 0xb0)
+              { itype = ARM_INSN_STRH_POST_DEC_REG_OFFSET; arm_extract_sfmt_strh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 27 :
+            if ((entire_insn & 0xff00ff0) == 0x1000b0)
+              { itype = ARM_INSN_LDRH_POST_DEC_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 29 :
+            if ((entire_insn & 0xff00ff0) == 0x1000d0)
+              { itype = ARM_INSN_LDRSB_POST_DEC_REG_OFFSET; arm_extract_sfmt_ldrsb_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 31 :
+            if ((entire_insn & 0xff00ff0) == 0x1000f0)
+              { itype = ARM_INSN_LDRSH_POST_DEC_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 1 :
@@ -465,8 +477,11 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           case 0 : /* fall through */
           case 2 : itype = ARM_INSN_EOR_REG_IMM_SHIFT; arm_extract_sfmt_and_reg_imm_shift (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_EOR_REG_REG_SHIFT; arm_extract_sfmt_and_reg_reg_shift (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 3 : itype = ARM_INSN_MLA; arm_extract_sfmt_mla (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 3 :
+            if ((entire_insn & 0xfe000f0) == 0x200090)
+              { itype = ARM_INSN_MLA; arm_extract_sfmt_mla (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 2 :
@@ -502,7 +517,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           case 27 : itype = ARM_INSN_LDRH_POST_DEC_IMM_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 29 : itype = ARM_INSN_LDRSB_POST_DEC_IMM_OFFSET; arm_extract_sfmt_ldrsb_pre_dec_wb_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 31 : itype = ARM_INSN_LDRSH_POST_DEC_IMM_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 3 :
@@ -511,8 +526,11 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           switch (val)
           {
           case 0 : itype = ARM_INSN_RSB_REG_IMM_SHIFT; arm_extract_sfmt_add_reg_imm_shift (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = ARM_INSN_RSB_REG_REG_SHIFT; arm_extract_sfmt_add_reg_reg_shift (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 1 :
+            if ((entire_insn & 0xfe00090) == 0x600010)
+              { itype = ARM_INSN_RSB_REG_REG_SHIFT; arm_extract_sfmt_add_reg_reg_shift (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 4 :
@@ -546,11 +564,23 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           case 23 : itype = ARM_INSN_ADD_REG_REG_SHIFT; arm_extract_sfmt_add_reg_reg_shift (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 : /* fall through */
           case 25 : itype = ARM_INSN_UMULL; arm_extract_sfmt_umull (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 11 : itype = ARM_INSN_STRH_POST_INC_REG_OFFSET; arm_extract_sfmt_strh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 27 : itype = ARM_INSN_LDRH_POST_INC_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 29 : itype = ARM_INSN_LDRSB_POST_INC_REG_OFFSET; arm_extract_sfmt_ldrsb_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 31 : itype = ARM_INSN_LDRSH_POST_INC_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 11 :
+            if ((entire_insn & 0xff00ff0) == 0x8000b0)
+              { itype = ARM_INSN_STRH_POST_INC_REG_OFFSET; arm_extract_sfmt_strh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 27 :
+            if ((entire_insn & 0xff00ff0) == 0x9000b0)
+              { itype = ARM_INSN_LDRH_POST_INC_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 29 :
+            if ((entire_insn & 0xff00ff0) == 0x9000d0)
+              { itype = ARM_INSN_LDRSB_POST_INC_REG_OFFSET; arm_extract_sfmt_ldrsb_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 31 :
+            if ((entire_insn & 0xff00ff0) == 0x9000f0)
+              { itype = ARM_INSN_LDRSH_POST_INC_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 5 :
@@ -561,8 +591,11 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           case 0 : /* fall through */
           case 2 : itype = ARM_INSN_ADC_REG_IMM_SHIFT; arm_extract_sfmt_adc_reg_imm_shift (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_ADC_REG_REG_SHIFT; arm_extract_sfmt_adc_reg_reg_shift (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 3 : itype = ARM_INSN_UMLAL; arm_extract_sfmt_umlal (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 3 :
+            if ((entire_insn & 0xfe000f0) == 0xa00090)
+              { itype = ARM_INSN_UMLAL; arm_extract_sfmt_umlal (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 6 :
@@ -600,7 +633,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           case 27 : itype = ARM_INSN_LDRH_POST_INC_IMM_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 29 : itype = ARM_INSN_LDRSB_POST_INC_IMM_OFFSET; arm_extract_sfmt_ldrsb_pre_dec_wb_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 31 : itype = ARM_INSN_LDRSH_POST_INC_IMM_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 7 :
@@ -611,8 +644,11 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           case 0 : /* fall through */
           case 2 : itype = ARM_INSN_RSC_REG_IMM_SHIFT; arm_extract_sfmt_adc_reg_imm_shift (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_RSC_REG_REG_SHIFT; arm_extract_sfmt_adc_reg_reg_shift (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 3 : itype = ARM_INSN_SMLAL; arm_extract_sfmt_umlal (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 3 :
+            if ((entire_insn & 0xfe000f0) == 0xe00090)
+              { itype = ARM_INSN_SMLAL; arm_extract_sfmt_umlal (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 8 :
@@ -620,9 +656,18 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           unsigned int val = (((insn >> 16) & (1 << 4)) | ((insn >> 4) & (15 << 0)));
           switch (val)
           {
-          case 0 : itype = ARM_INSN_MRS_C; arm_extract_sfmt_mrs_c (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 9 : itype = ARM_INSN_SWP; arm_extract_sfmt_swp (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 11 : itype = ARM_INSN_STRH_PRE_DEC_REG_OFFSET; arm_extract_sfmt_strh_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 :
+            if ((entire_insn & 0xfff0fff) == 0x10f0000)
+              { itype = ARM_INSN_MRS_C; arm_extract_sfmt_mrs_c (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 9 :
+            if ((entire_insn & 0xff00ff0) == 0x1000090)
+              { itype = ARM_INSN_SWP; arm_extract_sfmt_swp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 11 :
+            if ((entire_insn & 0xff00ff0) == 0x10000b0)
+              { itype = ARM_INSN_STRH_PRE_DEC_REG_OFFSET; arm_extract_sfmt_strh_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 16 : /* fall through */
           case 18 : /* fall through */
           case 20 : /* fall through */
@@ -635,10 +680,19 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           case 19 : /* fall through */
           case 21 : /* fall through */
           case 23 : itype = ARM_INSN_TST_REG_REG_SHIFT; arm_extract_sfmt_tst_reg_reg_shift (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 27 : itype = ARM_INSN_LDRH_PRE_DEC_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 29 : itype = ARM_INSN_LDRSB_PRE_DEC_REG_OFFSET; arm_extract_sfmt_ldrsb_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 31 : itype = ARM_INSN_LDRSH_PRE_DEC_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 27 :
+            if ((entire_insn & 0xff00ff0) == 0x11000b0)
+              { itype = ARM_INSN_LDRH_PRE_DEC_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 29 :
+            if ((entire_insn & 0xff00ff0) == 0x11000d0)
+              { itype = ARM_INSN_LDRSB_PRE_DEC_REG_OFFSET; arm_extract_sfmt_ldrsb_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 31 :
+            if ((entire_insn & 0xff00ff0) == 0x11000f0)
+              { itype = ARM_INSN_LDRSH_PRE_DEC_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 9 :
@@ -646,9 +700,18 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           unsigned int val = (((insn >> 14) & (1 << 6)) | ((insn >> 4) & (63 << 0)));
           switch (val)
           {
-          case 0 : itype = ARM_INSN_MSR_C; arm_extract_sfmt_msr_c (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 11 : itype = ARM_INSN_STRH_PRE_DEC_WB_REG_OFFSET; arm_extract_sfmt_strh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 49 : itype = ARM_INSN_BX; arm_extract_sfmt_bx (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 :
+            if ((entire_insn & 0xffffff0) == 0x129f000)
+              { itype = ARM_INSN_MSR_C; arm_extract_sfmt_msr_c (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 11 :
+            if ((entire_insn & 0xff00ff0) == 0x12000b0)
+              { itype = ARM_INSN_STRH_PRE_DEC_WB_REG_OFFSET; arm_extract_sfmt_strh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 49 :
+            if ((entire_insn & 0xffffff0) == 0x12fff10)
+              { itype = ARM_INSN_BX; arm_extract_sfmt_bx (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 64 : /* fall through */
           case 66 : /* fall through */
           case 68 : /* fall through */
@@ -697,10 +760,19 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           case 115 : /* fall through */
           case 117 : /* fall through */
           case 119 : itype = ARM_INSN_TEQ_REG_REG_SHIFT; arm_extract_sfmt_tst_reg_reg_shift (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 75 : itype = ARM_INSN_LDRH_PRE_DEC_WB_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 77 : itype = ARM_INSN_LDRSB_PRE_DEC_WB_REG_OFFSET; arm_extract_sfmt_ldrsb_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 79 : itype = ARM_INSN_LDRSH_PRE_DEC_WB_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 75 :
+            if ((entire_insn & 0xff00ff0) == 0x13000b0)
+              { itype = ARM_INSN_LDRH_PRE_DEC_WB_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 77 :
+            if ((entire_insn & 0xff00ff0) == 0x13000d0)
+              { itype = ARM_INSN_LDRSB_PRE_DEC_WB_REG_OFFSET; arm_extract_sfmt_ldrsb_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 79 :
+            if ((entire_insn & 0xff00ff0) == 0x13000f0)
+              { itype = ARM_INSN_LDRSH_PRE_DEC_WB_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 10 :
@@ -708,8 +780,14 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           unsigned int val = (((insn >> 16) & (1 << 4)) | ((insn >> 4) & (15 << 0)));
           switch (val)
           {
-          case 0 : itype = ARM_INSN_MRS_S; arm_extract_sfmt_mrs_s (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 9 : itype = ARM_INSN_SWPB; arm_extract_sfmt_swpb (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 :
+            if ((entire_insn & 0xfff0fff) == 0x14f0000)
+              { itype = ARM_INSN_MRS_S; arm_extract_sfmt_mrs_s (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 9 :
+            if ((entire_insn & 0xff00ff0) == 0x1400090)
+              { itype = ARM_INSN_SWPB; arm_extract_sfmt_swpb (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 : itype = ARM_INSN_STRH_PRE_DEC_IMM_OFFSET; arm_extract_sfmt_strh_pre_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 16 : /* fall through */
           case 18 : /* fall through */
@@ -726,7 +804,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           case 27 : itype = ARM_INSN_LDRH_PRE_DEC_IMM_OFFSET; arm_extract_sfmt_ldrh_pre_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 29 : itype = ARM_INSN_LDRSB_PRE_DEC_IMM_OFFSET; arm_extract_sfmt_ldrsb_pre_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 31 : itype = ARM_INSN_LDRSH_PRE_DEC_IMM_OFFSET; arm_extract_sfmt_ldrh_pre_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 11 :
@@ -734,7 +812,10 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           unsigned int val = (((insn >> 16) & (1 << 4)) | ((insn >> 4) & (15 << 0)));
           switch (val)
           {
-          case 0 : itype = ARM_INSN_MSR_S; arm_extract_sfmt_msr_s (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 :
+            if ((entire_insn & 0xffffff0) == 0x169f000)
+              { itype = ARM_INSN_MSR_S; arm_extract_sfmt_msr_s (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 : itype = ARM_INSN_STRH_PRE_DEC_WB_IMM_OFFSET; arm_extract_sfmt_strh_pre_dec_wb_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 16 : /* fall through */
           case 18 : /* fall through */
@@ -751,7 +832,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           case 27 : itype = ARM_INSN_LDRH_PRE_DEC_WB_IMM_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 29 : itype = ARM_INSN_LDRSB_PRE_DEC_WB_IMM_OFFSET; arm_extract_sfmt_ldrsb_pre_dec_wb_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 31 : itype = ARM_INSN_LDRSH_PRE_DEC_WB_IMM_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 12 :
@@ -783,11 +864,23 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           case 19 : /* fall through */
           case 21 : /* fall through */
           case 23 : itype = ARM_INSN_ORR_REG_REG_SHIFT; arm_extract_sfmt_and_reg_reg_shift (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 11 : itype = ARM_INSN_STRH_PRE_INC_REG_OFFSET; arm_extract_sfmt_strh_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 27 : itype = ARM_INSN_LDRH_PRE_INC_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 29 : itype = ARM_INSN_LDRSB_PRE_INC_REG_OFFSET; arm_extract_sfmt_ldrsb_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 31 : itype = ARM_INSN_LDRSH_PRE_INC_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 11 :
+            if ((entire_insn & 0xff00ff0) == 0x18000b0)
+              { itype = ARM_INSN_STRH_PRE_INC_REG_OFFSET; arm_extract_sfmt_strh_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 27 :
+            if ((entire_insn & 0xff00ff0) == 0x19000b0)
+              { itype = ARM_INSN_LDRH_PRE_INC_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 29 :
+            if ((entire_insn & 0xff00ff0) == 0x19000d0)
+              { itype = ARM_INSN_LDRSB_PRE_INC_REG_OFFSET; arm_extract_sfmt_ldrsb_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 31 :
+            if ((entire_insn & 0xff00ff0) == 0x19000f0)
+              { itype = ARM_INSN_LDRSH_PRE_INC_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 13 :
@@ -819,11 +912,23 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           case 19 : /* fall through */
           case 21 : /* fall through */
           case 23 : itype = ARM_INSN_MOV_REG_REG_SHIFT; arm_extract_sfmt_mov_reg_reg_shift (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 11 : itype = ARM_INSN_STRH_PRE_INC_WB_REG_OFFSET; arm_extract_sfmt_strh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 27 : itype = ARM_INSN_LDRH_PRE_INC_WB_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 29 : itype = ARM_INSN_LDRSB_PRE_INC_WB_REG_OFFSET; arm_extract_sfmt_ldrsb_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 31 : itype = ARM_INSN_LDRSH_PRE_INC_WB_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 11 :
+            if ((entire_insn & 0xff00ff0) == 0x1a000b0)
+              { itype = ARM_INSN_STRH_PRE_INC_WB_REG_OFFSET; arm_extract_sfmt_strh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 27 :
+            if ((entire_insn & 0xff00ff0) == 0x1b000b0)
+              { itype = ARM_INSN_LDRH_PRE_INC_WB_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 29 :
+            if ((entire_insn & 0xff00ff0) == 0x1b000d0)
+              { itype = ARM_INSN_LDRSB_PRE_INC_WB_REG_OFFSET; arm_extract_sfmt_ldrsb_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 31 :
+            if ((entire_insn & 0xff00ff0) == 0x1b000f0)
+              { itype = ARM_INSN_LDRSH_PRE_INC_WB_REG_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 14 :
@@ -859,7 +964,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           case 27 : itype = ARM_INSN_LDRH_PRE_INC_IMM_OFFSET; arm_extract_sfmt_ldrh_pre_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 29 : itype = ARM_INSN_LDRSB_PRE_INC_IMM_OFFSET; arm_extract_sfmt_ldrsb_pre_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 31 : itype = ARM_INSN_LDRSH_PRE_INC_IMM_OFFSET; arm_extract_sfmt_ldrh_pre_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 15 :
@@ -895,7 +1000,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           case 27 : itype = ARM_INSN_LDRH_PRE_INC_WB_IMM_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 29 : itype = ARM_INSN_LDRSB_PRE_INC_WB_IMM_OFFSET; arm_extract_sfmt_ldrsb_pre_dec_wb_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 31 : itype = ARM_INSN_LDRSH_PRE_INC_WB_IMM_OFFSET; arm_extract_sfmt_ldrh_pre_dec_wb_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 16 : itype = ARM_INSN_AND_IMM; arm_extract_sfmt_and_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
@@ -906,10 +1011,22 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
       case 21 : itype = ARM_INSN_ADC_IMM; arm_extract_sfmt_adc_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 22 : itype = ARM_INSN_SBC_IMM; arm_extract_sfmt_adc_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 23 : itype = ARM_INSN_RSC_IMM; arm_extract_sfmt_adc_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 24 : itype = ARM_INSN_TST_IMM; arm_extract_sfmt_tst_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 25 : itype = ARM_INSN_TEQ_IMM; arm_extract_sfmt_tst_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 26 : itype = ARM_INSN_CMP_IMM; arm_extract_sfmt_cmp_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 27 : itype = ARM_INSN_CMN_IMM; arm_extract_sfmt_cmp_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 24 :
+        if ((entire_insn & 0xff00000) == 0x3100000)
+          { itype = ARM_INSN_TST_IMM; arm_extract_sfmt_tst_imm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+        itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 25 :
+        if ((entire_insn & 0xff00000) == 0x3300000)
+          { itype = ARM_INSN_TEQ_IMM; arm_extract_sfmt_tst_imm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+        itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 26 :
+        if ((entire_insn & 0xff00000) == 0x3500000)
+          { itype = ARM_INSN_CMP_IMM; arm_extract_sfmt_cmp_imm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+        itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 27 :
+        if ((entire_insn & 0xff00000) == 0x3700000)
+          { itype = ARM_INSN_CMN_IMM; arm_extract_sfmt_cmp_imm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+        itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 28 : itype = ARM_INSN_ORR_IMM; arm_extract_sfmt_and_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 29 : itype = ARM_INSN_MOV_IMM; arm_extract_sfmt_mov_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 30 : itype = ARM_INSN_BIC_IMM; arm_extract_sfmt_and_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
@@ -921,7 +1038,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STR_POST_DEC_IMM_OFFSET; arm_extract_sfmt_str_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDR_POST_DEC_IMM_OFFSET; arm_extract_sfmt_ldr_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 33 :
@@ -931,7 +1048,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STR_POST_DEC_NONPRIV_IMM_OFFSET; arm_extract_sfmt_str_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDR_POST_DEC_NONPRIV_IMM_OFFSET; arm_extract_sfmt_ldr_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 34 :
@@ -941,7 +1058,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STRB_POST_DEC_IMM_OFFSET; arm_extract_sfmt_strb_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDRB_POST_DEC_IMM_OFFSET; arm_extract_sfmt_ldrb_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 35 :
@@ -951,7 +1068,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STRB_POST_DEC_NONPRIV_IMM_OFFSET; arm_extract_sfmt_strb_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDRB_POST_DEC_NONPRIV_IMM_OFFSET; arm_extract_sfmt_ldrb_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 36 :
@@ -961,7 +1078,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STR_POST_INC_IMM_OFFSET; arm_extract_sfmt_str_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDR_POST_INC_IMM_OFFSET; arm_extract_sfmt_ldr_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 37 :
@@ -971,7 +1088,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STR_POST_INC_NONPRIV_IMM_OFFSET; arm_extract_sfmt_str_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDR_POST_INC_NONPRIV_IMM_OFFSET; arm_extract_sfmt_ldr_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 38 :
@@ -981,7 +1098,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STRB_POST_INC_IMM_OFFSET; arm_extract_sfmt_strb_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDRB_POST_INC_IMM_OFFSET; arm_extract_sfmt_ldrb_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 39 :
@@ -991,7 +1108,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STRB_POST_INC_NONPRIV_IMM_OFFSET; arm_extract_sfmt_strb_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDRB_POST_INC_NONPRIV_IMM_OFFSET; arm_extract_sfmt_ldrb_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 40 :
@@ -1001,7 +1118,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STR_PRE_DEC_IMM_OFFSET; arm_extract_sfmt_str_pre_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDR_PRE_DEC_IMM_OFFSET; arm_extract_sfmt_ldr_pre_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 41 :
@@ -1011,7 +1128,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STR_PRE_DEC_WB_IMM_OFFSET; arm_extract_sfmt_str_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDR_PRE_DEC_WB_IMM_OFFSET; arm_extract_sfmt_ldr_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 42 :
@@ -1021,7 +1138,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STRB_PRE_DEC_IMM_OFFSET; arm_extract_sfmt_strb_pre_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDRB_PRE_DEC_IMM_OFFSET; arm_extract_sfmt_ldrb_pre_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 43 :
@@ -1031,7 +1148,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STRB_PRE_DEC_WB_IMM_OFFSET; arm_extract_sfmt_strb_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDRB_PRE_DEC_WB_IMM_OFFSET; arm_extract_sfmt_ldrb_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 44 :
@@ -1041,7 +1158,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STR_PRE_INC_IMM_OFFSET; arm_extract_sfmt_str_pre_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDR_PRE_INC_IMM_OFFSET; arm_extract_sfmt_ldr_pre_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 45 :
@@ -1051,7 +1168,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STR_PRE_INC_WB_IMM_OFFSET; arm_extract_sfmt_str_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDR_PRE_INC_WB_IMM_OFFSET; arm_extract_sfmt_ldr_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 46 :
@@ -1061,7 +1178,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STRB_PRE_INC_IMM_OFFSET; arm_extract_sfmt_strb_pre_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDRB_PRE_INC_IMM_OFFSET; arm_extract_sfmt_ldrb_pre_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 47 :
@@ -1071,7 +1188,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STRB_PRE_INC_WB_IMM_OFFSET; arm_extract_sfmt_strb_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDRB_PRE_INC_WB_IMM_OFFSET; arm_extract_sfmt_ldrb_post_dec_imm_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 48 :
@@ -1079,9 +1196,15 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           unsigned int val = (((insn >> 20) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = ARM_INSN_STR_POST_DEC_REG_OFFSET; arm_extract_sfmt_str_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = ARM_INSN_LDR_POST_DEC_REG_OFFSET; arm_extract_sfmt_ldr_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            if ((entire_insn & 0xff00010) == 0x6000000)
+              { itype = ARM_INSN_STR_POST_DEC_REG_OFFSET; arm_extract_sfmt_str_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            if ((entire_insn & 0xff00010) == 0x6100000)
+              { itype = ARM_INSN_LDR_POST_DEC_REG_OFFSET; arm_extract_sfmt_ldr_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 49 :
@@ -1089,9 +1212,15 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           unsigned int val = (((insn >> 20) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = ARM_INSN_STR_POST_DEC_NONPRIV_REG_OFFSET; arm_extract_sfmt_str_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = ARM_INSN_LDR_POST_DEC_NONPRIV_REG_OFFSET; arm_extract_sfmt_ldr_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            if ((entire_insn & 0xff00010) == 0x6200000)
+              { itype = ARM_INSN_STR_POST_DEC_NONPRIV_REG_OFFSET; arm_extract_sfmt_str_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            if ((entire_insn & 0xff00010) == 0x6300000)
+              { itype = ARM_INSN_LDR_POST_DEC_NONPRIV_REG_OFFSET; arm_extract_sfmt_ldr_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 50 :
@@ -1099,9 +1228,15 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           unsigned int val = (((insn >> 20) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = ARM_INSN_STRB_POST_DEC_REG_OFFSET; arm_extract_sfmt_strb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = ARM_INSN_LDRB_POST_DEC_REG_OFFSET; arm_extract_sfmt_ldrb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            if ((entire_insn & 0xff00010) == 0x6400000)
+              { itype = ARM_INSN_STRB_POST_DEC_REG_OFFSET; arm_extract_sfmt_strb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            if ((entire_insn & 0xff00010) == 0x6500000)
+              { itype = ARM_INSN_LDRB_POST_DEC_REG_OFFSET; arm_extract_sfmt_ldrb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 51 :
@@ -1109,9 +1244,15 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           unsigned int val = (((insn >> 20) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = ARM_INSN_STRB_POST_DEC_NONPRIV_REG_OFFSET; arm_extract_sfmt_strb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = ARM_INSN_LDRB_POST_DEC_NONPRIV_REG_OFFSET; arm_extract_sfmt_ldrb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            if ((entire_insn & 0xff00010) == 0x6600000)
+              { itype = ARM_INSN_STRB_POST_DEC_NONPRIV_REG_OFFSET; arm_extract_sfmt_strb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            if ((entire_insn & 0xff00010) == 0x6700000)
+              { itype = ARM_INSN_LDRB_POST_DEC_NONPRIV_REG_OFFSET; arm_extract_sfmt_ldrb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 52 :
@@ -1119,9 +1260,15 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           unsigned int val = (((insn >> 20) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = ARM_INSN_STR_POST_INC_REG_OFFSET; arm_extract_sfmt_str_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = ARM_INSN_LDR_POST_INC_REG_OFFSET; arm_extract_sfmt_ldr_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            if ((entire_insn & 0xff00010) == 0x6800000)
+              { itype = ARM_INSN_STR_POST_INC_REG_OFFSET; arm_extract_sfmt_str_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            if ((entire_insn & 0xff00010) == 0x6900000)
+              { itype = ARM_INSN_LDR_POST_INC_REG_OFFSET; arm_extract_sfmt_ldr_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 53 :
@@ -1129,9 +1276,15 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           unsigned int val = (((insn >> 20) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = ARM_INSN_STR_POST_INC_NONPRIV_REG_OFFSET; arm_extract_sfmt_str_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = ARM_INSN_LDR_POST_INC_NONPRIV_REG_OFFSET; arm_extract_sfmt_ldr_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            if ((entire_insn & 0xff00010) == 0x6a00000)
+              { itype = ARM_INSN_STR_POST_INC_NONPRIV_REG_OFFSET; arm_extract_sfmt_str_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            if ((entire_insn & 0xff00010) == 0x6b00000)
+              { itype = ARM_INSN_LDR_POST_INC_NONPRIV_REG_OFFSET; arm_extract_sfmt_ldr_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 54 :
@@ -1139,9 +1292,15 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           unsigned int val = (((insn >> 20) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = ARM_INSN_STRB_POST_INC_REG_OFFSET; arm_extract_sfmt_strb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = ARM_INSN_LDRB_POST_INC_REG_OFFSET; arm_extract_sfmt_ldrb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            if ((entire_insn & 0xff00010) == 0x6c00000)
+              { itype = ARM_INSN_STRB_POST_INC_REG_OFFSET; arm_extract_sfmt_strb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            if ((entire_insn & 0xff00010) == 0x6d00000)
+              { itype = ARM_INSN_LDRB_POST_INC_REG_OFFSET; arm_extract_sfmt_ldrb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 55 :
@@ -1149,9 +1308,15 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           unsigned int val = (((insn >> 20) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = ARM_INSN_STRB_POST_INC_NONPRIV_REG_OFFSET; arm_extract_sfmt_strb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = ARM_INSN_LDRB_POST_INC_NONPRIV_REG_OFFSET; arm_extract_sfmt_ldrb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            if ((entire_insn & 0xff00010) == 0x6e00000)
+              { itype = ARM_INSN_STRB_POST_INC_NONPRIV_REG_OFFSET; arm_extract_sfmt_strb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            if ((entire_insn & 0xff00010) == 0x6f00000)
+              { itype = ARM_INSN_LDRB_POST_INC_NONPRIV_REG_OFFSET; arm_extract_sfmt_ldrb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 56 :
@@ -1159,9 +1324,15 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           unsigned int val = (((insn >> 20) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = ARM_INSN_STR_PRE_DEC_REG_OFFSET; arm_extract_sfmt_str_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = ARM_INSN_LDR_PRE_DEC_REG_OFFSET; arm_extract_sfmt_ldr_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            if ((entire_insn & 0xff00010) == 0x7000000)
+              { itype = ARM_INSN_STR_PRE_DEC_REG_OFFSET; arm_extract_sfmt_str_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            if ((entire_insn & 0xff00010) == 0x7100000)
+              { itype = ARM_INSN_LDR_PRE_DEC_REG_OFFSET; arm_extract_sfmt_ldr_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 57 :
@@ -1169,9 +1340,15 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           unsigned int val = (((insn >> 20) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = ARM_INSN_STR_PRE_DEC_WB_REG_OFFSET; arm_extract_sfmt_str_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = ARM_INSN_LDR_PRE_DEC_WB_REG_OFFSET; arm_extract_sfmt_ldr_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            if ((entire_insn & 0xff00010) == 0x7200000)
+              { itype = ARM_INSN_STR_PRE_DEC_WB_REG_OFFSET; arm_extract_sfmt_str_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            if ((entire_insn & 0xff00010) == 0x7300000)
+              { itype = ARM_INSN_LDR_PRE_DEC_WB_REG_OFFSET; arm_extract_sfmt_ldr_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 58 :
@@ -1179,9 +1356,15 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           unsigned int val = (((insn >> 20) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = ARM_INSN_STRB_PRE_DEC_REG_OFFSET; arm_extract_sfmt_strb_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = ARM_INSN_LDRB_PRE_DEC_REG_OFFSET; arm_extract_sfmt_ldrb_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            if ((entire_insn & 0xff00010) == 0x7400000)
+              { itype = ARM_INSN_STRB_PRE_DEC_REG_OFFSET; arm_extract_sfmt_strb_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            if ((entire_insn & 0xff00010) == 0x7500000)
+              { itype = ARM_INSN_LDRB_PRE_DEC_REG_OFFSET; arm_extract_sfmt_ldrb_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 59 :
@@ -1189,9 +1372,15 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           unsigned int val = (((insn >> 20) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = ARM_INSN_STRB_PRE_DEC_WB_REG_OFFSET; arm_extract_sfmt_strb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = ARM_INSN_LDRB_PRE_DEC_WB_REG_OFFSET; arm_extract_sfmt_ldrb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            if ((entire_insn & 0xff00010) == 0x7600000)
+              { itype = ARM_INSN_STRB_PRE_DEC_WB_REG_OFFSET; arm_extract_sfmt_strb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            if ((entire_insn & 0xff00010) == 0x7700000)
+              { itype = ARM_INSN_LDRB_PRE_DEC_WB_REG_OFFSET; arm_extract_sfmt_ldrb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 60 :
@@ -1199,9 +1388,15 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           unsigned int val = (((insn >> 20) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = ARM_INSN_STR_PRE_INC_REG_OFFSET; arm_extract_sfmt_str_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = ARM_INSN_LDR_PRE_INC_REG_OFFSET; arm_extract_sfmt_ldr_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            if ((entire_insn & 0xff00010) == 0x7800000)
+              { itype = ARM_INSN_STR_PRE_INC_REG_OFFSET; arm_extract_sfmt_str_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            if ((entire_insn & 0xff00010) == 0x7900000)
+              { itype = ARM_INSN_LDR_PRE_INC_REG_OFFSET; arm_extract_sfmt_ldr_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 61 :
@@ -1209,9 +1404,15 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           unsigned int val = (((insn >> 20) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = ARM_INSN_STR_PRE_INC_WB_REG_OFFSET; arm_extract_sfmt_str_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = ARM_INSN_LDR_PRE_INC_WB_REG_OFFSET; arm_extract_sfmt_ldr_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            if ((entire_insn & 0xff00010) == 0x7a00000)
+              { itype = ARM_INSN_STR_PRE_INC_WB_REG_OFFSET; arm_extract_sfmt_str_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            if ((entire_insn & 0xff00010) == 0x7b00000)
+              { itype = ARM_INSN_LDR_PRE_INC_WB_REG_OFFSET; arm_extract_sfmt_ldr_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 62 :
@@ -1219,9 +1420,15 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           unsigned int val = (((insn >> 20) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = ARM_INSN_STRB_PRE_INC_REG_OFFSET; arm_extract_sfmt_strb_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = ARM_INSN_LDRB_PRE_INC_REG_OFFSET; arm_extract_sfmt_ldrb_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            if ((entire_insn & 0xff00010) == 0x7c00000)
+              { itype = ARM_INSN_STRB_PRE_INC_REG_OFFSET; arm_extract_sfmt_strb_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            if ((entire_insn & 0xff00010) == 0x7d00000)
+              { itype = ARM_INSN_LDRB_PRE_INC_REG_OFFSET; arm_extract_sfmt_ldrb_pre_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 63 :
@@ -1229,9 +1436,15 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           unsigned int val = (((insn >> 20) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = ARM_INSN_STRB_PRE_INC_WB_REG_OFFSET; arm_extract_sfmt_strb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = ARM_INSN_LDRB_PRE_INC_WB_REG_OFFSET; arm_extract_sfmt_ldrb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            if ((entire_insn & 0xff00010) == 0x7e00000)
+              { itype = ARM_INSN_STRB_PRE_INC_WB_REG_OFFSET; arm_extract_sfmt_strb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            if ((entire_insn & 0xff00010) == 0x7f00000)
+              { itype = ARM_INSN_LDRB_PRE_INC_WB_REG_OFFSET; arm_extract_sfmt_ldrb_post_dec_reg_offset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 64 :
@@ -1241,7 +1454,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STMDA; arm_extract_sfmt_stmdb (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDMDA; arm_extract_sfmt_ldmda (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 65 :
@@ -1251,7 +1464,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STMDA_WB; arm_extract_sfmt_stmdb_wb (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDMDA_WB; arm_extract_sfmt_ldmda_wb (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 66 :
@@ -1261,7 +1474,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STMDA_SW; arm_extract_sfmt_stmdb_sw (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDMDA_SW; arm_extract_sfmt_ldmda_sw (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 67 :
@@ -1271,7 +1484,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STMDA_SW_WB; arm_extract_sfmt_stmdb_sw_wb (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDMDA_SW_WB; arm_extract_sfmt_ldmda_sw_wb (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 68 :
@@ -1281,7 +1494,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STMIA; arm_extract_sfmt_stmdb (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDMIA; arm_extract_sfmt_ldmda (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 69 :
@@ -1291,7 +1504,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STMIA_WB; arm_extract_sfmt_stmdb_wb (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDMIA_WB; arm_extract_sfmt_ldmda_wb (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 70 :
@@ -1301,7 +1514,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STMIA_SW; arm_extract_sfmt_stmdb_sw (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDMIA_SW; arm_extract_sfmt_ldmda_sw (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 71 :
@@ -1311,7 +1524,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STMIA_SW_WB; arm_extract_sfmt_stmdb_sw_wb (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDMIA_SW_WB; arm_extract_sfmt_ldmda_sw_wb (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 72 :
@@ -1321,7 +1534,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STMDB; arm_extract_sfmt_stmdb (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDMDB; arm_extract_sfmt_ldmda (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 73 :
@@ -1331,7 +1544,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STMDB_WB; arm_extract_sfmt_stmdb_wb (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDMDB_WB; arm_extract_sfmt_ldmda_wb (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 74 :
@@ -1341,7 +1554,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STMDB_SW; arm_extract_sfmt_stmdb_sw (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDMDB_SW; arm_extract_sfmt_ldmda_sw (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 75 :
@@ -1351,7 +1564,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STMDB_SW_WB; arm_extract_sfmt_stmdb_sw_wb (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDMDB_SW_WB; arm_extract_sfmt_ldmda_sw_wb (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 76 :
@@ -1361,7 +1574,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STMIB; arm_extract_sfmt_stmdb (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDMIB; arm_extract_sfmt_ldmda (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 77 :
@@ -1371,7 +1584,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STMIB_WB; arm_extract_sfmt_stmdb_wb (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDMIB_WB; arm_extract_sfmt_ldmda_wb (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 78 :
@@ -1381,7 +1594,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STMIB_SW; arm_extract_sfmt_stmdb_sw (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDMIB_SW; arm_extract_sfmt_ldmda_sw (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 79 :
@@ -1391,7 +1604,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
           {
           case 0 : itype = ARM_INSN_STMIB_SW_WB; arm_extract_sfmt_stmdb_sw_wb (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 : itype = ARM_INSN_LDMIB_SW_WB; arm_extract_sfmt_ldmda_sw_wb (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 80 : /* fall through */
@@ -1418,7 +1631,7 @@ arm_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, arm_insn_word base_insn,
       case 125 : /* fall through */
       case 126 : /* fall through */
       case 127 : itype = ARM_INSN_SWI; arm_extract_sfmt_swi (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+      default : itype = ARM_INSN_X_INVALID; arm_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       }
     }
 
index ed8ae27..a3a35a1 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000, 2001, 2002, 2003 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 9340782..cf4af25 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000, 2001, 2002, 2003 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -12,6 +12,8 @@ This file is part of the Red Hat simulators.
 #ifndef DESC_ARM_H
 #define DESC_ARM_H
 
+#include "cgen/bitset.h"
+
 namespace arm {
 
 // Enums.
@@ -96,10 +98,10 @@ typedef enum isa_attr {
 struct arm_insn_attr {
   unsigned int bools;
   unsigned int mach;
-  unsigned int isa;
+  CGEN_BITSET isa;
   int r15_offset;
   inline unsigned int get_mach_attr () { return mach; }
-  inline unsigned int get_isa_attr () { return isa; }
+  inline CGEN_BITSET get_isa_attr () { return isa; }
   inline int get_r15_offset_attr () { return r15_offset; }
   inline int get_alias_attr () { return (bools & (1<<CGEN_INSN_ALIAS)) != 0; }
   inline int get_virtual_attr () { return (bools & (1<<CGEN_INSN_VIRTUAL)) != 0; }
index b3a56d6..2fc461e 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000, 2001, 2002, 2003 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -16,7 +16,6 @@ This file is part of the Red Hat simulators.
 #include "arm7f.h"
 
 using namespace arm7f; // FIXME: namespace organization still wip
-
 #define GET_ATTR(name) GET_ATTR_##name ()
 
 
@@ -55,9 +54,9 @@ arm_sem_b (arm7f_cpu* current_cpu, arm_scache* sem)
 
   {
     USI opval = FLD (i_offset24);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 
   current_cpu->done_cti_insn (npc, status);
@@ -79,15 +78,15 @@ arm_sem_bl (arm7f_cpu* current_cpu, arm_scache* sem)
 {
   {
     SI opval = ANDSI (ADDSI (pc, 4), -4);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
   }
   {
     USI opval = FLD (i_offset24);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 
@@ -110,16 +109,16 @@ arm_sem_bx (arm7f_cpu* current_cpu, arm_scache* sem)
 {
   {
     USI opval = ANDSI (* FLD (i_bx_rn), 0xfffffffe);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (ANDSI (* FLD (i_bx_rn), 1)) {
   {
     BI opval = 1;
-    current_cpu->h_tbit_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "tbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_tbit_set (opval);
   }
 }
 }
@@ -148,24 +147,24 @@ arm_sem_ldr_post_dec_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -193,24 +192,24 @@ arm_sem_ldr_post_dec_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -238,24 +237,24 @@ arm_sem_ldr_post_inc_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -283,24 +282,24 @@ arm_sem_ldr_post_inc_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -328,24 +327,24 @@ arm_sem_ldr_post_dec_nonpriv_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -373,24 +372,24 @@ arm_sem_ldr_post_dec_nonpriv_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -418,24 +417,24 @@ arm_sem_ldr_post_inc_nonpriv_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -463,24 +462,24 @@ arm_sem_ldr_post_inc_nonpriv_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -508,16 +507,16 @@ arm_sem_ldr_pre_dec_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
@@ -548,16 +547,16 @@ arm_sem_ldr_pre_dec_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
@@ -588,16 +587,16 @@ arm_sem_ldr_pre_inc_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
@@ -628,16 +627,16 @@ arm_sem_ldr_pre_inc_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
@@ -668,24 +667,24 @@ arm_sem_ldr_pre_dec_wb_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -713,24 +712,24 @@ arm_sem_ldr_pre_dec_wb_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -758,24 +757,24 @@ arm_sem_ldr_pre_inc_wb_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -803,24 +802,24 @@ arm_sem_ldr_pre_inc_wb_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -848,24 +847,24 @@ arm_sem_ldrb_post_dec_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -893,24 +892,24 @@ arm_sem_ldrb_post_dec_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -938,24 +937,24 @@ arm_sem_ldrb_post_inc_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -983,24 +982,24 @@ arm_sem_ldrb_post_inc_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -1028,24 +1027,24 @@ arm_sem_ldrb_post_dec_nonpriv_imm_offset (arm7f_cpu* current_cpu, arm_scache* se
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -1073,24 +1072,24 @@ arm_sem_ldrb_post_dec_nonpriv_reg_offset (arm7f_cpu* current_cpu, arm_scache* se
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -1118,24 +1117,24 @@ arm_sem_ldrb_post_inc_nonpriv_imm_offset (arm7f_cpu* current_cpu, arm_scache* se
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -1163,24 +1162,24 @@ arm_sem_ldrb_post_inc_nonpriv_reg_offset (arm7f_cpu* current_cpu, arm_scache* se
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -1208,16 +1207,16 @@ arm_sem_ldrb_pre_dec_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
@@ -1248,16 +1247,16 @@ arm_sem_ldrb_pre_dec_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
@@ -1288,16 +1287,16 @@ arm_sem_ldrb_pre_inc_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
@@ -1328,16 +1327,16 @@ arm_sem_ldrb_pre_inc_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
@@ -1368,24 +1367,24 @@ arm_sem_ldrb_pre_dec_wb_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -1413,24 +1412,24 @@ arm_sem_ldrb_pre_dec_wb_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -1458,24 +1457,24 @@ arm_sem_ldrb_pre_inc_wb_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -1503,24 +1502,24 @@ arm_sem_ldrb_pre_inc_wb_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -1547,16 +1546,16 @@ arm_sem_str_post_dec_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = * FLD (i_rn);
   {
     SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -1583,16 +1582,16 @@ arm_sem_str_post_dec_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = * FLD (i_rn);
   {
     SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -1619,16 +1618,16 @@ arm_sem_str_post_inc_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = * FLD (i_rn);
   {
     SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -1655,16 +1654,16 @@ arm_sem_str_post_inc_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = * FLD (i_rn);
   {
     SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -1691,16 +1690,16 @@ arm_sem_str_post_dec_nonpriv_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem
   tmp_addr = * FLD (i_rn);
   {
     SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -1727,16 +1726,16 @@ arm_sem_str_post_dec_nonpriv_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem
   tmp_addr = * FLD (i_rn);
   {
     SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -1763,16 +1762,16 @@ arm_sem_str_post_inc_nonpriv_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem
   tmp_addr = * FLD (i_rn);
   {
     SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -1799,16 +1798,16 @@ arm_sem_str_post_inc_nonpriv_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem
   tmp_addr = * FLD (i_rn);
   {
     SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -1835,9 +1834,9 @@ arm_sem_str_pre_dec_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
 ((void) 0); /*nop*/
@@ -1866,9 +1865,9 @@ arm_sem_str_pre_dec_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
 ((void) 0); /*nop*/
@@ -1897,9 +1896,9 @@ arm_sem_str_pre_inc_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
 ((void) 0); /*nop*/
@@ -1928,9 +1927,9 @@ arm_sem_str_pre_inc_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
 ((void) 0); /*nop*/
@@ -1959,16 +1958,16 @@ arm_sem_str_pre_dec_wb_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -1995,16 +1994,16 @@ arm_sem_str_pre_dec_wb_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -2031,16 +2030,16 @@ arm_sem_str_pre_inc_wb_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -2067,16 +2066,16 @@ arm_sem_str_pre_inc_wb_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -2103,16 +2102,16 @@ arm_sem_strb_post_dec_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = * FLD (i_rn);
   {
     QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
+    current_cpu->SETMEMQI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -2139,16 +2138,16 @@ arm_sem_strb_post_dec_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = * FLD (i_rn);
   {
     QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
+    current_cpu->SETMEMQI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -2175,16 +2174,16 @@ arm_sem_strb_post_inc_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = * FLD (i_rn);
   {
     QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
+    current_cpu->SETMEMQI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -2211,16 +2210,16 @@ arm_sem_strb_post_inc_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = * FLD (i_rn);
   {
     QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
+    current_cpu->SETMEMQI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -2247,16 +2246,16 @@ arm_sem_strb_post_dec_nonpriv_imm_offset (arm7f_cpu* current_cpu, arm_scache* se
   tmp_addr = * FLD (i_rn);
   {
     QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
+    current_cpu->SETMEMQI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -2283,16 +2282,16 @@ arm_sem_strb_post_dec_nonpriv_reg_offset (arm7f_cpu* current_cpu, arm_scache* se
   tmp_addr = * FLD (i_rn);
   {
     QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
+    current_cpu->SETMEMQI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -2319,16 +2318,16 @@ arm_sem_strb_post_inc_nonpriv_imm_offset (arm7f_cpu* current_cpu, arm_scache* se
   tmp_addr = * FLD (i_rn);
   {
     QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
+    current_cpu->SETMEMQI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -2355,16 +2354,16 @@ arm_sem_strb_post_inc_nonpriv_reg_offset (arm7f_cpu* current_cpu, arm_scache* se
   tmp_addr = * FLD (i_rn);
   {
     QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
+    current_cpu->SETMEMQI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -2391,9 +2390,9 @@ arm_sem_strb_pre_dec_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
+    current_cpu->SETMEMQI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
 ((void) 0); /*nop*/
@@ -2422,9 +2421,9 @@ arm_sem_strb_pre_dec_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
+    current_cpu->SETMEMQI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
 ((void) 0); /*nop*/
@@ -2453,9 +2452,9 @@ arm_sem_strb_pre_inc_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
+    current_cpu->SETMEMQI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
 ((void) 0); /*nop*/
@@ -2484,9 +2483,9 @@ arm_sem_strb_pre_inc_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
+    current_cpu->SETMEMQI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
 ((void) 0); /*nop*/
@@ -2515,16 +2514,16 @@ arm_sem_strb_pre_dec_wb_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
+    current_cpu->SETMEMQI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -2551,16 +2550,16 @@ arm_sem_strb_pre_dec_wb_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
+    current_cpu->SETMEMQI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -2587,16 +2586,16 @@ arm_sem_strb_pre_inc_wb_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
+    current_cpu->SETMEMQI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -2623,16 +2622,16 @@ arm_sem_strb_pre_inc_wb_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
+    current_cpu->SETMEMQI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -2659,9 +2658,9 @@ arm_sem_strh_pre_dec_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMHI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
 ((void) 0); /*nop*/
@@ -2690,9 +2689,9 @@ arm_sem_strh_pre_dec_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMHI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
 ((void) 0); /*nop*/
@@ -2721,9 +2720,9 @@ arm_sem_strh_pre_inc_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMHI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
 ((void) 0); /*nop*/
@@ -2752,9 +2751,9 @@ arm_sem_strh_pre_inc_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMHI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
 ((void) 0); /*nop*/
@@ -2783,16 +2782,16 @@ arm_sem_strh_pre_dec_wb_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMHI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -2819,16 +2818,16 @@ arm_sem_strh_pre_dec_wb_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMHI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -2855,16 +2854,16 @@ arm_sem_strh_pre_inc_wb_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMHI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -2891,16 +2890,16 @@ arm_sem_strh_pre_inc_wb_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMHI (pc, tmp_addr, opval);
   }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -2927,16 +2926,16 @@ arm_sem_strh_post_dec_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = * FLD (i_rn);
   {
     HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMHI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -2963,16 +2962,16 @@ arm_sem_strh_post_dec_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = * FLD (i_rn);
   {
     HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMHI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -2999,16 +2998,16 @@ arm_sem_strh_post_inc_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = * FLD (i_rn);
   {
     HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMHI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -3035,16 +3034,16 @@ arm_sem_strh_post_inc_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_addr = * FLD (i_rn);
   {
     HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMHI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -3072,16 +3071,16 @@ arm_sem_ldrsb_pre_dec_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
@@ -3112,16 +3111,16 @@ arm_sem_ldrsb_pre_dec_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
@@ -3152,16 +3151,16 @@ arm_sem_ldrsb_pre_inc_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
@@ -3192,16 +3191,16 @@ arm_sem_ldrsb_pre_inc_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
@@ -3232,24 +3231,24 @@ arm_sem_ldrsb_pre_dec_wb_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -3277,24 +3276,24 @@ arm_sem_ldrsb_pre_dec_wb_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -3322,24 +3321,24 @@ arm_sem_ldrsb_pre_inc_wb_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -3367,24 +3366,24 @@ arm_sem_ldrsb_pre_inc_wb_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -3412,24 +3411,24 @@ arm_sem_ldrsb_post_dec_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -3457,24 +3456,24 @@ arm_sem_ldrsb_post_dec_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -3502,24 +3501,24 @@ arm_sem_ldrsb_post_inc_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -3547,24 +3546,24 @@ arm_sem_ldrsb_post_inc_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTQISI (current_cpu->GETMEMQI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -3592,16 +3591,16 @@ arm_sem_ldrh_pre_dec_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
@@ -3632,16 +3631,16 @@ arm_sem_ldrh_pre_dec_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
@@ -3672,16 +3671,16 @@ arm_sem_ldrh_pre_inc_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
@@ -3712,16 +3711,16 @@ arm_sem_ldrh_pre_inc_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
@@ -3752,24 +3751,24 @@ arm_sem_ldrh_pre_dec_wb_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -3797,24 +3796,24 @@ arm_sem_ldrh_pre_dec_wb_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -3842,24 +3841,24 @@ arm_sem_ldrh_pre_inc_wb_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -3887,24 +3886,24 @@ arm_sem_ldrh_pre_inc_wb_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -3932,24 +3931,24 @@ arm_sem_ldrh_post_dec_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -3977,24 +3976,24 @@ arm_sem_ldrh_post_dec_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -4022,24 +4021,24 @@ arm_sem_ldrh_post_inc_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -4067,24 +4066,24 @@ arm_sem_ldrh_post_inc_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -4112,16 +4111,16 @@ arm_sem_ldrsh_pre_dec_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
@@ -4152,16 +4151,16 @@ arm_sem_ldrsh_pre_dec_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
@@ -4192,16 +4191,16 @@ arm_sem_ldrsh_pre_inc_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
@@ -4232,16 +4231,16 @@ arm_sem_ldrsh_pre_inc_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
@@ -4272,24 +4271,24 @@ arm_sem_ldrsh_pre_dec_wb_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -4317,24 +4316,24 @@ arm_sem_ldrsh_pre_dec_wb_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -4362,24 +4361,24 @@ arm_sem_ldrsh_pre_inc_wb_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -4407,24 +4406,24 @@ arm_sem_ldrsh_pre_inc_wb_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 ((void) 0); /*nop*/
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -4452,24 +4451,24 @@ arm_sem_ldrsh_post_dec_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -4497,24 +4496,24 @@ arm_sem_ldrsh_post_dec_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = SUBSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -4542,24 +4541,24 @@ arm_sem_ldrsh_post_inc_imm_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -4587,24 +4586,24 @@ arm_sem_ldrsh_post_inc_reg_offset (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     USI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = EXTHISI (current_cpu->GETMEMHI (pc, tmp_addr));
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
   tmp_addr = ADDSI (* FLD (i_rn), tmp_offset);
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -4629,23 +4628,23 @@ arm_sem_mul (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_result = MULSI (* FLD (i_rm), * FLD (i_rs));
   {
     SI opval = tmp_result;
-    * FLD (i_mul_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_mul_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_mul_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
 }
@@ -4671,23 +4670,23 @@ arm_sem_mla (arm7f_cpu* current_cpu, arm_scache* sem)
   SI tmp_result;
   {
     SI opval = ADDSI (MULSI (* FLD (i_rm), * FLD (i_rs)), * FLD (i_mul_rn));
-    * FLD (i_mul_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_mul_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_mul_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
 }
@@ -4716,29 +4715,29 @@ arm_sem_umull (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_mul_result = MULDI (ZEXTSIDI (* FLD (i_rs)), ZEXTSIDI (* FLD (i_rm)));
   {
     SI opval = SUBWORDDISI (tmp_mul_result, 0);
-    * FLD (i_rdhi) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rdhi) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rdhi) = opval;
   }
   {
     SI opval = SUBWORDDISI (tmp_mul_result, 1);
-    * FLD (i_rdlo) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rdlo) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rdlo) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQDI (tmp_mul_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTDI (tmp_mul_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
 }
@@ -4768,29 +4767,29 @@ arm_sem_umlal (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_mul_result = ADDDI (MULDI (ZEXTSIDI (* FLD (i_rs)), ZEXTSIDI (* FLD (i_rm))), tmp_mul_result);
   {
     SI opval = SUBWORDDISI (tmp_mul_result, 0);
-    * FLD (i_rdhi) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rdhi) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rdhi) = opval;
   }
   {
     SI opval = SUBWORDDISI (tmp_mul_result, 1);
-    * FLD (i_rdlo) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rdlo) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rdlo) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQDI (tmp_mul_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTDI (tmp_mul_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
 }
@@ -4819,29 +4818,29 @@ arm_sem_smull (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_mul_result = MULDI (EXTSIDI (* FLD (i_rs)), EXTSIDI (* FLD (i_rm)));
   {
     SI opval = SUBWORDDISI (tmp_mul_result, 0);
-    * FLD (i_rdhi) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rdhi) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rdhi) = opval;
   }
   {
     SI opval = SUBWORDDISI (tmp_mul_result, 1);
-    * FLD (i_rdlo) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rdlo) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rdlo) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQDI (tmp_mul_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTDI (tmp_mul_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
 }
@@ -4871,29 +4870,29 @@ arm_sem_smlal (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_mul_result = ADDDI (MULDI (EXTSIDI (* FLD (i_rs)), EXTSIDI (* FLD (i_rm))), tmp_mul_result);
   {
     SI opval = SUBWORDDISI (tmp_mul_result, 0);
-    * FLD (i_rdhi) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rdhi) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rdhi) = opval;
   }
   {
     SI opval = SUBWORDDISI (tmp_mul_result, 1);
-    * FLD (i_rdlo) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rdlo) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rdlo) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQDI (tmp_mul_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTDI (tmp_mul_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
 }
@@ -4920,15 +4919,15 @@ arm_sem_swp (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_temp = current_cpu->GETMEMSI (pc, * FLD (i_rn));
   {
     SI opval = * FLD (i_rm);
-    current_cpu->SETMEMSI (pc, * FLD (i_rn), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) * FLD (i_rn) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, * FLD (i_rn), opval);
   }
   {
     SI opval = tmp_temp;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 
@@ -4953,15 +4952,15 @@ arm_sem_swpb (arm7f_cpu* current_cpu, arm_scache* sem)
   tmp_temp = current_cpu->GETMEMQI (pc, * FLD (i_rn));
   {
     QI opval = * FLD (i_rm);
-    current_cpu->SETMEMQI (pc, * FLD (i_rn), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) * FLD (i_rn) << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
+    current_cpu->SETMEMQI (pc, * FLD (i_rn), opval);
   }
   {
     SI opval = tmp_temp;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 
@@ -4983,9 +4982,9 @@ arm_sem_swi (arm7f_cpu* current_cpu, arm_scache* sem)
 
   {
     USI opval = current_cpu->arm_swi (pc, FLD (f_swi_comment));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 
   current_cpu->done_cti_insn (npc, status);
@@ -5015,16 +5014,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -5032,31 +5031,31 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -5091,16 +5090,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -5108,31 +5107,31 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -5163,16 +5162,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -5180,23 +5179,23 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
 }
@@ -5231,16 +5230,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -5248,31 +5247,31 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -5307,16 +5306,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -5324,31 +5323,31 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -5379,16 +5378,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -5396,23 +5395,23 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
 }
@@ -5447,16 +5446,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -5464,31 +5463,31 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -5523,16 +5522,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -5540,31 +5539,31 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -5595,16 +5594,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -5612,23 +5611,23 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
 }
@@ -5663,16 +5662,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -5680,31 +5679,31 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -5739,16 +5738,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -5756,31 +5755,31 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -5811,16 +5810,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -5828,23 +5827,23 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
 }
@@ -5879,16 +5878,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -5896,31 +5895,31 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -5955,16 +5954,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -5972,31 +5971,31 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -6027,16 +6026,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -6044,23 +6043,23 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
 }
@@ -6095,16 +6094,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -6112,31 +6111,31 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -6171,16 +6170,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -6188,31 +6187,31 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -6243,16 +6242,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -6260,23 +6259,23 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
 }
@@ -6313,16 +6312,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -6330,9 +6329,9 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
@@ -6341,28 +6340,28 @@ if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = ADDCFSI (tmp_temp_op1, tmp_temp_op2, 0);
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = ADDOFSI (tmp_temp_op1, tmp_temp_op2, 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
@@ -6399,16 +6398,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -6416,9 +6415,9 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
@@ -6427,28 +6426,28 @@ if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = ADDCFSI (tmp_temp_op1, tmp_temp_op2, 0);
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = ADDOFSI (tmp_temp_op1, tmp_temp_op2, 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
@@ -6480,16 +6479,16 @@ if (EQSI (FLD (f_rd), 15)) {
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 } else {
@@ -6501,36 +6500,36 @@ if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = ADDCFSI (* FLD (i_rn), FLD (f_imm12), 0);
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = ADDOFSI (* FLD (i_rn), FLD (f_imm12), 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 }
@@ -6565,16 +6564,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -6582,9 +6581,9 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
@@ -6593,28 +6592,28 @@ if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = ADDCFSI (tmp_temp_op1, tmp_temp_op2, current_cpu->hardware.h_cbit);
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = ADDOFSI (tmp_temp_op1, tmp_temp_op2, current_cpu->hardware.h_cbit);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
@@ -6651,16 +6650,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -6668,9 +6667,9 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
@@ -6679,28 +6678,28 @@ if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = ADDCFSI (tmp_temp_op1, tmp_temp_op2, current_cpu->hardware.h_cbit);
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = ADDOFSI (tmp_temp_op1, tmp_temp_op2, current_cpu->hardware.h_cbit);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
@@ -6732,16 +6731,16 @@ if (EQSI (FLD (f_rd), 15)) {
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 } else {
@@ -6753,36 +6752,36 @@ if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = ADDCFSI (* FLD (i_rn), FLD (f_imm12), current_cpu->hardware.h_cbit);
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = ADDOFSI (* FLD (i_rn), FLD (f_imm12), current_cpu->hardware.h_cbit);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 }
@@ -6817,16 +6816,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -6834,9 +6833,9 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
@@ -6845,28 +6844,28 @@ if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (tmp_temp_op1, tmp_temp_op2, 0));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (tmp_temp_op1, tmp_temp_op2, 0));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (tmp_temp_op1, tmp_temp_op2, 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
@@ -6903,16 +6902,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -6920,9 +6919,9 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
@@ -6931,28 +6930,28 @@ if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (tmp_temp_op1, tmp_temp_op2, 0));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (tmp_temp_op1, tmp_temp_op2, 0));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (tmp_temp_op1, tmp_temp_op2, 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
@@ -6984,16 +6983,16 @@ if (EQSI (FLD (f_rd), 15)) {
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 } else {
@@ -7005,36 +7004,36 @@ if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (* FLD (i_rn), FLD (f_imm12), 0));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (* FLD (i_rn), FLD (f_imm12), 0));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (* FLD (i_rn), FLD (f_imm12), 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 }
@@ -7069,16 +7068,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -7086,9 +7085,9 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
@@ -7097,28 +7096,28 @@ if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (tmp_temp_op1, tmp_temp_op2, NOTBI (current_cpu->hardware.h_cbit)));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (tmp_temp_op1, tmp_temp_op2, NOTBI (current_cpu->hardware.h_cbit)));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (tmp_temp_op1, tmp_temp_op2, NOTBI (current_cpu->hardware.h_cbit));
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
@@ -7155,16 +7154,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -7172,9 +7171,9 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
@@ -7183,28 +7182,28 @@ if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (tmp_temp_op1, tmp_temp_op2, NOTBI (current_cpu->hardware.h_cbit)));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (tmp_temp_op1, tmp_temp_op2, NOTBI (current_cpu->hardware.h_cbit)));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (tmp_temp_op1, tmp_temp_op2, NOTBI (current_cpu->hardware.h_cbit));
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
@@ -7236,16 +7235,16 @@ if (EQSI (FLD (f_rd), 15)) {
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 } else {
@@ -7257,36 +7256,36 @@ if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (* FLD (i_rn), FLD (f_imm12), NOTBI (current_cpu->hardware.h_cbit)));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (* FLD (i_rn), FLD (f_imm12), NOTBI (current_cpu->hardware.h_cbit)));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (* FLD (i_rn), FLD (f_imm12), NOTBI (current_cpu->hardware.h_cbit));
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 }
@@ -7321,16 +7320,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -7338,9 +7337,9 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
@@ -7349,28 +7348,28 @@ if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (tmp_temp_op2, tmp_temp_op1, 0));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (tmp_temp_op2, tmp_temp_op1, 0));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (tmp_temp_op2, tmp_temp_op1, 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
@@ -7407,16 +7406,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -7424,9 +7423,9 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
@@ -7435,28 +7434,28 @@ if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (tmp_temp_op2, tmp_temp_op1, 0));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (tmp_temp_op2, tmp_temp_op1, 0));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (tmp_temp_op2, tmp_temp_op1, 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
@@ -7488,16 +7487,16 @@ if (EQSI (FLD (f_rd), 15)) {
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 } else {
@@ -7509,36 +7508,36 @@ if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (FLD (f_imm12), * FLD (i_rn), 0));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (FLD (f_imm12), * FLD (i_rn), 0));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (FLD (f_imm12), * FLD (i_rn), 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 }
@@ -7573,16 +7572,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -7590,9 +7589,9 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
@@ -7601,28 +7600,28 @@ if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (tmp_temp_op2, tmp_temp_op1, NOTBI (current_cpu->hardware.h_cbit)));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (tmp_temp_op2, tmp_temp_op1, NOTBI (current_cpu->hardware.h_cbit)));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (tmp_temp_op2, tmp_temp_op1, NOTBI (current_cpu->hardware.h_cbit));
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
@@ -7659,16 +7658,16 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -7676,9 +7675,9 @@ if (FLD (f_set_cc_)) {
 {
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 if (FLD (f_set_cc_)) {
 {
@@ -7687,28 +7686,28 @@ if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (tmp_temp_op2, tmp_temp_op1, NOTBI (current_cpu->hardware.h_cbit)));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (tmp_temp_op2, tmp_temp_op1, NOTBI (current_cpu->hardware.h_cbit)));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (tmp_temp_op2, tmp_temp_op1, NOTBI (current_cpu->hardware.h_cbit));
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
@@ -7740,16 +7739,16 @@ if (EQSI (FLD (f_rd), 15)) {
 if (FLD (f_set_cc_)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
   {
     USI opval = tmp_result;
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 } else {
@@ -7761,36 +7760,36 @@ if (FLD (f_set_cc_)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (FLD (f_imm12), * FLD (i_rn), NOTBI (current_cpu->hardware.h_cbit)));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (FLD (f_imm12), * FLD (i_rn), NOTBI (current_cpu->hardware.h_cbit)));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (FLD (f_imm12), * FLD (i_rn), NOTBI (current_cpu->hardware.h_cbit));
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
   {
     SI opval = tmp_result;
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 }
 }
@@ -7822,31 +7821,31 @@ arm_sem_tst_reg_imm_shift (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 } else {
 {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -7878,31 +7877,31 @@ arm_sem_tst_reg_reg_shift (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 } else {
 {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -7935,22 +7934,22 @@ if (EQSI (FLD (f_ror_imm8_rotate), 0)) {
 {
   {
     BI opval = EQSI (ANDSI (* FLD (i_rn), FLD (f_ror_imm8)), 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (ANDSI (* FLD (i_rn), FLD (f_ror_imm8)), 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -7981,31 +7980,31 @@ arm_sem_teq_reg_imm_shift (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 } else {
 {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -8037,31 +8036,31 @@ arm_sem_teq_reg_reg_shift (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 } else {
 {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -8094,22 +8093,22 @@ if (EQSI (FLD (f_ror_imm8_rotate), 0)) {
 {
   {
     BI opval = EQSI (XORSI (* FLD (i_rn), FLD (f_ror_imm8)), 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (XORSI (* FLD (i_rn), FLD (f_ror_imm8)), 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -8136,9 +8135,9 @@ arm_sem_cmp_reg_imm_shift (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 } else {
 {
@@ -8147,28 +8146,28 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (* FLD (i_rn), tmp_operand2, 0));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (* FLD (i_rn), tmp_operand2, 0));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (* FLD (i_rn), tmp_operand2, 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
@@ -8196,9 +8195,9 @@ arm_sem_cmp_reg_reg_shift (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 } else {
 {
@@ -8207,28 +8206,28 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (* FLD (i_rn), tmp_operand2, 0));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (* FLD (i_rn), tmp_operand2, 0));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (* FLD (i_rn), tmp_operand2, 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
@@ -8256,28 +8255,28 @@ arm_sem_cmp_imm (arm7f_cpu* current_cpu, arm_scache* sem)
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (* FLD (i_rn), FLD (f_imm12), 0));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (* FLD (i_rn), FLD (f_imm12), 0));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (* FLD (i_rn), FLD (f_imm12), 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 
@@ -8303,9 +8302,9 @@ arm_sem_cmn_reg_imm_shift (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 } else {
 {
@@ -8314,28 +8313,28 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = ADDCFSI (* FLD (i_rn), tmp_operand2, 0);
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = ADDOFSI (* FLD (i_rn), tmp_operand2, 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
@@ -8363,9 +8362,9 @@ arm_sem_cmn_reg_reg_shift (arm7f_cpu* current_cpu, arm_scache* sem)
 if (EQSI (FLD (f_rd), 15)) {
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 } else {
 {
@@ -8374,28 +8373,28 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = ADDCFSI (* FLD (i_rn), tmp_operand2, 0);
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = ADDOFSI (* FLD (i_rn), tmp_operand2, 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 }
@@ -8423,28 +8422,28 @@ arm_sem_cmn_imm (arm7f_cpu* current_cpu, arm_scache* sem)
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = ADDCFSI (* FLD (i_rn), FLD (f_imm12), 0);
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = ADDOFSI (* FLD (i_rn), FLD (f_imm12), 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 
@@ -8471,9 +8470,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8482,9 +8481,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8493,9 +8492,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 13) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8504,9 +8503,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 12) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8515,9 +8514,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 11) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8526,9 +8525,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 10) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8537,9 +8536,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 9) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8548,9 +8547,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8559,9 +8558,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 7) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8570,9 +8569,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 6) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8581,9 +8580,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 5) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8592,9 +8591,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 4) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8603,9 +8602,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 3) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8614,9 +8613,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 2) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8625,9 +8624,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8636,9 +8635,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8668,16 +8667,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -8686,16 +8685,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (14, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -8706,16 +8705,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 13) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (13, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -8726,16 +8725,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 12) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (12, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -8746,16 +8745,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 11) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (11, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -8766,16 +8765,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 10) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (10, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -8786,16 +8785,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 9) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (9, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -8806,16 +8805,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (8, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -8825,9 +8824,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 7) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8836,9 +8835,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 6) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8847,9 +8846,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 5) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8858,9 +8857,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 4) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8869,9 +8868,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 3) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8880,9 +8879,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 2) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8891,9 +8890,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8902,9 +8901,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8934,9 +8933,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8945,9 +8944,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8956,9 +8955,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 13) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8967,9 +8966,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 12) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8978,9 +8977,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 11) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -8989,9 +8988,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 10) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -9000,9 +8999,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 9) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -9011,9 +9010,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -9022,9 +9021,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 7) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -9033,9 +9032,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 6) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -9044,9 +9043,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 5) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -9055,9 +9054,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 4) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -9066,9 +9065,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 3) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -9077,9 +9076,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 2) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -9088,9 +9087,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -9099,18 +9098,18 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
 }
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -9137,16 +9136,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -9155,16 +9154,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (14, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -9175,16 +9174,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 13) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (13, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -9195,16 +9194,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 12) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (12, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -9215,16 +9214,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 11) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (11, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -9235,16 +9234,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 10) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (10, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -9255,16 +9254,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 9) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (9, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -9275,16 +9274,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (8, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -9294,9 +9293,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 7) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -9305,9 +9304,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 6) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -9316,9 +9315,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 5) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -9327,9 +9326,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 4) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -9338,9 +9337,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 3) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -9349,9 +9348,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 2) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -9360,9 +9359,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -9371,18 +9370,18 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
 }
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -9410,9 +9409,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
   }
 }
 }
@@ -9421,9 +9420,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
   }
 }
 }
@@ -9432,9 +9431,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 2) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
   }
 }
 }
@@ -9443,9 +9442,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 3) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
   }
 }
 }
@@ -9454,9 +9453,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 4) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
   }
 }
 }
@@ -9465,9 +9464,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 5) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
   }
 }
 }
@@ -9476,9 +9475,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 6) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
   }
 }
 }
@@ -9487,9 +9486,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 7) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
   }
 }
 }
@@ -9498,9 +9497,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
   }
 }
 }
@@ -9509,9 +9508,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 9) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
   }
 }
 }
@@ -9520,9 +9519,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 10) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
   }
 }
 }
@@ -9531,9 +9530,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 11) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
   }
 }
 }
@@ -9542,9 +9541,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 12) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
   }
 }
 }
@@ -9553,9 +9552,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 13) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
   }
 }
 }
@@ -9564,9 +9563,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
   }
 }
 }
@@ -9575,9 +9574,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 }
@@ -9607,9 +9606,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
   }
 }
 }
@@ -9618,9 +9617,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
   }
 }
 }
@@ -9629,9 +9628,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 2) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
   }
 }
 }
@@ -9640,9 +9639,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 3) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
   }
 }
 }
@@ -9651,9 +9650,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 4) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
   }
 }
 }
@@ -9662,9 +9661,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 5) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
   }
 }
 }
@@ -9673,9 +9672,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 6) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
   }
 }
 }
@@ -9684,9 +9683,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 7) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
   }
 }
 }
@@ -9696,16 +9695,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (8, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
   }
 }
 }
@@ -9716,16 +9715,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 9) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (9, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
   }
 }
 }
@@ -9736,16 +9735,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 10) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (10, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
   }
 }
 }
@@ -9756,16 +9755,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 11) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (11, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
   }
 }
 }
@@ -9776,16 +9775,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 12) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (12, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
   }
 }
 }
@@ -9796,16 +9795,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 13) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (13, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
   }
 }
 }
@@ -9816,16 +9815,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (14, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
   }
 }
 }
@@ -9835,15 +9834,15 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -9873,9 +9872,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
   }
 }
 }
@@ -9884,9 +9883,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
   }
 }
 }
@@ -9895,9 +9894,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 2) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
   }
 }
 }
@@ -9906,9 +9905,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 3) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
   }
 }
 }
@@ -9917,9 +9916,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 4) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
   }
 }
 }
@@ -9928,9 +9927,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 5) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
   }
 }
 }
@@ -9939,9 +9938,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 6) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
   }
 }
 }
@@ -9950,9 +9949,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 7) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
   }
 }
 }
@@ -9961,9 +9960,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
   }
 }
 }
@@ -9972,9 +9971,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 9) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
   }
 }
 }
@@ -9983,9 +9982,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 10) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
   }
 }
 }
@@ -9994,9 +9993,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 11) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
   }
 }
 }
@@ -10005,9 +10004,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 12) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
   }
 }
 }
@@ -10016,9 +10015,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 13) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
   }
 }
 }
@@ -10027,9 +10026,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
   }
 }
 }
@@ -10038,17 +10037,17 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 }
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -10076,9 +10075,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
   }
 }
 }
@@ -10087,9 +10086,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
   }
 }
 }
@@ -10098,9 +10097,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 2) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
   }
 }
 }
@@ -10109,9 +10108,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 3) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
   }
 }
 }
@@ -10120,9 +10119,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 4) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
   }
 }
 }
@@ -10131,9 +10130,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 5) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
   }
 }
 }
@@ -10142,9 +10141,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 6) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
   }
 }
 }
@@ -10153,9 +10152,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 7) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
   }
 }
 }
@@ -10165,16 +10164,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (8, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
   }
 }
 }
@@ -10185,16 +10184,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 9) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (9, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
   }
 }
 }
@@ -10205,16 +10204,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 10) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (10, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
   }
 }
 }
@@ -10225,16 +10224,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 11) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (11, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
   }
 }
 }
@@ -10245,16 +10244,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 12) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (12, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
   }
 }
 }
@@ -10265,16 +10264,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 13) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (13, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
   }
 }
 }
@@ -10285,16 +10284,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (14, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
   }
 }
 }
@@ -10304,23 +10303,23 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -10347,9 +10346,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10358,9 +10357,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10369,9 +10368,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 2) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10380,9 +10379,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 3) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10391,9 +10390,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 4) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10402,9 +10401,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 5) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10413,9 +10412,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 6) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10424,9 +10423,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 7) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10435,9 +10434,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10446,9 +10445,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 9) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10457,9 +10456,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 10) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10468,9 +10467,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 11) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10479,9 +10478,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 12) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10490,9 +10489,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 13) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10501,9 +10500,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10512,9 +10511,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10544,9 +10543,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10555,9 +10554,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10566,9 +10565,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 2) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10577,9 +10576,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 3) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10588,9 +10587,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 4) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10599,9 +10598,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 5) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10610,9 +10609,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 6) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10621,9 +10620,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 7) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10633,16 +10632,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (8, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -10653,16 +10652,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 9) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (9, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -10673,16 +10672,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 10) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (10, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -10693,16 +10692,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 11) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (11, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -10713,16 +10712,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 12) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (12, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -10733,16 +10732,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 13) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (13, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -10753,16 +10752,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (14, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -10772,16 +10771,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -10810,9 +10809,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10821,9 +10820,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10832,9 +10831,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 2) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10843,9 +10842,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 3) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10854,9 +10853,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 4) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10865,9 +10864,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 5) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10876,9 +10875,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 6) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10887,9 +10886,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 7) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10898,9 +10897,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10909,9 +10908,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 9) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10920,9 +10919,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 10) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10931,9 +10930,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 11) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10942,9 +10941,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 12) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10953,9 +10952,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 13) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10964,9 +10963,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -10975,18 +10974,18 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
 }
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -11013,9 +11012,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -11024,9 +11023,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -11035,9 +11034,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 2) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -11046,9 +11045,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 3) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -11057,9 +11056,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 4) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -11068,9 +11067,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 5) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -11079,9 +11078,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 6) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -11090,9 +11089,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 7) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -11102,16 +11101,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (8, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -11122,16 +11121,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 9) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (9, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -11142,16 +11141,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 10) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (10, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -11162,16 +11161,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 11) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (11, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -11182,16 +11181,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 12) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (12, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -11202,16 +11201,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 13) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (13, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -11222,16 +11221,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (14, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -11241,24 +11240,24 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -11286,9 +11285,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 }
@@ -11297,9 +11296,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
   }
 }
 }
@@ -11308,9 +11307,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 13) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
   }
 }
 }
@@ -11319,9 +11318,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 12) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
   }
 }
 }
@@ -11330,9 +11329,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 11) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
   }
 }
 }
@@ -11341,9 +11340,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 10) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
   }
 }
 }
@@ -11352,9 +11351,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 9) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
   }
 }
 }
@@ -11363,9 +11362,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
   }
 }
 }
@@ -11374,9 +11373,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 7) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
   }
 }
 }
@@ -11385,9 +11384,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 6) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
   }
 }
 }
@@ -11396,9 +11395,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 5) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
   }
 }
 }
@@ -11407,9 +11406,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 4) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
   }
 }
 }
@@ -11418,9 +11417,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 3) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
   }
 }
 }
@@ -11429,9 +11428,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 2) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
   }
 }
 }
@@ -11440,9 +11439,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
   }
 }
 }
@@ -11451,9 +11450,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
   }
 }
 }
@@ -11483,15 +11482,15 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -11501,16 +11500,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (14, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
   }
 }
 }
@@ -11521,16 +11520,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 13) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (13, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
   }
 }
 }
@@ -11541,16 +11540,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 12) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (12, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
   }
 }
 }
@@ -11561,16 +11560,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 11) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (11, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
   }
 }
 }
@@ -11581,16 +11580,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 10) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (10, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
   }
 }
 }
@@ -11601,16 +11600,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 9) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (9, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
   }
 }
 }
@@ -11621,16 +11620,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (8, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
   }
 }
 }
@@ -11640,9 +11639,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 7) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
   }
 }
 }
@@ -11651,9 +11650,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 6) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
   }
 }
 }
@@ -11662,9 +11661,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 5) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
   }
 }
 }
@@ -11673,9 +11672,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 4) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
   }
 }
 }
@@ -11684,9 +11683,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 3) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
   }
 }
 }
@@ -11695,9 +11694,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 2) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
   }
 }
 }
@@ -11706,9 +11705,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
   }
 }
 }
@@ -11717,9 +11716,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
   }
 }
 }
@@ -11749,9 +11748,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 }
@@ -11760,9 +11759,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
   }
 }
 }
@@ -11771,9 +11770,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 13) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
   }
 }
 }
@@ -11782,9 +11781,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 12) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
   }
 }
 }
@@ -11793,9 +11792,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 11) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
   }
 }
 }
@@ -11804,9 +11803,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 10) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
   }
 }
 }
@@ -11815,9 +11814,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 9) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
   }
 }
 }
@@ -11826,9 +11825,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
   }
 }
 }
@@ -11837,9 +11836,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 7) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
   }
 }
 }
@@ -11848,9 +11847,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 6) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
   }
 }
 }
@@ -11859,9 +11858,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 5) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
   }
 }
 }
@@ -11870,9 +11869,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 4) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
   }
 }
 }
@@ -11881,9 +11880,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 3) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
   }
 }
 }
@@ -11892,9 +11891,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 2) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
   }
 }
 }
@@ -11903,9 +11902,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
   }
 }
 }
@@ -11914,17 +11913,17 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
   }
 }
 }
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -11952,15 +11951,15 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     USI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
   {
     SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 }
 }
@@ -11970,16 +11969,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (14, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
   }
 }
 }
@@ -11990,16 +11989,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 13) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (13, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
   }
 }
 }
@@ -12010,16 +12009,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 12) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (12, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
   }
 }
 }
@@ -12030,16 +12029,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 11) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (11, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
   }
 }
 }
@@ -12050,16 +12049,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 10) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (10, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
   }
 }
 }
@@ -12070,16 +12069,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 9) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (9, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
   }
 }
 }
@@ -12090,16 +12089,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
   }
 } else {
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-usr" << '[' << SUBSI (8, 8) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
   }
 }
 }
@@ -12109,9 +12108,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 7) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
   }
 }
 }
@@ -12120,9 +12119,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 6) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
   }
 }
 }
@@ -12131,9 +12130,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 5) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
   }
 }
 }
@@ -12142,9 +12141,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 4) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
   }
 }
 }
@@ -12153,9 +12152,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 3) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
   }
 }
 }
@@ -12164,9 +12163,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 2) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
   }
 }
 }
@@ -12175,9 +12174,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
   }
 }
 }
@@ -12186,17 +12185,17 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->GETMEMSI (pc, tmp_addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
   }
 }
 }
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -12224,9 +12223,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12235,9 +12234,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12246,9 +12245,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12257,9 +12256,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12268,9 +12267,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12279,9 +12278,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12290,9 +12289,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12301,9 +12300,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12312,9 +12311,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12323,9 +12322,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12334,9 +12333,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12345,9 +12344,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12356,9 +12355,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12367,9 +12366,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12378,9 +12377,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12389,9 +12388,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12421,9 +12420,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12433,16 +12432,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (14, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12453,16 +12452,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (13, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12473,16 +12472,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (12, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12493,16 +12492,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (11, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12513,16 +12512,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (10, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12533,16 +12532,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (9, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12553,16 +12552,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (8, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12572,9 +12571,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12583,9 +12582,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12594,9 +12593,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12605,9 +12604,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12616,9 +12615,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12627,9 +12626,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12638,9 +12637,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12649,9 +12648,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12681,9 +12680,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12692,9 +12691,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12703,9 +12702,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12714,9 +12713,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12725,9 +12724,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12736,9 +12735,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12747,9 +12746,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12758,9 +12757,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12769,9 +12768,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12780,9 +12779,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12791,9 +12790,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12802,9 +12801,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12813,9 +12812,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12824,9 +12823,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12835,9 +12834,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12846,17 +12845,17 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -12884,9 +12883,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12896,16 +12895,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (14, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12916,16 +12915,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (13, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12936,16 +12935,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (12, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12956,16 +12955,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (11, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12976,16 +12975,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (10, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -12996,16 +12995,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (9, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13016,16 +13015,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (8, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13035,9 +13034,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13046,9 +13045,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13057,9 +13056,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13068,9 +13067,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13079,9 +13078,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13090,9 +13089,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13101,9 +13100,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13112,17 +13111,17 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
   tmp_addr = SUBSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -13150,9 +13149,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13161,9 +13160,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13172,9 +13171,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13183,9 +13182,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13194,9 +13193,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13205,9 +13204,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13216,9 +13215,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13227,9 +13226,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13238,9 +13237,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13249,9 +13248,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13260,9 +13259,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13271,9 +13270,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13282,9 +13281,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13293,9 +13292,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13304,9 +13303,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13315,9 +13314,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13347,9 +13346,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13358,9 +13357,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13369,9 +13368,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13380,9 +13379,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13391,9 +13390,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13402,9 +13401,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13413,9 +13412,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13424,9 +13423,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13436,16 +13435,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (8, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13456,16 +13455,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (9, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13476,16 +13475,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (10, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13496,16 +13495,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (11, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13516,16 +13515,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (12, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13536,16 +13535,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (13, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13556,16 +13555,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (14, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13575,9 +13574,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13607,9 +13606,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13618,9 +13617,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13629,9 +13628,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13640,9 +13639,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13651,9 +13650,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13662,9 +13661,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13673,9 +13672,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13684,9 +13683,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13695,9 +13694,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13706,9 +13705,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13717,9 +13716,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13728,9 +13727,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13739,9 +13738,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13750,9 +13749,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13761,9 +13760,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13772,17 +13771,17 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -13810,9 +13809,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13821,9 +13820,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13832,9 +13831,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13843,9 +13842,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13854,9 +13853,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13865,9 +13864,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13876,9 +13875,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13887,9 +13886,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13899,16 +13898,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (8, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13919,16 +13918,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (9, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13939,16 +13938,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (10, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13959,16 +13958,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (11, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13979,16 +13978,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (12, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -13999,16 +13998,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (13, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -14019,16 +14018,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (14, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
@@ -14038,17 +14037,17 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   tmp_addr = ADDSI (tmp_addr, 4);
   {
     SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
 }
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -14075,9 +14074,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14086,9 +14085,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14097,9 +14096,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14108,9 +14107,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14119,9 +14118,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14130,9 +14129,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14141,9 +14140,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14152,9 +14151,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14163,9 +14162,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14174,9 +14173,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14185,9 +14184,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14196,9 +14195,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14207,9 +14206,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14218,9 +14217,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14229,9 +14228,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14240,9 +14239,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   {
     SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14272,9 +14271,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14283,9 +14282,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14294,9 +14293,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14305,9 +14304,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14316,9 +14315,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14327,9 +14326,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14338,9 +14337,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14349,9 +14348,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14361,16 +14360,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (8, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -14381,16 +14380,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (9, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -14401,16 +14400,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (10, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -14421,16 +14420,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (11, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -14441,16 +14440,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (12, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -14461,16 +14460,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (13, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -14481,16 +14480,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (14, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -14500,9 +14499,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   {
     SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14532,9 +14531,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14543,9 +14542,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14554,9 +14553,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14565,9 +14564,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14576,9 +14575,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14587,9 +14586,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14598,9 +14597,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14609,9 +14608,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14620,9 +14619,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14631,9 +14630,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14642,9 +14641,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14653,9 +14652,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14664,9 +14663,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14675,9 +14674,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14686,9 +14685,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14697,18 +14696,18 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   {
     SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
 }
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -14735,9 +14734,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14746,9 +14745,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14757,9 +14756,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14768,9 +14767,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14779,9 +14778,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14790,9 +14789,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14801,9 +14800,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14812,9 +14811,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
@@ -14824,16 +14823,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (8, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -14844,16 +14843,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (9, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -14864,16 +14863,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (10, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -14884,16 +14883,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (11, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -14904,16 +14903,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (12, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -14924,16 +14923,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (13, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -14944,16 +14943,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (14, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = ADDSI (tmp_addr, 4);
@@ -14963,18 +14962,18 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   {
     SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = ADDSI (tmp_addr, 4);
 }
 }
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -15001,9 +15000,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   {
     SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15012,9 +15011,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15023,9 +15022,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15034,9 +15033,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15045,9 +15044,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15056,9 +15055,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15067,9 +15066,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15078,9 +15077,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15089,9 +15088,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15100,9 +15099,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15111,9 +15110,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15122,9 +15121,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15133,9 +15132,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15144,9 +15143,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15155,9 +15154,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15166,9 +15165,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15198,9 +15197,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   {
     SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15210,16 +15209,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (14, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -15230,16 +15229,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (13, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -15250,16 +15249,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (12, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -15270,16 +15269,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (11, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -15290,16 +15289,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (10, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -15310,16 +15309,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (9, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -15330,16 +15329,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (8, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -15349,9 +15348,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15360,9 +15359,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15371,9 +15370,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15382,9 +15381,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15393,9 +15392,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15404,9 +15403,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15415,9 +15414,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15426,9 +15425,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15458,9 +15457,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   {
     SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15469,9 +15468,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15480,9 +15479,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15491,9 +15490,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15502,9 +15501,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15513,9 +15512,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15524,9 +15523,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15535,9 +15534,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15546,9 +15545,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15557,9 +15556,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15568,9 +15567,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15579,9 +15578,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15590,9 +15589,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15601,9 +15600,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15612,9 +15611,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15623,18 +15622,18 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
 }
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -15661,9 +15660,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   {
     SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15673,16 +15672,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (14, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -15693,16 +15692,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (13, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -15713,16 +15712,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (12, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -15733,16 +15732,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (11, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -15753,16 +15752,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (10, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -15773,16 +15772,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (9, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -15793,16 +15792,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 } else {
   {
     SI opval = current_cpu->hardware.h_gr_usr[SUBSI (8, 8)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
 }
   tmp_addr = SUBSI (tmp_addr, 4);
@@ -15812,9 +15811,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15823,9 +15822,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15834,9 +15833,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15845,9 +15844,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15856,9 +15855,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15867,9 +15866,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15878,9 +15877,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
@@ -15889,18 +15888,18 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   {
     SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, tmp_addr, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_addr << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, tmp_addr, opval);
   }
   tmp_addr = SUBSI (tmp_addr, 4);
 }
 }
   {
     SI opval = tmp_addr;
-    * FLD (i_rn) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rn) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rn) = opval;
   }
 }
 
@@ -15922,9 +15921,9 @@ arm_sem_mrs_c (arm7f_cpu* current_cpu, arm_scache* sem)
 
   {
     SI opval = current_cpu->h_cpsr_get ();
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 
   current_cpu->done_insn (npc, status);
@@ -15945,9 +15944,9 @@ arm_sem_mrs_s (arm7f_cpu* current_cpu, arm_scache* sem)
 
   {
     SI opval = current_cpu->h_spsr_get ();
-    * FLD (i_rd) = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    * FLD (i_rd) = opval;
   }
 
   current_cpu->done_insn (npc, status);
@@ -15968,9 +15967,9 @@ arm_sem_msr_c (arm7f_cpu* current_cpu, arm_scache* sem)
 
   {
     SI opval = * FLD (i_rm);
-    current_cpu->h_cpsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cpsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_cpsr_set (opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -15991,9 +15990,9 @@ arm_sem_msr_s (arm7f_cpu* current_cpu, arm_scache* sem)
 
   {
     SI opval = * FLD (i_rm);
-    current_cpu->h_spsr_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "spsr" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_spsr_set (opval);
   }
 
   current_cpu->done_insn (npc, status);
index 2f40d8c..d2028c4 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000, 2001, 2002, 2003 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -925,7 +925,7 @@ restart:
 {
   offset = current_cpu->compute_operand2_immshift (* FLD (i_rm), FLD (f_operand2_shifttype), FLD (f_operand2_shiftimm));
   addr = * FLD (i_rn);
-if (((FLD (f_rd)) == (15))) {
+if (EQSI (FLD (f_rd), 15)) {
 npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
 } else {
 * FLD (i_rd) = current_cpu->GETMEMSI (pc, addr);
@@ -948,7 +948,7 @@ npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
 
 {
   addr = * FLD (i_rn);
-if (((FLD (f_reg_list)) & (((1) << (15))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
 current_cpu->SETMEMSI (pc, addr, ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4));
   addr = SUBSI (addr, 4);
@@ -972,49 +972,49 @@ current_cpu->SETMEMSI (pc, addr, ADDSI (current_cpu->hardware.h_gr[((UINT) 15)],
 
 {
   addr = * FLD (i_rn);
-if (((FLD (f_reg_list)) & (((1) << (0))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
 current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 0)]);
   addr = ADDSI (addr, 4);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (1))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
 current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 1)]);
   addr = ADDSI (addr, 4);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (2))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
 current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 2)]);
   addr = ADDSI (addr, 4);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (3))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
 current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 3)]);
   addr = ADDSI (addr, 4);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (4))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
 current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 4)]);
   addr = ADDSI (addr, 4);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (5))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
 current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 5)]);
   addr = ADDSI (addr, 4);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (6))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
 current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 6)]);
   addr = ADDSI (addr, 4);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (7))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
 current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 7)]);
   addr = ADDSI (addr, 4);
@@ -1038,49 +1038,49 @@ current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 7)]);
 
 {
   addr = * FLD (i_rn);
-if (((FLD (f_reg_list)) & (((1) << (0))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   addr = ADDSI (addr, 4);
 current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 0)]);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (1))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   addr = ADDSI (addr, 4);
 current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 1)]);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (2))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   addr = ADDSI (addr, 4);
 current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 2)]);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (3))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   addr = ADDSI (addr, 4);
 current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 3)]);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (4))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   addr = ADDSI (addr, 4);
 current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 4)]);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (5))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   addr = ADDSI (addr, 4);
 current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 5)]);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (6))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   addr = ADDSI (addr, 4);
 current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 6)]);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (7))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   addr = ADDSI (addr, 4);
 current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 7)]);
@@ -1104,7 +1104,7 @@ current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 7)]);
 
 {
   addr = * FLD (i_rn);
-if (((FLD (f_reg_list)) & (((1) << (15))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   addr = SUBSI (addr, 4);
 current_cpu->SETMEMSI (pc, addr, ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4));
@@ -1129,49 +1129,49 @@ current_cpu->SETMEMSI (pc, addr, ADDSI (current_cpu->hardware.h_gr[((UINT) 15)],
 
 {
   addr = * FLD (i_rn);
-if (((FLD (f_reg_list)) & (((1) << (0))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
 current_cpu->hardware.h_gr[((UINT) 0)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (1))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
 current_cpu->hardware.h_gr[((UINT) 1)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (2))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
 current_cpu->hardware.h_gr[((UINT) 2)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (3))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
 current_cpu->hardware.h_gr[((UINT) 3)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (4))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
 current_cpu->hardware.h_gr[((UINT) 4)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (5))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
 current_cpu->hardware.h_gr[((UINT) 5)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (6))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
 current_cpu->hardware.h_gr[((UINT) 6)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (7))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
 current_cpu->hardware.h_gr[((UINT) 7)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
@@ -1196,49 +1196,49 @@ current_cpu->hardware.h_gr[((UINT) 7)] = current_cpu->GETMEMSI (pc, addr);
 
 {
   addr = * FLD (i_rn);
-if (((FLD (f_reg_list)) & (((1) << (0))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   addr = ADDSI (addr, 4);
 current_cpu->hardware.h_gr[((UINT) 0)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (1))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   addr = ADDSI (addr, 4);
 current_cpu->hardware.h_gr[((UINT) 1)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (2))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   addr = ADDSI (addr, 4);
 current_cpu->hardware.h_gr[((UINT) 2)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (3))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   addr = ADDSI (addr, 4);
 current_cpu->hardware.h_gr[((UINT) 3)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (4))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   addr = ADDSI (addr, 4);
 current_cpu->hardware.h_gr[((UINT) 4)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (5))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   addr = ADDSI (addr, 4);
 current_cpu->hardware.h_gr[((UINT) 5)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (6))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   addr = ADDSI (addr, 4);
 current_cpu->hardware.h_gr[((UINT) 6)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
-if (((FLD (f_reg_list)) & (((1) << (7))))) {
+if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   addr = ADDSI (addr, 4);
 current_cpu->hardware.h_gr[((UINT) 7)] = current_cpu->GETMEMSI (pc, addr);
@@ -1284,7 +1284,7 @@ current_cpu->SETMEMQI (pc, addr, TRUNCSIQI (* FLD (i_rd)));
 {
   offset = FLD (f_uimm12);
   addr = * FLD (i_rn);
-if (((FLD (f_rd)) == (15))) {
+if (EQSI (FLD (f_rd), 15)) {
 npc = ZEXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
 * FLD (i_rd) = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
@@ -1309,7 +1309,7 @@ npc = ZEXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABL
 {
   offset = FLD (f_uimm12);
   addr = * FLD (i_rn);
-if (((FLD (f_rd)) == (15))) {
+if (EQSI (FLD (f_rd), 15)) {
 npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
 } else {
 * FLD (i_rd) = current_cpu->GETMEMSI (pc, addr);
@@ -1344,26 +1344,14 @@ npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
 
 {
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 } else {
 {
 {
-  {
-    BI opval = EQSI (result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (result, 0);
+current_cpu->hardware.h_nbit = LTSI (result, 0);
 }
-  {
-    BI opval = carry_out;
-    current_cpu->hardware.h_cbit = opval;
-  }
+current_cpu->hardware.h_cbit = carry_out;
 }
 }
 }
@@ -1381,26 +1369,14 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 } else {
 {
 {
-  {
-    BI opval = EQSI (result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (result, 0);
+current_cpu->hardware.h_nbit = LTSI (result, 0);
 }
-  {
-    BI opval = carry_out;
-    current_cpu->hardware.h_cbit = opval;
-  }
+current_cpu->hardware.h_cbit = carry_out;
 }
 }
 }
@@ -1417,7 +1393,7 @@ if (EQSI (FLD (f_rd), 15)) {
       PCADDR pc = abuf->addr;
 
 {
-if (((FLD (f_rd)) == (15))) {
+if (EQSI (FLD (f_rd), 15)) {
 {
 npc = result; br_status = BRANCH_UNCACHEABLE;
 if (FLD (f_set_cc_)) {
@@ -1451,7 +1427,7 @@ current_cpu->hardware.h_nbit = LTSI (result, 0);
       PCADDR pc = abuf->addr;
 
 {
-if (((FLD (f_rd)) == (15))) {
+if (EQSI (FLD (f_rd), 15)) {
 {
 npc = result; br_status = BRANCH_UNCACHEABLE;
 if (FLD (f_set_cc_)) {
@@ -1488,7 +1464,7 @@ current_cpu->hardware.h_cbit = carry_out;
       PCADDR pc = abuf->addr;
 
 {
-if (((FLD (f_rd)) == (15))) {
+if (EQSI (FLD (f_rd), 15)) {
 {
 npc = result; br_status = BRANCH_UNCACHEABLE;
 if (FLD (f_set_cc_)) {
@@ -1650,15 +1626,9 @@ current_cpu->hardware.h_nbit = LTDI (mul_result, 0);
 
 {
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = current_cpu->GETMEMSI (pc, addr);
 }
 ((void) 0); /*nop*/
 ((void) 0); /*nop*/
@@ -1679,15 +1649,9 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = current_cpu->GETMEMSI (pc, addr);
 }
 ((void) 0); /*nop*/
 ((void) 0); /*nop*/
@@ -1810,21 +1774,12 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = current_cpu->GETMEMSI (pc, addr);
 }
 ((void) 0); /*nop*/
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -1842,21 +1797,12 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = current_cpu->GETMEMSI (pc, addr);
 }
 ((void) 0); /*nop*/
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -1907,15 +1853,9 @@ current_cpu->SETMEMSI (pc, addr, * FLD (i_rd));
       PCADDR pc = abuf->addr;
 
 {
-  {
-    SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, * FLD (i_rd));
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
 #undef FLD
@@ -1930,7 +1870,7 @@ current_cpu->SETMEMSI (pc, addr, * FLD (i_rd));
       PCADDR pc = abuf->addr;
 
 {
-if (((FLD (f_rd)) == (15))) {
+if (EQSI (FLD (f_rd), 15)) {
 npc = ZEXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
 * FLD (i_rd) = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
@@ -1987,15 +1927,9 @@ current_cpu->SETMEMSI (pc, addr, * FLD (i_rd));
       PCADDR pc = abuf->addr;
 
 {
-  {
-    SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, * FLD (i_rd));
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
 #undef FLD
@@ -2010,7 +1944,7 @@ current_cpu->SETMEMSI (pc, addr, * FLD (i_rd));
       PCADDR pc = abuf->addr;
 
 {
-if (((FLD (f_rd)) == (15))) {
+if (EQSI (FLD (f_rd), 15)) {
 npc = ZEXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
 * FLD (i_rd) = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
@@ -2200,10 +2134,7 @@ npc = ZEXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABL
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, GET_ATTR (R15_OFFSET));
 
 {
-  {
-    USI opval = FLD (i_offset24);
-    npc = opval; br_status = BRANCH_CACHEABLE;
-  }
+npc = FLD (i_offset24); br_status = BRANCH_CACHEABLE;
 }
 
       pbb_br_npc = npc;
@@ -2224,14 +2155,8 @@ npc = ZEXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABL
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, GET_ATTR (R15_OFFSET));
 
 {
-  {
-    SI opval = ANDSI (ADDSI (pc, 4), -4);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
-  }
-  {
-    USI opval = FLD (i_offset24);
-    npc = opval; br_status = BRANCH_CACHEABLE;
-  }
+current_cpu->hardware.h_gr[((UINT) 14)] = ANDSI (ADDSI (pc, 4), -4);
+npc = FLD (i_offset24); br_status = BRANCH_CACHEABLE;
 }
 
       pbb_br_npc = npc;
@@ -2252,15 +2177,9 @@ npc = ZEXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABL
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, GET_ATTR (R15_OFFSET));
 
 {
-  {
-    USI opval = ANDSI (* FLD (i_bx_rn), 0xfffffffe);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ANDSI (* FLD (i_bx_rn), 0xfffffffe); br_status = BRANCH_UNCACHEABLE;
 if (ANDSI (* FLD (i_bx_rn), 1)) {
-  {
-    BI opval = 1;
-    current_cpu->h_tbit_set (opval);
-  }
+current_cpu->h_tbit_set (1);
 }
 }
 
@@ -2285,21 +2204,12 @@ if (ANDSI (* FLD (i_bx_rn), 1)) {
   offset = FLD (f_uimm12);
   addr = * FLD (i_rn);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = current_cpu->GETMEMSI (pc, addr);
 }
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -2323,21 +2233,12 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = current_cpu->compute_operand2_immshift (* FLD (i_rm), FLD (f_operand2_shifttype), FLD (f_operand2_shiftimm));
   addr = * FLD (i_rn);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = current_cpu->GETMEMSI (pc, addr);
 }
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -2355,10 +2256,7 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -2376,10 +2274,7 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -2397,10 +2292,7 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -2418,10 +2310,7 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -2445,21 +2334,12 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (f_uimm12);
   addr = * FLD (i_rn);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = current_cpu->GETMEMSI (pc, addr);
 }
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -2477,21 +2357,12 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = current_cpu->GETMEMSI (pc, addr);
 }
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -2530,15 +2401,9 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   addr = SUBSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = current_cpu->GETMEMSI (pc, addr);
 }
 ((void) 0); /*nop*/
 ((void) 0); /*nop*/
@@ -2565,15 +2430,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (f_uimm12);
   addr = ADDSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = current_cpu->GETMEMSI (pc, addr);
 }
 }
 
@@ -2626,21 +2485,12 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   addr = SUBSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = current_cpu->GETMEMSI (pc, addr);
 }
 ((void) 0); /*nop*/
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -2664,15 +2514,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (f_uimm12);
   addr = ADDSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = current_cpu->GETMEMSI (pc, addr);
 }
 }
 
@@ -2710,21 +2554,12 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (f_uimm12);
   addr = * FLD (i_rn);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -2742,10 +2577,7 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -2763,10 +2595,7 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -2790,21 +2619,12 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (f_uimm12);
   addr = * FLD (i_rn);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -2828,15 +2648,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (f_uimm12);
   addr = SUBSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
 }
 
@@ -2854,15 +2668,9 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   addr = SUBSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
 }
 
@@ -2885,15 +2693,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (f_uimm12);
   addr = ADDSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
 }
 
@@ -2911,15 +2713,9 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   addr = ADDSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
 }
 
@@ -2942,15 +2738,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (f_uimm12);
   addr = SUBSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
 }
 
@@ -2968,15 +2758,9 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   addr = SUBSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
 }
 
@@ -2999,15 +2783,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (f_uimm12);
   addr = ADDSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
 }
 
@@ -3025,15 +2803,9 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   addr = ADDSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
 }
 
@@ -3092,15 +2864,9 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = FLD (f_uimm12);
   addr = * FLD (i_rn);
-  {
-    SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, * FLD (i_rd));
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
 #undef FLD
@@ -3120,15 +2886,9 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = FLD (f_uimm12);
   addr = * FLD (i_rn);
-  {
-    SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, * FLD (i_rd));
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
 #undef FLD
@@ -3148,10 +2908,7 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = FLD (f_uimm12);
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, * FLD (i_rd));
 }
 
 #undef FLD
@@ -3167,10 +2924,7 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, * FLD (i_rd));
 }
 
 #undef FLD
@@ -3190,10 +2944,7 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = FLD (f_uimm12);
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, * FLD (i_rd));
 }
 
 #undef FLD
@@ -3209,10 +2960,7 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, * FLD (i_rd));
 }
 
 #undef FLD
@@ -3232,10 +2980,7 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = FLD (f_uimm12);
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, * FLD (i_rd));
 }
 
 #undef FLD
@@ -3251,10 +2996,7 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, * FLD (i_rd));
 }
 
 #undef FLD
@@ -3274,10 +3016,7 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = FLD (f_uimm12);
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, * FLD (i_rd));
 }
 
 #undef FLD
@@ -3293,10 +3032,7 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = * FLD (i_rd);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, * FLD (i_rd));
 }
 
 #undef FLD
@@ -3316,15 +3052,9 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = FLD (f_uimm12);
   addr = * FLD (i_rn);
-  {
-    QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, addr, opval);
-  }
+current_cpu->SETMEMQI (pc, addr, TRUNCSIQI (* FLD (i_rd)));
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
 #undef FLD
@@ -3340,10 +3070,7 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
 #undef FLD
@@ -3359,10 +3086,7 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
 #undef FLD
@@ -3382,15 +3106,9 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = FLD (f_uimm12);
   addr = * FLD (i_rn);
-  {
-    QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, addr, opval);
-  }
+current_cpu->SETMEMQI (pc, addr, TRUNCSIQI (* FLD (i_rd)));
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
 #undef FLD
@@ -3425,10 +3143,7 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = FLD (f_uimm12);
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, addr, opval);
-  }
+current_cpu->SETMEMQI (pc, addr, TRUNCSIQI (* FLD (i_rd)));
 }
 
 #undef FLD
@@ -3444,10 +3159,7 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, addr, opval);
-  }
+current_cpu->SETMEMQI (pc, addr, TRUNCSIQI (* FLD (i_rd)));
 }
 
 #undef FLD
@@ -3467,10 +3179,7 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = FLD (f_uimm12);
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, addr, opval);
-  }
+current_cpu->SETMEMQI (pc, addr, TRUNCSIQI (* FLD (i_rd)));
 }
 
 #undef FLD
@@ -3490,10 +3199,7 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = current_cpu->compute_operand2_immshift (* FLD (i_rm), FLD (f_operand2_shifttype), FLD (f_operand2_shiftimm));
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, addr, opval);
-  }
+current_cpu->SETMEMQI (pc, addr, TRUNCSIQI (* FLD (i_rd)));
 }
 
 #undef FLD
@@ -3513,10 +3219,7 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = FLD (f_uimm12);
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, addr, opval);
-  }
+current_cpu->SETMEMQI (pc, addr, TRUNCSIQI (* FLD (i_rd)));
 }
 
 #undef FLD
@@ -3532,10 +3235,7 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, addr, opval);
-  }
+current_cpu->SETMEMQI (pc, addr, TRUNCSIQI (* FLD (i_rd)));
 }
 
 #undef FLD
@@ -3555,10 +3255,7 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = FLD (f_uimm12);
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, addr, opval);
-  }
+current_cpu->SETMEMQI (pc, addr, TRUNCSIQI (* FLD (i_rd)));
 }
 
 #undef FLD
@@ -3574,10 +3271,7 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    QI opval = TRUNCSIQI (* FLD (i_rd));
-    current_cpu->SETMEMQI (pc, addr, opval);
-  }
+current_cpu->SETMEMQI (pc, addr, TRUNCSIQI (* FLD (i_rd)));
 }
 
 #undef FLD
@@ -3597,10 +3291,7 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = FLD (i_hdt_offset8);
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, addr, opval);
-  }
+current_cpu->SETMEMHI (pc, addr, TRUNCSIHI (* FLD (i_rd)));
 }
 
 #undef FLD
@@ -3620,10 +3311,7 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = * FLD (i_rm);
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, addr, opval);
-  }
+current_cpu->SETMEMHI (pc, addr, TRUNCSIHI (* FLD (i_rd)));
 }
 
 #undef FLD
@@ -3643,10 +3331,7 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = FLD (i_hdt_offset8);
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, addr, opval);
-  }
+current_cpu->SETMEMHI (pc, addr, TRUNCSIHI (* FLD (i_rd)));
 }
 
 #undef FLD
@@ -3666,10 +3351,7 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = * FLD (i_rm);
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, addr, opval);
-  }
+current_cpu->SETMEMHI (pc, addr, TRUNCSIHI (* FLD (i_rd)));
 }
 
 #undef FLD
@@ -3689,10 +3371,7 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = FLD (i_hdt_offset8);
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, addr, opval);
-  }
+current_cpu->SETMEMHI (pc, addr, TRUNCSIHI (* FLD (i_rd)));
 }
 
 #undef FLD
@@ -3712,10 +3391,7 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = * FLD (i_rm);
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, addr, opval);
-  }
+current_cpu->SETMEMHI (pc, addr, TRUNCSIHI (* FLD (i_rd)));
 }
 
 #undef FLD
@@ -3735,10 +3411,7 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = FLD (i_hdt_offset8);
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, addr, opval);
-  }
+current_cpu->SETMEMHI (pc, addr, TRUNCSIHI (* FLD (i_rd)));
 }
 
 #undef FLD
@@ -3758,10 +3431,7 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = * FLD (i_rm);
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, addr, opval);
-  }
+current_cpu->SETMEMHI (pc, addr, TRUNCSIHI (* FLD (i_rd)));
 }
 
 #undef FLD
@@ -3781,15 +3451,9 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = FLD (i_hdt_offset8);
   addr = * FLD (i_rn);
-  {
-    HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, addr, opval);
-  }
+current_cpu->SETMEMHI (pc, addr, TRUNCSIHI (* FLD (i_rd)));
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
 #undef FLD
@@ -3809,15 +3473,9 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = * FLD (i_rm);
   addr = * FLD (i_rn);
-  {
-    HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, addr, opval);
-  }
+current_cpu->SETMEMHI (pc, addr, TRUNCSIHI (* FLD (i_rd)));
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
 #undef FLD
@@ -3837,15 +3495,9 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = FLD (i_hdt_offset8);
   addr = * FLD (i_rn);
-  {
-    HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, addr, opval);
-  }
+current_cpu->SETMEMHI (pc, addr, TRUNCSIHI (* FLD (i_rd)));
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
 #undef FLD
@@ -3865,15 +3517,9 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   offset = * FLD (i_rm);
   addr = * FLD (i_rn);
-  {
-    HI opval = TRUNCSIHI (* FLD (i_rd));
-    current_cpu->SETMEMHI (pc, addr, opval);
-  }
+current_cpu->SETMEMHI (pc, addr, TRUNCSIHI (* FLD (i_rd)));
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
 #undef FLD
@@ -3895,15 +3541,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (i_hdt_offset8);
   addr = SUBSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
 }
 
@@ -3926,15 +3566,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = * FLD (i_rm);
   addr = SUBSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
 }
 
@@ -3957,15 +3591,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (i_hdt_offset8);
   addr = ADDSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
 }
 
@@ -3988,15 +3616,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = * FLD (i_rm);
   addr = ADDSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
 }
 
@@ -4019,15 +3641,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (i_hdt_offset8);
   addr = SUBSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
 }
 
@@ -4050,15 +3666,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = * FLD (i_rm);
   addr = SUBSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
 }
 
@@ -4081,15 +3691,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (i_hdt_offset8);
   addr = ADDSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
 }
 
@@ -4112,15 +3716,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = * FLD (i_rm);
   addr = ADDSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
 }
 
@@ -4143,21 +3741,12 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (i_hdt_offset8);
   addr = * FLD (i_rn);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -4181,21 +3770,12 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = * FLD (i_rm);
   addr = * FLD (i_rn);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -4219,21 +3799,12 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (i_hdt_offset8);
   addr = * FLD (i_rn);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -4257,21 +3828,12 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = * FLD (i_rm);
   addr = * FLD (i_rn);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTQISI (current_cpu->GETMEMQI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTQISI (current_cpu->GETMEMQI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTQISI (current_cpu->GETMEMQI (pc, addr));
 }
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -4295,15 +3857,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (i_hdt_offset8);
   addr = SUBSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
 }
 
@@ -4326,15 +3882,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = * FLD (i_rm);
   addr = SUBSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
 }
 
@@ -4357,15 +3907,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (i_hdt_offset8);
   addr = ADDSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
 }
 
@@ -4388,15 +3932,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = * FLD (i_rm);
   addr = ADDSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
 }
 
@@ -4419,15 +3957,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (i_hdt_offset8);
   addr = SUBSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
 }
 
@@ -4450,15 +3982,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = * FLD (i_rm);
   addr = SUBSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
 }
 
@@ -4481,15 +4007,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (i_hdt_offset8);
   addr = ADDSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
 }
 
@@ -4512,15 +4032,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = * FLD (i_rm);
   addr = ADDSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
 }
 
@@ -4543,21 +4057,12 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (i_hdt_offset8);
   addr = * FLD (i_rn);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -4581,21 +4086,12 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = * FLD (i_rm);
   addr = * FLD (i_rn);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -4619,21 +4115,12 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (i_hdt_offset8);
   addr = * FLD (i_rn);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -4657,21 +4144,12 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = * FLD (i_rm);
   addr = * FLD (i_rn);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ZEXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = ZEXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -4695,15 +4173,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (i_hdt_offset8);
   addr = SUBSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
 }
 
@@ -4726,15 +4198,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = * FLD (i_rm);
   addr = SUBSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
 }
 
@@ -4757,15 +4223,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (i_hdt_offset8);
   addr = ADDSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
 }
 
@@ -4788,15 +4248,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = * FLD (i_rm);
   addr = ADDSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
 ((void) 0); /*nop*/
 ((void) 0); /*nop*/
@@ -4823,15 +4277,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (i_hdt_offset8);
   addr = SUBSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
 }
 
@@ -4854,15 +4302,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = * FLD (i_rm);
   addr = SUBSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
 }
 
@@ -4885,15 +4327,9 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (i_hdt_offset8);
   addr = ADDSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
 }
 
@@ -4916,21 +4352,12 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = * FLD (i_rm);
   addr = ADDSI (* FLD (i_rn), offset);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
 ((void) 0); /*nop*/
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -4954,21 +4381,12 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (i_hdt_offset8);
   addr = * FLD (i_rn);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -4992,21 +4410,12 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = * FLD (i_rm);
   addr = * FLD (i_rn);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
   addr = SUBSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -5030,21 +4439,12 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = FLD (i_hdt_offset8);
   addr = * FLD (i_rn);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -5068,21 +4468,12 @@ if (EQSI (FLD (f_rd), 15)) {
   offset = * FLD (i_rm);
   addr = * FLD (i_rn);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    USI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = EXTHISI (current_cpu->GETMEMHI (pc, addr)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = EXTHISI (current_cpu->GETMEMHI (pc, addr));
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = EXTHISI (current_cpu->GETMEMHI (pc, addr));
 }
   addr = ADDSI (* FLD (i_rn), offset);
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -5103,20 +4494,11 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
   result = MULSI (* FLD (i_rm), * FLD (i_rs));
-  {
-    SI opval = result;
-    * FLD (i_mul_rd) = opval;
-  }
+* FLD (i_mul_rd) = result;
 if (FLD (f_set_cc_)) {
 {
-  {
-    BI opval = EQSI (result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (result, 0);
+current_cpu->hardware.h_nbit = LTSI (result, 0);
 }
 }
 }
@@ -5136,20 +4518,11 @@ if (FLD (f_set_cc_)) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, GET_ATTR (R15_OFFSET));
 
 {
-  {
-    SI opval = ADDSI (MULSI (* FLD (i_rm), * FLD (i_rs)), * FLD (i_mul_rn));
-    * FLD (i_mul_rd) = opval;
-  }
+* FLD (i_mul_rd) = ADDSI (MULSI (* FLD (i_rm), * FLD (i_rs)), * FLD (i_mul_rn));
 if (FLD (f_set_cc_)) {
 {
-  {
-    BI opval = EQSI (result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (result, 0);
+current_cpu->hardware.h_nbit = LTSI (result, 0);
 }
 }
 }
@@ -5226,24 +4599,12 @@ if (FLD (f_set_cc_)) {
 {
   mul_result = JOINSIDI (* FLD (i_rdhi), * FLD (i_rdlo));
   mul_result = ADDDI (MULDI (EXTSIDI (* FLD (i_rs)), EXTSIDI (* FLD (i_rm))), mul_result);
-  {
-    SI opval = SUBWORDDISI (mul_result, 0);
-    * FLD (i_rdhi) = opval;
-  }
-  {
-    SI opval = SUBWORDDISI (mul_result, 1);
-    * FLD (i_rdlo) = opval;
-  }
+* FLD (i_rdhi) = SUBWORDDISI (mul_result, 0);
+* FLD (i_rdlo) = SUBWORDDISI (mul_result, 1);
 if (FLD (f_set_cc_)) {
 {
-  {
-    BI opval = EQDI (mul_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTDI (mul_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQDI (mul_result, 0);
+current_cpu->hardware.h_nbit = LTDI (mul_result, 0);
 }
 }
 }
@@ -5264,14 +4625,8 @@ if (FLD (f_set_cc_)) {
 
 {
   temp = current_cpu->GETMEMSI (pc, * FLD (i_rn));
-  {
-    SI opval = * FLD (i_rm);
-    current_cpu->SETMEMSI (pc, * FLD (i_rn), opval);
-  }
-  {
-    SI opval = temp;
-    * FLD (i_rd) = opval;
-  }
+current_cpu->SETMEMSI (pc, * FLD (i_rn), * FLD (i_rm));
+* FLD (i_rd) = temp;
 }
 
 #undef FLD
@@ -5290,14 +4645,8 @@ if (FLD (f_set_cc_)) {
 
 {
   temp = current_cpu->GETMEMQI (pc, * FLD (i_rn));
-  {
-    QI opval = * FLD (i_rm);
-    current_cpu->SETMEMQI (pc, * FLD (i_rn), opval);
-  }
-  {
-    SI opval = temp;
-    * FLD (i_rd) = opval;
-  }
+current_cpu->SETMEMQI (pc, * FLD (i_rn), * FLD (i_rm));
+* FLD (i_rd) = temp;
 }
 
 #undef FLD
@@ -5316,10 +4665,7 @@ if (FLD (f_set_cc_)) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, GET_ATTR (R15_OFFSET));
 
 {
-  {
-    USI opval = current_cpu->arm_swi (pc, FLD (f_swi_comment));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->arm_swi (pc, FLD (f_swi_comment)); br_status = BRANCH_UNCACHEABLE;
 }
 
       pbb_br_npc = npc;
@@ -5345,39 +4691,21 @@ if (FLD (f_set_cc_)) {
   result = ANDSI (* FLD (i_rn), operand2);
 if (EQSI (FLD (f_rd), 15)) {
 {
-  {
-    USI opval = result;
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = result; br_status = BRANCH_UNCACHEABLE;
 if (FLD (f_set_cc_)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
 } else {
 {
-  {
-    SI opval = result;
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = result;
 if (FLD (f_set_cc_)) {
 {
 {
-  {
-    BI opval = EQSI (result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (result, 0);
+current_cpu->hardware.h_nbit = LTSI (result, 0);
 }
-  {
-    BI opval = carry_out;
-    current_cpu->hardware.h_cbit = opval;
-  }
+current_cpu->hardware.h_cbit = carry_out;
 }
 }
 }
@@ -5654,39 +4982,21 @@ if (FLD (f_set_cc_)) {
   result = INVSI (operand2);
 if (EQSI (FLD (f_rd), 15)) {
 {
-  {
-    USI opval = result;
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = result; br_status = BRANCH_UNCACHEABLE;
 if (FLD (f_set_cc_)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
 } else {
 {
-  {
-    SI opval = result;
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = result;
 if (FLD (f_set_cc_)) {
 {
 {
-  {
-    BI opval = EQSI (result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (result, 0);
+current_cpu->hardware.h_nbit = LTSI (result, 0);
 }
-  {
-    BI opval = carry_out;
-    current_cpu->hardware.h_cbit = opval;
-  }
+current_cpu->hardware.h_cbit = carry_out;
 }
 }
 }
@@ -5714,33 +5024,18 @@ if (FLD (f_set_cc_)) {
   result = INVSI (FLD (f_imm12));
 if (EQSI (FLD (f_rd), 15)) {
 {
-  {
-    USI opval = result;
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = result; br_status = BRANCH_UNCACHEABLE;
 if (FLD (f_set_cc_)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
 } else {
 {
-  {
-    SI opval = result;
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = result;
 if (FLD (f_set_cc_)) {
 {
-  {
-    BI opval = EQSI (result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (result, 0);
+current_cpu->hardware.h_nbit = LTSI (result, 0);
 }
 }
 }
@@ -5766,45 +5061,24 @@ if (FLD (f_set_cc_)) {
   result = ADDSI (* FLD (i_rn), operand2);
 if (EQSI (FLD (f_rd), 15)) {
 {
-  {
-    USI opval = result;
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = result; br_status = BRANCH_UNCACHEABLE;
 if (FLD (f_set_cc_)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
 } else {
 {
-  {
-    SI opval = result;
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = result;
 if (FLD (f_set_cc_)) {
 {
   SI tmp_result;
   tmp_result = ADDCSI (temp_op1, temp_op2, 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = ADDCFSI (temp_op1, temp_op2, 0);
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = ADDOFSI (temp_op1, temp_op2, 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = ADDCFSI (temp_op1, temp_op2, 0);
+current_cpu->hardware.h_vbit = ADDOFSI (temp_op1, temp_op2, 0);
 }
 }
 }
@@ -5830,45 +5104,24 @@ if (FLD (f_set_cc_)) {
   result = ADDSI (* FLD (i_rn), operand2);
 if (EQSI (FLD (f_rd), 15)) {
 {
-  {
-    USI opval = result;
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = result; br_status = BRANCH_UNCACHEABLE;
 if (FLD (f_set_cc_)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
 } else {
 {
-  {
-    SI opval = result;
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = result;
 if (FLD (f_set_cc_)) {
 {
   SI tmp_result;
   tmp_result = ADDCSI (temp_op1, temp_op2, 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = ADDCFSI (temp_op1, temp_op2, 0);
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = ADDOFSI (temp_op1, temp_op2, 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = ADDCFSI (temp_op1, temp_op2, 0);
+current_cpu->hardware.h_vbit = ADDOFSI (temp_op1, temp_op2, 0);
 }
 }
 }
@@ -5897,15 +5150,9 @@ if (FLD (f_set_cc_)) {
 if (EQSI (FLD (f_rd), 15)) {
 {
 if (FLD (f_set_cc_)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
-  {
-    USI opval = result;
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = result; br_status = BRANCH_UNCACHEABLE;
 }
 } else {
 {
@@ -5914,29 +5161,14 @@ if (FLD (f_set_cc_)) {
   SI tmp_result;
   tmp_result = ADDCSI (* FLD (i_rn), FLD (f_imm12), 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = ADDCFSI (* FLD (i_rn), FLD (f_imm12), 0);
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = ADDOFSI (* FLD (i_rn), FLD (f_imm12), 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = ADDCFSI (* FLD (i_rn), FLD (f_imm12), 0);
+current_cpu->hardware.h_vbit = ADDOFSI (* FLD (i_rn), FLD (f_imm12), 0);
 }
 }
-  {
-    SI opval = result;
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = result;
 }
 }
 }
@@ -5960,45 +5192,24 @@ if (FLD (f_set_cc_)) {
   result = ADDCSI (* FLD (i_rn), operand2, current_cpu->hardware.h_cbit);
 if (EQSI (FLD (f_rd), 15)) {
 {
-  {
-    USI opval = result;
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = result; br_status = BRANCH_UNCACHEABLE;
 if (FLD (f_set_cc_)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
 } else {
 {
-  {
-    SI opval = result;
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = result;
 if (FLD (f_set_cc_)) {
 {
   SI tmp_result;
   tmp_result = ADDCSI (temp_op1, temp_op2, current_cpu->hardware.h_cbit);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = ADDCFSI (temp_op1, temp_op2, current_cpu->hardware.h_cbit);
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = ADDOFSI (temp_op1, temp_op2, current_cpu->hardware.h_cbit);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = ADDCFSI (temp_op1, temp_op2, current_cpu->hardware.h_cbit);
+current_cpu->hardware.h_vbit = ADDOFSI (temp_op1, temp_op2, current_cpu->hardware.h_cbit);
 }
 }
 }
@@ -6024,45 +5235,24 @@ if (FLD (f_set_cc_)) {
   result = ADDCSI (* FLD (i_rn), operand2, current_cpu->hardware.h_cbit);
 if (EQSI (FLD (f_rd), 15)) {
 {
-  {
-    USI opval = result;
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = result; br_status = BRANCH_UNCACHEABLE;
 if (FLD (f_set_cc_)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
 } else {
 {
-  {
-    SI opval = result;
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = result;
 if (FLD (f_set_cc_)) {
 {
   SI tmp_result;
   tmp_result = ADDCSI (temp_op1, temp_op2, current_cpu->hardware.h_cbit);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = ADDCFSI (temp_op1, temp_op2, current_cpu->hardware.h_cbit);
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = ADDOFSI (temp_op1, temp_op2, current_cpu->hardware.h_cbit);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = ADDCFSI (temp_op1, temp_op2, current_cpu->hardware.h_cbit);
+current_cpu->hardware.h_vbit = ADDOFSI (temp_op1, temp_op2, current_cpu->hardware.h_cbit);
 }
 }
 }
@@ -6091,15 +5281,9 @@ if (FLD (f_set_cc_)) {
 if (EQSI (FLD (f_rd), 15)) {
 {
 if (FLD (f_set_cc_)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
-  {
-    USI opval = result;
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = result; br_status = BRANCH_UNCACHEABLE;
 }
 } else {
 {
@@ -6108,29 +5292,14 @@ if (FLD (f_set_cc_)) {
   SI tmp_result;
   tmp_result = ADDCSI (* FLD (i_rn), FLD (f_imm12), current_cpu->hardware.h_cbit);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = ADDCFSI (* FLD (i_rn), FLD (f_imm12), current_cpu->hardware.h_cbit);
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = ADDOFSI (* FLD (i_rn), FLD (f_imm12), current_cpu->hardware.h_cbit);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = ADDCFSI (* FLD (i_rn), FLD (f_imm12), current_cpu->hardware.h_cbit);
+current_cpu->hardware.h_vbit = ADDOFSI (* FLD (i_rn), FLD (f_imm12), current_cpu->hardware.h_cbit);
 }
 }
-  {
-    SI opval = result;
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = result;
 }
 }
 }
@@ -6154,45 +5323,24 @@ if (FLD (f_set_cc_)) {
   result = SUBSI (* FLD (i_rn), operand2);
 if (EQSI (FLD (f_rd), 15)) {
 {
-  {
-    USI opval = result;
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = result; br_status = BRANCH_UNCACHEABLE;
 if (FLD (f_set_cc_)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
 } else {
 {
-  {
-    SI opval = result;
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = result;
 if (FLD (f_set_cc_)) {
 {
   SI tmp_result;
   tmp_result = SUBCSI (temp_op1, temp_op2, 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (temp_op1, temp_op2, 0));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (temp_op1, temp_op2, 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (temp_op1, temp_op2, 0));
+current_cpu->hardware.h_vbit = SUBOFSI (temp_op1, temp_op2, 0);
 }
 }
 }
@@ -6218,45 +5366,24 @@ if (FLD (f_set_cc_)) {
   result = SUBSI (* FLD (i_rn), operand2);
 if (EQSI (FLD (f_rd), 15)) {
 {
-  {
-    USI opval = result;
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = result; br_status = BRANCH_UNCACHEABLE;
 if (FLD (f_set_cc_)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
 } else {
 {
-  {
-    SI opval = result;
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = result;
 if (FLD (f_set_cc_)) {
 {
   SI tmp_result;
   tmp_result = SUBCSI (temp_op1, temp_op2, 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (temp_op1, temp_op2, 0));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (temp_op1, temp_op2, 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (temp_op1, temp_op2, 0));
+current_cpu->hardware.h_vbit = SUBOFSI (temp_op1, temp_op2, 0);
 }
 }
 }
@@ -6285,15 +5412,9 @@ if (FLD (f_set_cc_)) {
 if (EQSI (FLD (f_rd), 15)) {
 {
 if (FLD (f_set_cc_)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
-  {
-    USI opval = result;
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = result; br_status = BRANCH_UNCACHEABLE;
 }
 } else {
 {
@@ -6302,29 +5423,14 @@ if (FLD (f_set_cc_)) {
   SI tmp_result;
   tmp_result = SUBCSI (* FLD (i_rn), FLD (f_imm12), 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (* FLD (i_rn), FLD (f_imm12), 0));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (* FLD (i_rn), FLD (f_imm12), 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (* FLD (i_rn), FLD (f_imm12), 0));
+current_cpu->hardware.h_vbit = SUBOFSI (* FLD (i_rn), FLD (f_imm12), 0);
 }
 }
-  {
-    SI opval = result;
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = result;
 }
 }
 }
@@ -6348,45 +5454,24 @@ if (FLD (f_set_cc_)) {
   result = SUBCSI (* FLD (i_rn), operand2, NOTBI (current_cpu->hardware.h_cbit));
 if (EQSI (FLD (f_rd), 15)) {
 {
-  {
-    USI opval = result;
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = result; br_status = BRANCH_UNCACHEABLE;
 if (FLD (f_set_cc_)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
 } else {
 {
-  {
-    SI opval = result;
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = result;
 if (FLD (f_set_cc_)) {
 {
   SI tmp_result;
   tmp_result = SUBCSI (temp_op1, temp_op2, NOTBI (current_cpu->hardware.h_cbit));
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (temp_op1, temp_op2, NOTBI (current_cpu->hardware.h_cbit)));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (temp_op1, temp_op2, NOTBI (current_cpu->hardware.h_cbit));
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (temp_op1, temp_op2, NOTBI (current_cpu->hardware.h_cbit)));
+current_cpu->hardware.h_vbit = SUBOFSI (temp_op1, temp_op2, NOTBI (current_cpu->hardware.h_cbit));
 }
 }
 }
@@ -6412,45 +5497,24 @@ if (FLD (f_set_cc_)) {
   result = SUBCSI (* FLD (i_rn), operand2, NOTBI (current_cpu->hardware.h_cbit));
 if (EQSI (FLD (f_rd), 15)) {
 {
-  {
-    USI opval = result;
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = result; br_status = BRANCH_UNCACHEABLE;
 if (FLD (f_set_cc_)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
 } else {
 {
-  {
-    SI opval = result;
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = result;
 if (FLD (f_set_cc_)) {
 {
   SI tmp_result;
   tmp_result = SUBCSI (temp_op1, temp_op2, NOTBI (current_cpu->hardware.h_cbit));
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (temp_op1, temp_op2, NOTBI (current_cpu->hardware.h_cbit)));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (temp_op1, temp_op2, NOTBI (current_cpu->hardware.h_cbit));
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (temp_op1, temp_op2, NOTBI (current_cpu->hardware.h_cbit)));
+current_cpu->hardware.h_vbit = SUBOFSI (temp_op1, temp_op2, NOTBI (current_cpu->hardware.h_cbit));
 }
 }
 }
@@ -6479,15 +5543,9 @@ if (FLD (f_set_cc_)) {
 if (EQSI (FLD (f_rd), 15)) {
 {
 if (FLD (f_set_cc_)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
-  {
-    USI opval = result;
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = result; br_status = BRANCH_UNCACHEABLE;
 }
 } else {
 {
@@ -6496,29 +5554,14 @@ if (FLD (f_set_cc_)) {
   SI tmp_result;
   tmp_result = SUBCSI (* FLD (i_rn), FLD (f_imm12), NOTBI (current_cpu->hardware.h_cbit));
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (* FLD (i_rn), FLD (f_imm12), NOTBI (current_cpu->hardware.h_cbit)));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (* FLD (i_rn), FLD (f_imm12), NOTBI (current_cpu->hardware.h_cbit));
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (* FLD (i_rn), FLD (f_imm12), NOTBI (current_cpu->hardware.h_cbit)));
+current_cpu->hardware.h_vbit = SUBOFSI (* FLD (i_rn), FLD (f_imm12), NOTBI (current_cpu->hardware.h_cbit));
 }
 }
-  {
-    SI opval = result;
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = result;
 }
 }
 }
@@ -6542,45 +5585,24 @@ if (FLD (f_set_cc_)) {
   result = SUBSI (operand2, * FLD (i_rn));
 if (EQSI (FLD (f_rd), 15)) {
 {
-  {
-    USI opval = result;
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = result; br_status = BRANCH_UNCACHEABLE;
 if (FLD (f_set_cc_)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
 } else {
 {
-  {
-    SI opval = result;
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = result;
 if (FLD (f_set_cc_)) {
 {
   SI tmp_result;
   tmp_result = SUBCSI (temp_op2, temp_op1, 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (temp_op2, temp_op1, 0));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (temp_op2, temp_op1, 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (temp_op2, temp_op1, 0));
+current_cpu->hardware.h_vbit = SUBOFSI (temp_op2, temp_op1, 0);
 }
 }
 }
@@ -6606,45 +5628,24 @@ if (FLD (f_set_cc_)) {
   result = SUBSI (operand2, * FLD (i_rn));
 if (EQSI (FLD (f_rd), 15)) {
 {
-  {
-    USI opval = result;
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = result; br_status = BRANCH_UNCACHEABLE;
 if (FLD (f_set_cc_)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
 } else {
 {
-  {
-    SI opval = result;
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = result;
 if (FLD (f_set_cc_)) {
 {
   SI tmp_result;
   tmp_result = SUBCSI (temp_op2, temp_op1, 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (temp_op2, temp_op1, 0));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (temp_op2, temp_op1, 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (temp_op2, temp_op1, 0));
+current_cpu->hardware.h_vbit = SUBOFSI (temp_op2, temp_op1, 0);
 }
 }
 }
@@ -6673,15 +5674,9 @@ if (FLD (f_set_cc_)) {
 if (EQSI (FLD (f_rd), 15)) {
 {
 if (FLD (f_set_cc_)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
-  {
-    USI opval = result;
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = result; br_status = BRANCH_UNCACHEABLE;
 }
 } else {
 {
@@ -6690,29 +5685,14 @@ if (FLD (f_set_cc_)) {
   SI tmp_result;
   tmp_result = SUBCSI (FLD (f_imm12), * FLD (i_rn), 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (FLD (f_imm12), * FLD (i_rn), 0));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (FLD (f_imm12), * FLD (i_rn), 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (FLD (f_imm12), * FLD (i_rn), 0));
+current_cpu->hardware.h_vbit = SUBOFSI (FLD (f_imm12), * FLD (i_rn), 0);
 }
 }
-  {
-    SI opval = result;
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = result;
 }
 }
 }
@@ -6736,45 +5716,24 @@ if (FLD (f_set_cc_)) {
   result = SUBCSI (operand2, * FLD (i_rn), NOTBI (current_cpu->hardware.h_cbit));
 if (EQSI (FLD (f_rd), 15)) {
 {
-  {
-    USI opval = result;
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = result; br_status = BRANCH_UNCACHEABLE;
 if (FLD (f_set_cc_)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
 } else {
 {
-  {
-    SI opval = result;
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = result;
 if (FLD (f_set_cc_)) {
 {
   SI tmp_result;
   tmp_result = SUBCSI (temp_op2, temp_op1, NOTBI (current_cpu->hardware.h_cbit));
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (temp_op2, temp_op1, NOTBI (current_cpu->hardware.h_cbit)));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (temp_op2, temp_op1, NOTBI (current_cpu->hardware.h_cbit));
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (temp_op2, temp_op1, NOTBI (current_cpu->hardware.h_cbit)));
+current_cpu->hardware.h_vbit = SUBOFSI (temp_op2, temp_op1, NOTBI (current_cpu->hardware.h_cbit));
 }
 }
 }
@@ -6800,45 +5759,24 @@ if (FLD (f_set_cc_)) {
   result = SUBCSI (operand2, * FLD (i_rn), NOTBI (current_cpu->hardware.h_cbit));
 if (EQSI (FLD (f_rd), 15)) {
 {
-  {
-    USI opval = result;
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = result; br_status = BRANCH_UNCACHEABLE;
 if (FLD (f_set_cc_)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
 } else {
 {
-  {
-    SI opval = result;
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = result;
 if (FLD (f_set_cc_)) {
 {
   SI tmp_result;
   tmp_result = SUBCSI (temp_op2, temp_op1, NOTBI (current_cpu->hardware.h_cbit));
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (temp_op2, temp_op1, NOTBI (current_cpu->hardware.h_cbit)));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (temp_op2, temp_op1, NOTBI (current_cpu->hardware.h_cbit));
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (temp_op2, temp_op1, NOTBI (current_cpu->hardware.h_cbit)));
+current_cpu->hardware.h_vbit = SUBOFSI (temp_op2, temp_op1, NOTBI (current_cpu->hardware.h_cbit));
 }
 }
 }
@@ -6867,15 +5805,9 @@ if (FLD (f_set_cc_)) {
 if (EQSI (FLD (f_rd), 15)) {
 {
 if (FLD (f_set_cc_)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
-  {
-    USI opval = result;
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = result; br_status = BRANCH_UNCACHEABLE;
 }
 } else {
 {
@@ -6884,29 +5816,14 @@ if (FLD (f_set_cc_)) {
   SI tmp_result;
   tmp_result = SUBCSI (FLD (f_imm12), * FLD (i_rn), NOTBI (current_cpu->hardware.h_cbit));
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (FLD (f_imm12), * FLD (i_rn), NOTBI (current_cpu->hardware.h_cbit)));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (FLD (f_imm12), * FLD (i_rn), NOTBI (current_cpu->hardware.h_cbit));
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (FLD (f_imm12), * FLD (i_rn), NOTBI (current_cpu->hardware.h_cbit)));
+current_cpu->hardware.h_vbit = SUBOFSI (FLD (f_imm12), * FLD (i_rn), NOTBI (current_cpu->hardware.h_cbit));
 }
 }
-  {
-    SI opval = result;
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = result;
 }
 }
 }
@@ -6927,26 +5844,14 @@ if (FLD (f_set_cc_)) {
 {
   result = ANDSI (* FLD (i_rn), operand2);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 } else {
 {
 {
-  {
-    BI opval = EQSI (result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (result, 0);
+current_cpu->hardware.h_nbit = LTSI (result, 0);
 }
-  {
-    BI opval = carry_out;
-    current_cpu->hardware.h_cbit = opval;
-  }
+current_cpu->hardware.h_cbit = carry_out;
 }
 }
 }
@@ -6988,19 +5893,10 @@ if (EQSI (FLD (f_ror_imm8_rotate), 0)) {
 }
 {
 {
-  {
-    BI opval = EQSI (ANDSI (* FLD (i_rn), FLD (f_ror_imm8)), 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (ANDSI (* FLD (i_rn), FLD (f_ror_imm8)), 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (ANDSI (* FLD (i_rn), FLD (f_ror_imm8)), 0);
+current_cpu->hardware.h_nbit = LTSI (ANDSI (* FLD (i_rn), FLD (f_ror_imm8)), 0);
 }
-  {
-    BI opval = carry_out;
-    current_cpu->hardware.h_cbit = opval;
-  }
+current_cpu->hardware.h_cbit = carry_out;
 }
 }
 
@@ -7033,26 +5929,14 @@ if (EQSI (FLD (f_ror_imm8_rotate), 0)) {
 {
   result = XORSI (* FLD (i_rn), operand2);
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 } else {
 {
 {
-  {
-    BI opval = EQSI (result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (result, 0);
+current_cpu->hardware.h_nbit = LTSI (result, 0);
 }
-  {
-    BI opval = carry_out;
-    current_cpu->hardware.h_cbit = opval;
-  }
+current_cpu->hardware.h_cbit = carry_out;
 }
 }
 }
@@ -7079,19 +5963,10 @@ if (EQSI (FLD (f_ror_imm8_rotate), 0)) {
 }
 {
 {
-  {
-    BI opval = EQSI (XORSI (* FLD (i_rn), FLD (f_ror_imm8)), 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (XORSI (* FLD (i_rn), FLD (f_ror_imm8)), 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (XORSI (* FLD (i_rn), FLD (f_ror_imm8)), 0);
+current_cpu->hardware.h_nbit = LTSI (XORSI (* FLD (i_rn), FLD (f_ror_imm8)), 0);
 }
-  {
-    BI opval = carry_out;
-    current_cpu->hardware.h_cbit = opval;
-  }
+current_cpu->hardware.h_cbit = carry_out;
 }
 }
 
@@ -7108,32 +5983,17 @@ if (EQSI (FLD (f_ror_imm8_rotate), 0)) {
 
 {
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 } else {
 {
   SI tmp_result;
   tmp_result = SUBCSI (* FLD (i_rn), operand2, 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (* FLD (i_rn), operand2, 0));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (* FLD (i_rn), operand2, 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (* FLD (i_rn), operand2, 0));
+current_cpu->hardware.h_vbit = SUBOFSI (* FLD (i_rn), operand2, 0);
 }
 }
 }
@@ -7151,32 +6011,17 @@ if (EQSI (FLD (f_rd), 15)) {
 
 {
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 } else {
 {
   SI tmp_result;
   tmp_result = SUBCSI (* FLD (i_rn), operand2, 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (* FLD (i_rn), operand2, 0));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (* FLD (i_rn), operand2, 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (* FLD (i_rn), operand2, 0));
+current_cpu->hardware.h_vbit = SUBOFSI (* FLD (i_rn), operand2, 0);
 }
 }
 }
@@ -7198,23 +6043,11 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   result = SUBCSI (* FLD (i_rn), FLD (f_imm12), 0);
 {
-  {
-    BI opval = EQSI (result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (result, 0);
+current_cpu->hardware.h_nbit = LTSI (result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (* FLD (i_rn), FLD (f_imm12), 0));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (* FLD (i_rn), FLD (f_imm12), 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (* FLD (i_rn), FLD (f_imm12), 0));
+current_cpu->hardware.h_vbit = SUBOFSI (* FLD (i_rn), FLD (f_imm12), 0);
 }
 
 #undef FLD
@@ -7234,32 +6067,17 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   operand2 = current_cpu->compute_operand2_immshift (* FLD (i_rm), FLD (f_operand2_shifttype), FLD (f_operand2_shiftimm));
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 } else {
 {
   SI tmp_result;
   tmp_result = ADDCSI (* FLD (i_rn), operand2, 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = ADDCFSI (* FLD (i_rn), operand2, 0);
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = ADDOFSI (* FLD (i_rn), operand2, 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = ADDCFSI (* FLD (i_rn), operand2, 0);
+current_cpu->hardware.h_vbit = ADDOFSI (* FLD (i_rn), operand2, 0);
 }
 }
 }
@@ -7281,32 +6099,17 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   operand2 = current_cpu->compute_operand2_regshift (* FLD (i_rm), FLD (f_operand2_shifttype), * FLD (i_operand2_shiftreg));
 if (EQSI (FLD (f_rd), 15)) {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 } else {
 {
   SI tmp_result;
   tmp_result = ADDCSI (* FLD (i_rn), operand2, 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = ADDCFSI (* FLD (i_rn), operand2, 0);
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = ADDOFSI (* FLD (i_rn), operand2, 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = ADDCFSI (* FLD (i_rn), operand2, 0);
+current_cpu->hardware.h_vbit = ADDOFSI (* FLD (i_rn), operand2, 0);
 }
 }
 }
@@ -7328,23 +6131,11 @@ if (EQSI (FLD (f_rd), 15)) {
 {
   result = ADDCSI (* FLD (i_rn), FLD (f_imm12), 0);
 {
-  {
-    BI opval = EQSI (result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (result, 0);
+current_cpu->hardware.h_nbit = LTSI (result, 0);
 }
-  {
-    BI opval = ADDCFSI (* FLD (i_rn), FLD (f_imm12), 0);
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = ADDOFSI (* FLD (i_rn), FLD (f_imm12), 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = ADDCFSI (* FLD (i_rn), FLD (f_imm12), 0);
+current_cpu->hardware.h_vbit = ADDOFSI (* FLD (i_rn), FLD (f_imm12), 0);
 }
 
 #undef FLD
@@ -7366,145 +6157,97 @@ if (EQSI (FLD (f_rd), 15)) {
   addr = * FLD (i_rn);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 14)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 13)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 12)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 11)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 10)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 9)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 8)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 7)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 6)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 5)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 4)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 3)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 2)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 1)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 0)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
@@ -7531,29 +6274,17 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
   addr = * FLD (i_rn);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 14)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = SUBSI (addr, 4);
 }
@@ -7561,15 +6292,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 13)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = SUBSI (addr, 4);
 }
@@ -7577,15 +6302,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 12)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = SUBSI (addr, 4);
 }
@@ -7593,15 +6312,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 11)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = SUBSI (addr, 4);
 }
@@ -7609,15 +6322,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 10)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = SUBSI (addr, 4);
 }
@@ -7625,15 +6332,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 9)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = SUBSI (addr, 4);
 }
@@ -7641,88 +6342,58 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 8)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 7)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 6)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 5)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 4)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 3)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 2)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 1)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 0)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
@@ -7749,152 +6420,101 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
   addr = * FLD (i_rn);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 14)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 13)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 12)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 11)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 10)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 9)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 8)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 7)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 6)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 5)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 4)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 3)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 2)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 1)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 0)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -7918,29 +6538,17 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
   addr = * FLD (i_rn);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 14)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = SUBSI (addr, 4);
 }
@@ -7948,15 +6556,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 13)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = SUBSI (addr, 4);
 }
@@ -7964,15 +6566,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 12)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = SUBSI (addr, 4);
 }
@@ -7980,15 +6576,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 11)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = SUBSI (addr, 4);
 }
@@ -7996,15 +6586,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 10)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = SUBSI (addr, 4);
 }
@@ -8012,15 +6596,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 9)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = SUBSI (addr, 4);
 }
@@ -8028,95 +6606,62 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 8)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 7)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 6)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 5)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 4)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 3)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 2)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 1)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 0)] = current_cpu->GETMEMSI (pc, addr);
   addr = SUBSI (addr, 4);
 }
 }
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -8141,145 +6686,97 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 0)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 1)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 2)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 3)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 4)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 5)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 6)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 7)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 9)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 10)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 11)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 12)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 13)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 14)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
 }
 }
 }
@@ -8302,15 +6799,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 8)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -8318,15 +6809,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 9)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -8334,15 +6819,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 10)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -8350,15 +6829,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 11)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -8366,15 +6839,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 12)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -8382,15 +6849,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 13)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -8398,29 +6859,17 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 14)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
 }
@@ -8442,79 +6891,52 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 9)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 10)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 11)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 12)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 13)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 14)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
 }
 }
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -8539,88 +6961,58 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 0)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 1)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 2)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 3)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 4)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 5)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 6)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 7)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 8)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -8628,15 +7020,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 9)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -8644,15 +7030,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 10)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -8660,15 +7040,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 11)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -8676,15 +7050,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 12)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -8692,15 +7060,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 13)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -8708,35 +7070,20 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 14)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -8760,145 +7107,97 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   addr = * FLD (i_rn);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 0)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 1)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 2)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 3)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 4)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 5)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 6)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 7)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 8)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 9)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 10)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 11)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 12)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 13)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 14)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
   addr = ADDSI (addr, 4);
 }
 }
@@ -8921,15 +7220,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 8)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = ADDSI (addr, 4);
 }
@@ -8937,15 +7230,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 9)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = ADDSI (addr, 4);
 }
@@ -8953,15 +7240,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 10)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = ADDSI (addr, 4);
 }
@@ -8969,15 +7250,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 11)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = ADDSI (addr, 4);
 }
@@ -8985,15 +7260,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 12)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = ADDSI (addr, 4);
 }
@@ -9001,15 +7270,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 13)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = ADDSI (addr, 4);
 }
@@ -9017,30 +7280,18 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 14)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
 }
@@ -9061,80 +7312,53 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 8)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 9)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 10)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 11)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 12)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 13)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 14)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
   addr = ADDSI (addr, 4);
 }
 }
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -9158,88 +7382,58 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   addr = * FLD (i_rn);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 0)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 1)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 2)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 3)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 4)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 5)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 6)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 7)] = current_cpu->GETMEMSI (pc, addr);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 8)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = ADDSI (addr, 4);
 }
@@ -9247,15 +7441,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 9)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = ADDSI (addr, 4);
 }
@@ -9263,15 +7451,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 10)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = ADDSI (addr, 4);
 }
@@ -9279,15 +7461,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 11)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = ADDSI (addr, 4);
 }
@@ -9295,15 +7471,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 12)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = ADDSI (addr, 4);
 }
@@ -9311,15 +7481,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 13)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = ADDSI (addr, 4);
 }
@@ -9327,36 +7491,21 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 14)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -9381,145 +7530,97 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 14)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 13)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 12)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 11)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 10)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 9)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 7)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 6)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 5)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 4)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 3)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 2)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 1)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 0)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -9546,29 +7647,17 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 14)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -9576,15 +7665,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 13)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -9592,15 +7675,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 12)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -9608,15 +7685,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 11)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -9624,15 +7695,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 10)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -9640,15 +7705,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 9)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -9656,88 +7715,58 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 8)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 7)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 6)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 5)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 4)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 3)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 2)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 1)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 0)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -9764,151 +7793,100 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 14)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 13)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 12)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 11)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 10)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 9)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 7)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 6)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 5)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 4)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 3)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 2)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 1)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 0)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -9933,29 +7911,17 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    USI opval = current_cpu->GETMEMSI (pc, addr);
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    current_cpu->h_cpsr_set (opval);
-  }
+npc = current_cpu->GETMEMSI (pc, addr); br_status = BRANCH_UNCACHEABLE;
+current_cpu->h_cpsr_set (current_cpu->h_spsr_get ());
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 14)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 14)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (14, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -9963,15 +7929,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 13)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 13)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (13, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -9979,15 +7939,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 12)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 12)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (12, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -9995,15 +7949,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 11)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 11)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (11, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -10011,15 +7959,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 10)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 10)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (10, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -10027,15 +7969,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 9)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 9)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (9, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
@@ -10043,94 +7979,61 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 8)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 8)] = current_cpu->GETMEMSI (pc, addr);
 } else {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = opval;
-  }
+current_cpu->hardware.h_gr_usr[SUBSI (8, 8)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 7)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 7)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 6)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 6)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 5)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 5)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 4)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 4)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 3)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 3)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 2)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 2)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 1)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 1)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->GETMEMSI (pc, addr);
-    current_cpu->hardware.h_gr[((UINT) 0)] = opval;
-  }
+current_cpu->hardware.h_gr[((UINT) 0)] = current_cpu->GETMEMSI (pc, addr);
 }
 }
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
       pbb_br_npc = npc;
@@ -10154,145 +8057,97 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4));
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 14)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 13)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 12)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 11)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 10)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 9)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 8)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 7)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 6)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 5)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 4)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 3)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 2)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 1)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 0)]);
 }
 }
 }
@@ -10313,15 +8168,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 14)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (14, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (14, 8)]);
 }
 }
 }
@@ -10329,15 +8178,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 13)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (13, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (13, 8)]);
 }
 }
 }
@@ -10345,15 +8188,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 12)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (12, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (12, 8)]);
 }
 }
 }
@@ -10361,15 +8198,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 11)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (11, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (11, 8)]);
 }
 }
 }
@@ -10377,15 +8208,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 10)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (10, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (10, 8)]);
 }
 }
 }
@@ -10393,15 +8218,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 9)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (9, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (9, 8)]);
 }
 }
 }
@@ -10409,88 +8228,58 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 8)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (8, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (8, 8)]);
 }
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 7)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 6)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 5)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 4)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 3)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 2)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 1)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 0)]);
 }
 }
 }
@@ -10510,142 +8299,94 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 14)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 13)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 12)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 11)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 10)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 9)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 8)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 7)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 6)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 5)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 4)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 3)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 2)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 1)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 0)]);
 }
 }
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
 #undef FLD
@@ -10667,25 +8408,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4));
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 14)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (14, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (14, 8)]);
 }
 }
 }
@@ -10693,15 +8425,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 13)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (13, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (13, 8)]);
 }
 }
 }
@@ -10709,15 +8435,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 12)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (12, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (12, 8)]);
 }
 }
 }
@@ -10725,15 +8445,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 11)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (11, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (11, 8)]);
 }
 }
 }
@@ -10741,15 +8455,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 10)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (10, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (10, 8)]);
 }
 }
 }
@@ -10757,15 +8465,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 9)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (9, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (9, 8)]);
 }
 }
 }
@@ -10773,94 +8475,61 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   addr = SUBSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 8)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (8, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (8, 8)]);
 }
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 7)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 6)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 5)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 4)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 3)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 2)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 1)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   addr = SUBSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 0)]);
 }
 }
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
 #undef FLD
@@ -10882,145 +8551,97 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 0)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 1)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 2)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 3)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 4)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 5)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 6)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 7)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 8)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 9)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 10)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 11)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 12)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 13)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 14)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4));
 }
 }
 }
@@ -11041,15 +8662,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 8)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (8, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (8, 8)]);
 }
 }
 }
@@ -11057,15 +8672,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 9)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (9, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (9, 8)]);
 }
 }
 }
@@ -11073,15 +8682,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 10)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (10, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (10, 8)]);
 }
 }
 }
@@ -11089,15 +8692,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 11)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (11, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (11, 8)]);
 }
 }
 }
@@ -11105,15 +8702,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 12)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (12, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (12, 8)]);
 }
 }
 }
@@ -11121,15 +8712,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 13)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (13, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (13, 8)]);
 }
 }
 }
@@ -11137,25 +8722,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 14)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (14, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (14, 8)]);
 }
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4));
 }
 }
 }
@@ -11175,79 +8751,52 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 8)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 9)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 10)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 11)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 12)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 13)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 14)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4));
 }
 }
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
 #undef FLD
@@ -11269,88 +8818,58 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 0)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 1)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 2)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 3)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 4)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 5)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 6)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 7)]);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 8)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (8, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (8, 8)]);
 }
 }
 }
@@ -11358,15 +8877,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 9)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (9, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (9, 8)]);
 }
 }
 }
@@ -11374,15 +8887,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 10)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (10, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (10, 8)]);
 }
 }
 }
@@ -11390,15 +8897,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 11)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (11, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (11, 8)]);
 }
 }
 }
@@ -11406,15 +8907,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 12)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (12, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (12, 8)]);
 }
 }
 }
@@ -11422,15 +8917,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 13)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (13, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (13, 8)]);
 }
 }
 }
@@ -11438,31 +8927,19 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
   addr = ADDSI (addr, 4);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 14)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (14, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (14, 8)]);
 }
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
   addr = ADDSI (addr, 4);
-  {
-    SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4));
 }
 }
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
 #undef FLD
@@ -11483,145 +8960,97 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   addr = * FLD (i_rn);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 0)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 1)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 2)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 3)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 4)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 5)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 6)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 7)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 8)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 9)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 10)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 11)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 12)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 13)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 14)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
-  {
-    SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4));
   addr = ADDSI (addr, 4);
 }
 }
@@ -11642,15 +9071,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 8)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (8, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (8, 8)]);
 }
   addr = ADDSI (addr, 4);
 }
@@ -11658,15 +9081,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 9)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (9, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (9, 8)]);
 }
   addr = ADDSI (addr, 4);
 }
@@ -11674,15 +9091,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 10)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (10, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (10, 8)]);
 }
   addr = ADDSI (addr, 4);
 }
@@ -11690,15 +9101,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 11)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (11, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (11, 8)]);
 }
   addr = ADDSI (addr, 4);
 }
@@ -11706,15 +9111,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 12)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (12, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (12, 8)]);
 }
   addr = ADDSI (addr, 4);
 }
@@ -11722,15 +9121,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 13)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (13, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (13, 8)]);
 }
   addr = ADDSI (addr, 4);
 }
@@ -11738,25 +9131,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 14)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (14, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (14, 8)]);
 }
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
-  {
-    SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4));
   addr = ADDSI (addr, 4);
 }
 }
@@ -11776,80 +9160,53 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 8)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 9)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 10)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 11)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 12)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 13)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 14)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
-  {
-    SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4));
   addr = ADDSI (addr, 4);
 }
 }
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
 #undef FLD
@@ -11870,88 +9227,58 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   addr = * FLD (i_rn);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 0)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 1)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 2)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 3)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 4)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 5)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 6)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 7)]);
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 8)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (8, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (8, 8)]);
 }
   addr = ADDSI (addr, 4);
 }
@@ -11959,15 +9286,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 9)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (9, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (9, 8)]);
 }
   addr = ADDSI (addr, 4);
 }
@@ -11975,15 +9296,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 10)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (10, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (10, 8)]);
 }
   addr = ADDSI (addr, 4);
 }
@@ -11991,15 +9306,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 11)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (11, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (11, 8)]);
 }
   addr = ADDSI (addr, 4);
 }
@@ -12007,15 +9316,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 12)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (12, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (12, 8)]);
 }
   addr = ADDSI (addr, 4);
 }
@@ -12023,15 +9326,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 13)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (13, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (13, 8)]);
 }
   addr = ADDSI (addr, 4);
 }
@@ -12039,32 +9336,20 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 14)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (14, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (14, 8)]);
 }
   addr = ADDSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
-  {
-    SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4));
   addr = ADDSI (addr, 4);
 }
 }
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
 #undef FLD
@@ -12085,145 +9370,97 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
   addr = * FLD (i_rn);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
-  {
-    SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4));
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 14)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 13)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 12)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 11)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 10)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 9)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 8)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 7)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 6)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 5)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 4)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 3)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 2)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 1)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 0)]);
   addr = SUBSI (addr, 4);
 }
 }
@@ -12244,15 +9481,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 14)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (14, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (14, 8)]);
 }
   addr = SUBSI (addr, 4);
 }
@@ -12260,15 +9491,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 13)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (13, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (13, 8)]);
 }
   addr = SUBSI (addr, 4);
 }
@@ -12276,15 +9501,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 12)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (12, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (12, 8)]);
 }
   addr = SUBSI (addr, 4);
 }
@@ -12292,15 +9511,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 11)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (11, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (11, 8)]);
 }
   addr = SUBSI (addr, 4);
 }
@@ -12308,15 +9521,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 10)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (10, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (10, 8)]);
 }
   addr = SUBSI (addr, 4);
 }
@@ -12324,15 +9531,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 9)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (9, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (9, 8)]);
 }
   addr = SUBSI (addr, 4);
 }
@@ -12340,88 +9541,58 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 8)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (8, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (8, 8)]);
 }
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 7)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 6)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 5)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 4)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 3)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 2)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 1)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 0)]);
   addr = SUBSI (addr, 4);
 }
 }
@@ -12441,143 +9612,95 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 14)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 13)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 12)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 11)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 10)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 9)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 8)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 7)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 6)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 5)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 4)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 3)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 2)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 1)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 0)]);
   addr = SUBSI (addr, 4);
 }
 }
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
 #undef FLD
@@ -12598,25 +9721,16 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
   addr = * FLD (i_rn);
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 {
-  {
-    SI opval = ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4);
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, ADDSI (current_cpu->hardware.h_gr[((UINT) 15)], 4));
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 14))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 14)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 14)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (14, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (14, 8)]);
 }
   addr = SUBSI (addr, 4);
 }
@@ -12624,15 +9738,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 13))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 13)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 13)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (13, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (13, 8)]);
 }
   addr = SUBSI (addr, 4);
 }
@@ -12640,15 +9748,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 12))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 12)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 12)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (12, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (12, 8)]);
 }
   addr = SUBSI (addr, 4);
 }
@@ -12656,15 +9758,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 11))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 11)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 11)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (11, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (11, 8)]);
 }
   addr = SUBSI (addr, 4);
 }
@@ -12672,15 +9768,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 10))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 10)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 10)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (10, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (10, 8)]);
 }
   addr = SUBSI (addr, 4);
 }
@@ -12688,15 +9778,9 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 9))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 9)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 9)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (9, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (9, 8)]);
 }
   addr = SUBSI (addr, 4);
 }
@@ -12704,95 +9788,62 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 8))) {
 {
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 15))) {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 8)]);
 } else {
-  {
-    SI opval = current_cpu->hardware.h_gr_usr[SUBSI (8, 8)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr_usr[SUBSI (8, 8)]);
 }
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 7))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 7)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 7)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 6))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 6)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 6)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 5))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 5)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 5)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 4))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 4)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 4)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 3))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 3)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 3)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 2))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 2)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 2)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 1))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 1)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 1)]);
   addr = SUBSI (addr, 4);
 }
 }
 if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
 {
-  {
-    SI opval = current_cpu->hardware.h_gr[((UINT) 0)];
-    current_cpu->SETMEMSI (pc, addr, opval);
-  }
+current_cpu->SETMEMSI (pc, addr, current_cpu->hardware.h_gr[((UINT) 0)]);
   addr = SUBSI (addr, 4);
 }
 }
-  {
-    SI opval = addr;
-    * FLD (i_rn) = opval;
-  }
+* FLD (i_rn) = addr;
 }
 
 #undef FLD
@@ -12810,10 +9861,7 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, GET_ATTR (R15_OFFSET));
 
 {
-  {
-    SI opval = current_cpu->h_cpsr_get ();
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = current_cpu->h_cpsr_get ();
 }
 
 #undef FLD
@@ -12831,10 +9879,7 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, GET_ATTR (R15_OFFSET));
 
 {
-  {
-    SI opval = current_cpu->h_spsr_get ();
-    * FLD (i_rd) = opval;
-  }
+* FLD (i_rd) = current_cpu->h_spsr_get ();
 }
 
 #undef FLD
@@ -12852,10 +9897,7 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, GET_ATTR (R15_OFFSET));
 
 {
-  {
-    SI opval = * FLD (i_rm);
-    current_cpu->h_cpsr_set (opval);
-  }
+current_cpu->h_cpsr_set (* FLD (i_rm));
 }
 
 #undef FLD
@@ -12873,10 +9915,7 @@ if (ANDSI (FLD (f_reg_list), SLLSI (1, 0))) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, GET_ATTR (R15_OFFSET));
 
 {
-  {
-    SI opval = * FLD (i_rm);
-    current_cpu->h_spsr_set (opval);
-  }
+current_cpu->h_spsr_set (* FLD (i_rm));
 }
 
 #undef FLD
index ad90d8e..d2bb7c4 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000, 2001, 2002, 2003 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -27,95 +27,95 @@ bool thumb_idesc::idesc_table_initialized_p = false;
 
 thumb_idesc thumb_idesc::idesc_table[THUMB_INSN_BL_LO + 1] =
 {
-  { 0, 0, "X_AFTER", THUMB_INSN_X_AFTER, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, 0, "X_BEFORE", THUMB_INSN_X_BEFORE, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, 0, "X_CTI_CHAIN", THUMB_INSN_X_CTI_CHAIN, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, 0, "X_CHAIN", THUMB_INSN_X_CHAIN, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, 0, "X_BEGIN", THUMB_INSN_X_BEGIN, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_x_invalid, "X_INVALID", THUMB_INSN_X_INVALID, { 0|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_lsl, "LSL", THUMB_INSN_LSL, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_lsr, "LSR", THUMB_INSN_LSR, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_asr, "ASR", THUMB_INSN_ASR, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_add, "ADD", THUMB_INSN_ADD, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_addi, "ADDI", THUMB_INSN_ADDI, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_sub, "SUB", THUMB_INSN_SUB, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_subi, "SUBI", THUMB_INSN_SUBI, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_mov, "MOV", THUMB_INSN_MOV, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_cmp, "CMP", THUMB_INSN_CMP, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_addi8, "ADDI8", THUMB_INSN_ADDI8, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_subi8, "SUBI8", THUMB_INSN_SUBI8, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_alu_and, "ALU_AND", THUMB_INSN_ALU_AND, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_alu_eor, "ALU_EOR", THUMB_INSN_ALU_EOR, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_alu_lsl, "ALU_LSL", THUMB_INSN_ALU_LSL, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_alu_lsr, "ALU_LSR", THUMB_INSN_ALU_LSR, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_alu_asr, "ALU_ASR", THUMB_INSN_ALU_ASR, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_alu_ror, "ALU_ROR", THUMB_INSN_ALU_ROR, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_alu_adc, "ALU_ADC", THUMB_INSN_ALU_ADC, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_alu_sbc, "ALU_SBC", THUMB_INSN_ALU_SBC, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_alu_tst, "ALU_TST", THUMB_INSN_ALU_TST, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_alu_neg, "ALU_NEG", THUMB_INSN_ALU_NEG, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_alu_cmp, "ALU_CMP", THUMB_INSN_ALU_CMP, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_alu_cmn, "ALU_CMN", THUMB_INSN_ALU_CMN, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_alu_orr, "ALU_ORR", THUMB_INSN_ALU_ORR, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_alu_mul, "ALU_MUL", THUMB_INSN_ALU_MUL, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_alu_bic, "ALU_BIC", THUMB_INSN_ALU_BIC, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_alu_mvn, "ALU_MVN", THUMB_INSN_ALU_MVN, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_add_rd_hs, "ADD_RD_HS", THUMB_INSN_ADD_RD_HS, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_add_hd_rs, "ADD_HD_RS", THUMB_INSN_ADD_HD_RS, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_add_hd_hs, "ADD_HD_HS", THUMB_INSN_ADD_HD_HS, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_cmp_rd_hs, "CMP_RD_HS", THUMB_INSN_CMP_RD_HS, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_cmp_hd_rs, "CMP_HD_RS", THUMB_INSN_CMP_HD_RS, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_cmp_hd_hs, "CMP_HD_HS", THUMB_INSN_CMP_HD_HS, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_mov_rd_hs, "MOV_RD_HS", THUMB_INSN_MOV_RD_HS, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_mov_hd_rs, "MOV_HD_RS", THUMB_INSN_MOV_HD_RS, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_mov_hd_hs, "MOV_HD_HS", THUMB_INSN_MOV_HD_HS, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_bx_rs, "BX_RS", THUMB_INSN_BX_RS, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_bx_hs, "BX_HS", THUMB_INSN_BX_HS, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_ldr_pc, "LDR_PC", THUMB_INSN_LDR_PC, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_str, "STR", THUMB_INSN_STR, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_strb, "STRB", THUMB_INSN_STRB, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_ldr, "LDR", THUMB_INSN_LDR, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_ldrb, "LDRB", THUMB_INSN_LDRB, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_strh, "STRH", THUMB_INSN_STRH, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_ldrh, "LDRH", THUMB_INSN_LDRH, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_ldsb, "LDSB", THUMB_INSN_LDSB, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_ldsh, "LDSH", THUMB_INSN_LDSH, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_str_imm, "STR_IMM", THUMB_INSN_STR_IMM, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_ldr_imm, "LDR_IMM", THUMB_INSN_LDR_IMM, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_strb_imm, "STRB_IMM", THUMB_INSN_STRB_IMM, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_ldrb_imm, "LDRB_IMM", THUMB_INSN_LDRB_IMM, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_strh_imm, "STRH_IMM", THUMB_INSN_STRH_IMM, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_ldrh_imm, "LDRH_IMM", THUMB_INSN_LDRH_IMM, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_str_sprel, "STR_SPREL", THUMB_INSN_STR_SPREL, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_ldr_sprel, "LDR_SPREL", THUMB_INSN_LDR_SPREL, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_lda_pc, "LDA_PC", THUMB_INSN_LDA_PC, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_lda_sp, "LDA_SP", THUMB_INSN_LDA_SP, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_add_sp, "ADD_SP", THUMB_INSN_ADD_SP, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_sub_sp, "SUB_SP", THUMB_INSN_SUB_SP, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_push, "PUSH", THUMB_INSN_PUSH, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_push_lr, "PUSH_LR", THUMB_INSN_PUSH_LR, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_pop, "POP", THUMB_INSN_POP, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_pop_pc, "POP_PC", THUMB_INSN_POP_PC, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_stmia, "STMIA", THUMB_INSN_STMIA, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_ldmia, "LDMIA", THUMB_INSN_LDMIA, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_beq, "BEQ", THUMB_INSN_BEQ, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_bne, "BNE", THUMB_INSN_BNE, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_bcs, "BCS", THUMB_INSN_BCS, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_bcc, "BCC", THUMB_INSN_BCC, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_bmi, "BMI", THUMB_INSN_BMI, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_bpl, "BPL", THUMB_INSN_BPL, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_bvs, "BVS", THUMB_INSN_BVS, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_bvc, "BVC", THUMB_INSN_BVC, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_bhi, "BHI", THUMB_INSN_BHI, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_bls, "BLS", THUMB_INSN_BLS, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_bge, "BGE", THUMB_INSN_BGE, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_blt, "BLT", THUMB_INSN_BLT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_bgt, "BGT", THUMB_INSN_BGT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_ble, "BLE", THUMB_INSN_BLE, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_swi, "SWI", THUMB_INSN_SWI, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_b, "B", THUMB_INSN_B, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_bl_hi, "BL_HI", THUMB_INSN_BL_HI, { 0, (1<<MACH_BASE), (1<<ISA_THUMB) } },
-  { 0, thumb_sem_bl_lo, "BL_LO", THUMB_INSN_BL_LO, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), (1<<ISA_THUMB) } },
+  { 0, 0, "X_AFTER", THUMB_INSN_X_AFTER, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, 0, "X_BEFORE", THUMB_INSN_X_BEFORE, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, 0, "X_CTI_CHAIN", THUMB_INSN_X_CTI_CHAIN, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, 0, "X_CHAIN", THUMB_INSN_X_CHAIN, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, 0, "X_BEGIN", THUMB_INSN_X_BEGIN, { 0|(1<<CGEN_INSN_PBB)|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_x_invalid, "X_INVALID", THUMB_INSN_X_INVALID, { 0|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_lsl, "LSL", THUMB_INSN_LSL, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_lsr, "LSR", THUMB_INSN_LSR, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_asr, "ASR", THUMB_INSN_ASR, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_add, "ADD", THUMB_INSN_ADD, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_addi, "ADDI", THUMB_INSN_ADDI, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_sub, "SUB", THUMB_INSN_SUB, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_subi, "SUBI", THUMB_INSN_SUBI, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_mov, "MOV", THUMB_INSN_MOV, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_cmp, "CMP", THUMB_INSN_CMP, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_addi8, "ADDI8", THUMB_INSN_ADDI8, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_subi8, "SUBI8", THUMB_INSN_SUBI8, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_alu_and, "ALU_AND", THUMB_INSN_ALU_AND, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_alu_eor, "ALU_EOR", THUMB_INSN_ALU_EOR, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_alu_lsl, "ALU_LSL", THUMB_INSN_ALU_LSL, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_alu_lsr, "ALU_LSR", THUMB_INSN_ALU_LSR, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_alu_asr, "ALU_ASR", THUMB_INSN_ALU_ASR, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_alu_ror, "ALU_ROR", THUMB_INSN_ALU_ROR, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_alu_adc, "ALU_ADC", THUMB_INSN_ALU_ADC, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_alu_sbc, "ALU_SBC", THUMB_INSN_ALU_SBC, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_alu_tst, "ALU_TST", THUMB_INSN_ALU_TST, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_alu_neg, "ALU_NEG", THUMB_INSN_ALU_NEG, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_alu_cmp, "ALU_CMP", THUMB_INSN_ALU_CMP, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_alu_cmn, "ALU_CMN", THUMB_INSN_ALU_CMN, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_alu_orr, "ALU_ORR", THUMB_INSN_ALU_ORR, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_alu_mul, "ALU_MUL", THUMB_INSN_ALU_MUL, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_alu_bic, "ALU_BIC", THUMB_INSN_ALU_BIC, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_alu_mvn, "ALU_MVN", THUMB_INSN_ALU_MVN, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_add_rd_hs, "ADD_RD_HS", THUMB_INSN_ADD_RD_HS, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_add_hd_rs, "ADD_HD_RS", THUMB_INSN_ADD_HD_RS, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_add_hd_hs, "ADD_HD_HS", THUMB_INSN_ADD_HD_HS, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_cmp_rd_hs, "CMP_RD_HS", THUMB_INSN_CMP_RD_HS, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_cmp_hd_rs, "CMP_HD_RS", THUMB_INSN_CMP_HD_RS, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_cmp_hd_hs, "CMP_HD_HS", THUMB_INSN_CMP_HD_HS, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_mov_rd_hs, "MOV_RD_HS", THUMB_INSN_MOV_RD_HS, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_mov_hd_rs, "MOV_HD_RS", THUMB_INSN_MOV_HD_RS, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_mov_hd_hs, "MOV_HD_HS", THUMB_INSN_MOV_HD_HS, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_bx_rs, "BX_RS", THUMB_INSN_BX_RS, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_bx_hs, "BX_HS", THUMB_INSN_BX_HS, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_ldr_pc, "LDR_PC", THUMB_INSN_LDR_PC, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_str, "STR", THUMB_INSN_STR, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_strb, "STRB", THUMB_INSN_STRB, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_ldr, "LDR", THUMB_INSN_LDR, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_ldrb, "LDRB", THUMB_INSN_LDRB, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_strh, "STRH", THUMB_INSN_STRH, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_ldrh, "LDRH", THUMB_INSN_LDRH, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_ldsb, "LDSB", THUMB_INSN_LDSB, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_ldsh, "LDSH", THUMB_INSN_LDSH, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_str_imm, "STR_IMM", THUMB_INSN_STR_IMM, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_ldr_imm, "LDR_IMM", THUMB_INSN_LDR_IMM, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_strb_imm, "STRB_IMM", THUMB_INSN_STRB_IMM, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_ldrb_imm, "LDRB_IMM", THUMB_INSN_LDRB_IMM, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_strh_imm, "STRH_IMM", THUMB_INSN_STRH_IMM, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_ldrh_imm, "LDRH_IMM", THUMB_INSN_LDRH_IMM, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_str_sprel, "STR_SPREL", THUMB_INSN_STR_SPREL, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_ldr_sprel, "LDR_SPREL", THUMB_INSN_LDR_SPREL, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_lda_pc, "LDA_PC", THUMB_INSN_LDA_PC, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_lda_sp, "LDA_SP", THUMB_INSN_LDA_SP, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_add_sp, "ADD_SP", THUMB_INSN_ADD_SP, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_sub_sp, "SUB_SP", THUMB_INSN_SUB_SP, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_push, "PUSH", THUMB_INSN_PUSH, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_push_lr, "PUSH_LR", THUMB_INSN_PUSH_LR, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_pop, "POP", THUMB_INSN_POP, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_pop_pc, "POP_PC", THUMB_INSN_POP_PC, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_stmia, "STMIA", THUMB_INSN_STMIA, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_ldmia, "LDMIA", THUMB_INSN_LDMIA, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_beq, "BEQ", THUMB_INSN_BEQ, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_bne, "BNE", THUMB_INSN_BNE, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_bcs, "BCS", THUMB_INSN_BCS, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_bcc, "BCC", THUMB_INSN_BCC, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_bmi, "BMI", THUMB_INSN_BMI, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_bpl, "BPL", THUMB_INSN_BPL, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_bvs, "BVS", THUMB_INSN_BVS, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_bvc, "BVC", THUMB_INSN_BVC, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_bhi, "BHI", THUMB_INSN_BHI, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_bls, "BLS", THUMB_INSN_BLS, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_bge, "BGE", THUMB_INSN_BGE, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_blt, "BLT", THUMB_INSN_BLT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_bgt, "BGT", THUMB_INSN_BGT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_ble, "BLE", THUMB_INSN_BLE, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_swi, "SWI", THUMB_INSN_SWI, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_b, "B", THUMB_INSN_B, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_bl_hi, "BL_HI", THUMB_INSN_BL_HI, { 0, (1<<MACH_BASE), { 1, "\x40" } } },
+  { 0, thumb_sem_bl_lo, "BL_LO", THUMB_INSN_BL_LO, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), { 1, "\x40" } } },
 
 };
 
@@ -280,7 +280,9 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 4 : /* fall through */
       case 5 : /* fall through */
       case 6 : /* fall through */
-      case 7 : itype = THUMB_INSN_LSL; entire_insn = base_insn >> 16; thumb_extract_sfmt_lsl (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 7 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_LSL; thumb_extract_sfmt_lsl (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 8 : /* fall through */
       case 9 : /* fall through */
       case 10 : /* fall through */
@@ -288,7 +290,9 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 12 : /* fall through */
       case 13 : /* fall through */
       case 14 : /* fall through */
-      case 15 : itype = THUMB_INSN_LSR; entire_insn = base_insn >> 16; thumb_extract_sfmt_lsl (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 15 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_LSR; thumb_extract_sfmt_lsl (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 16 : /* fall through */
       case 17 : /* fall through */
       case 18 : /* fall through */
@@ -296,15 +300,25 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 20 : /* fall through */
       case 21 : /* fall through */
       case 22 : /* fall through */
-      case 23 : itype = THUMB_INSN_ASR; entire_insn = base_insn >> 16; thumb_extract_sfmt_lsl (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 23 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_ASR; thumb_extract_sfmt_lsl (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 24 : /* fall through */
-      case 25 : itype = THUMB_INSN_ADD; entire_insn = base_insn >> 16; thumb_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 25 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_ADD; thumb_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 26 : /* fall through */
-      case 27 : itype = THUMB_INSN_SUB; entire_insn = base_insn >> 16; thumb_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 27 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_SUB; thumb_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 28 : /* fall through */
-      case 29 : itype = THUMB_INSN_ADDI; entire_insn = base_insn >> 16; thumb_extract_sfmt_addi (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 29 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_ADDI; thumb_extract_sfmt_addi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 30 : /* fall through */
-      case 31 : itype = THUMB_INSN_SUBI; entire_insn = base_insn >> 16; thumb_extract_sfmt_addi (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 31 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_SUBI; thumb_extract_sfmt_addi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 32 : /* fall through */
       case 33 : /* fall through */
       case 34 : /* fall through */
@@ -312,7 +326,9 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 36 : /* fall through */
       case 37 : /* fall through */
       case 38 : /* fall through */
-      case 39 : itype = THUMB_INSN_MOV; entire_insn = base_insn >> 16; thumb_extract_sfmt_mov (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 39 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_MOV; thumb_extract_sfmt_mov (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 40 : /* fall through */
       case 41 : /* fall through */
       case 42 : /* fall through */
@@ -320,7 +336,9 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 44 : /* fall through */
       case 45 : /* fall through */
       case 46 : /* fall through */
-      case 47 : itype = THUMB_INSN_CMP; entire_insn = base_insn >> 16; thumb_extract_sfmt_cmp (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 47 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_CMP; thumb_extract_sfmt_cmp (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 48 : /* fall through */
       case 49 : /* fall through */
       case 50 : /* fall through */
@@ -328,7 +346,9 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 52 : /* fall through */
       case 53 : /* fall through */
       case 54 : /* fall through */
-      case 55 : itype = THUMB_INSN_ADDI8; entire_insn = base_insn >> 16; thumb_extract_sfmt_addi8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 55 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_ADDI8; thumb_extract_sfmt_addi8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 56 : /* fall through */
       case 57 : /* fall through */
       case 58 : /* fall through */
@@ -336,17 +356,27 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 60 : /* fall through */
       case 61 : /* fall through */
       case 62 : /* fall through */
-      case 63 : itype = THUMB_INSN_SUBI8; entire_insn = base_insn >> 16; thumb_extract_sfmt_addi8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 63 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_SUBI8; thumb_extract_sfmt_addi8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 64 :
         {
           unsigned int val = (((insn >> 6) & (3 << 0)));
           switch (val)
           {
-          case 0 : itype = THUMB_INSN_ALU_AND; entire_insn = base_insn >> 16; thumb_extract_sfmt_alu_and (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = THUMB_INSN_ALU_EOR; entire_insn = base_insn >> 16; thumb_extract_sfmt_alu_and (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 2 : itype = THUMB_INSN_ALU_LSL; entire_insn = base_insn >> 16; thumb_extract_sfmt_alu_lsl (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 3 : itype = THUMB_INSN_ALU_LSR; entire_insn = base_insn >> 16; thumb_extract_sfmt_alu_lsl (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_ALU_AND; thumb_extract_sfmt_alu_and (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_ALU_EOR; thumb_extract_sfmt_alu_and (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 2 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_ALU_LSL; thumb_extract_sfmt_alu_lsl (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 3 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_ALU_LSR; thumb_extract_sfmt_alu_lsl (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 65 :
@@ -354,11 +384,19 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
           unsigned int val = (((insn >> 6) & (3 << 0)));
           switch (val)
           {
-          case 0 : itype = THUMB_INSN_ALU_ASR; entire_insn = base_insn >> 16; thumb_extract_sfmt_alu_lsl (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = THUMB_INSN_ALU_ADC; entire_insn = base_insn >> 16; thumb_extract_sfmt_alu_adc (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 2 : itype = THUMB_INSN_ALU_SBC; entire_insn = base_insn >> 16; thumb_extract_sfmt_alu_adc (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 3 : itype = THUMB_INSN_ALU_ROR; entire_insn = base_insn >> 16; thumb_extract_sfmt_alu_lsl (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_ALU_ASR; thumb_extract_sfmt_alu_lsl (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_ALU_ADC; thumb_extract_sfmt_alu_adc (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 2 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_ALU_SBC; thumb_extract_sfmt_alu_adc (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 3 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_ALU_ROR; thumb_extract_sfmt_alu_lsl (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 66 :
@@ -366,11 +404,19 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
           unsigned int val = (((insn >> 6) & (3 << 0)));
           switch (val)
           {
-          case 0 : itype = THUMB_INSN_ALU_TST; entire_insn = base_insn >> 16; thumb_extract_sfmt_alu_tst (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = THUMB_INSN_ALU_NEG; entire_insn = base_insn >> 16; thumb_extract_sfmt_alu_neg (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 2 : itype = THUMB_INSN_ALU_CMP; entire_insn = base_insn >> 16; thumb_extract_sfmt_alu_cmp (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 3 : itype = THUMB_INSN_ALU_CMN; entire_insn = base_insn >> 16; thumb_extract_sfmt_alu_cmp (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_ALU_TST; thumb_extract_sfmt_alu_tst (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_ALU_NEG; thumb_extract_sfmt_alu_neg (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 2 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_ALU_CMP; thumb_extract_sfmt_alu_cmp (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 3 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_ALU_CMN; thumb_extract_sfmt_alu_cmp (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 67 :
@@ -378,11 +424,19 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
           unsigned int val = (((insn >> 6) & (3 << 0)));
           switch (val)
           {
-          case 0 : itype = THUMB_INSN_ALU_ORR; entire_insn = base_insn >> 16; thumb_extract_sfmt_alu_and (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = THUMB_INSN_ALU_MUL; entire_insn = base_insn >> 16; thumb_extract_sfmt_alu_and (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 2 : itype = THUMB_INSN_ALU_BIC; entire_insn = base_insn >> 16; thumb_extract_sfmt_alu_and (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 3 : itype = THUMB_INSN_ALU_MVN; entire_insn = base_insn >> 16; thumb_extract_sfmt_alu_and (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_ALU_ORR; thumb_extract_sfmt_alu_and (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_ALU_MUL; thumb_extract_sfmt_alu_and (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 2 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_ALU_BIC; thumb_extract_sfmt_alu_and (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 3 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_ALU_MVN; thumb_extract_sfmt_alu_and (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 68 :
@@ -390,10 +444,16 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
           unsigned int val = (((insn >> 6) & (3 << 0)));
           switch (val)
           {
-          case 1 : itype = THUMB_INSN_ADD_RD_HS; entire_insn = base_insn >> 16; thumb_extract_sfmt_add_rd_hs (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 2 : itype = THUMB_INSN_ADD_HD_RS; entire_insn = base_insn >> 16; thumb_extract_sfmt_add_hd_rs (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 3 : itype = THUMB_INSN_ADD_HD_HS; entire_insn = base_insn >> 16; thumb_extract_sfmt_add_hd_hs (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 1 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_ADD_RD_HS; thumb_extract_sfmt_add_rd_hs (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 2 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_ADD_HD_RS; thumb_extract_sfmt_add_hd_rs (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 3 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_ADD_HD_HS; thumb_extract_sfmt_add_hd_hs (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 69 :
@@ -401,10 +461,16 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
           unsigned int val = (((insn >> 6) & (3 << 0)));
           switch (val)
           {
-          case 1 : itype = THUMB_INSN_CMP_RD_HS; entire_insn = base_insn >> 16; thumb_extract_sfmt_cmp_rd_hs (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 2 : itype = THUMB_INSN_CMP_HD_RS; entire_insn = base_insn >> 16; thumb_extract_sfmt_cmp_hd_rs (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 3 : itype = THUMB_INSN_CMP_HD_HS; entire_insn = base_insn >> 16; thumb_extract_sfmt_cmp_hd_hs (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 1 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_CMP_RD_HS; thumb_extract_sfmt_cmp_rd_hs (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 2 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_CMP_HD_RS; thumb_extract_sfmt_cmp_hd_rs (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 3 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_CMP_HD_HS; thumb_extract_sfmt_cmp_hd_hs (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 70 :
@@ -412,10 +478,16 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
           unsigned int val = (((insn >> 6) & (3 << 0)));
           switch (val)
           {
-          case 1 : itype = THUMB_INSN_MOV_RD_HS; entire_insn = base_insn >> 16; thumb_extract_sfmt_mov_rd_hs (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 2 : itype = THUMB_INSN_MOV_HD_RS; entire_insn = base_insn >> 16; thumb_extract_sfmt_mov_hd_rs (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 3 : itype = THUMB_INSN_MOV_HD_HS; entire_insn = base_insn >> 16; thumb_extract_sfmt_mov_hd_hs (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 1 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_MOV_RD_HS; thumb_extract_sfmt_mov_rd_hs (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 2 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_MOV_HD_RS; thumb_extract_sfmt_mov_hd_rs (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 3 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_MOV_HD_HS; thumb_extract_sfmt_mov_hd_hs (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 71 :
@@ -423,9 +495,17 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
           unsigned int val = (((insn >> 6) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = THUMB_INSN_BX_RS; entire_insn = base_insn >> 16; thumb_extract_sfmt_bx_rs (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = THUMB_INSN_BX_HS; entire_insn = base_insn >> 16; thumb_extract_sfmt_bx_hs (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            entire_insn = entire_insn >> 16;
+            if ((entire_insn & 0xffc7) == 0x4700)
+              { itype = THUMB_INSN_BX_RS; thumb_extract_sfmt_bx_rs (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            entire_insn = entire_insn >> 16;
+            if ((entire_insn & 0xffc7) == 0x4740)
+              { itype = THUMB_INSN_BX_HS; thumb_extract_sfmt_bx_hs (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+            itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 72 : /* fall through */
@@ -435,23 +515,41 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 76 : /* fall through */
       case 77 : /* fall through */
       case 78 : /* fall through */
-      case 79 : itype = THUMB_INSN_LDR_PC; entire_insn = base_insn >> 16; thumb_extract_sfmt_ldr_pc (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 79 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_LDR_PC; thumb_extract_sfmt_ldr_pc (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 80 : /* fall through */
-      case 81 : itype = THUMB_INSN_STR; entire_insn = base_insn >> 16; thumb_extract_sfmt_str (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 81 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_STR; thumb_extract_sfmt_str (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 82 : /* fall through */
-      case 83 : itype = THUMB_INSN_STRH; entire_insn = base_insn >> 16; thumb_extract_sfmt_strh (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 83 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_STRH; thumb_extract_sfmt_strh (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 84 : /* fall through */
-      case 85 : itype = THUMB_INSN_STRB; entire_insn = base_insn >> 16; thumb_extract_sfmt_strb (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 85 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_STRB; thumb_extract_sfmt_strb (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 86 : /* fall through */
-      case 87 : itype = THUMB_INSN_LDSB; entire_insn = base_insn >> 16; thumb_extract_sfmt_ldrb (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 87 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_LDSB; thumb_extract_sfmt_ldrb (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 88 : /* fall through */
-      case 89 : itype = THUMB_INSN_LDR; entire_insn = base_insn >> 16; thumb_extract_sfmt_ldr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 89 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_LDR; thumb_extract_sfmt_ldr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 90 : /* fall through */
-      case 91 : itype = THUMB_INSN_LDRH; entire_insn = base_insn >> 16; thumb_extract_sfmt_ldrh (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 91 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_LDRH; thumb_extract_sfmt_ldrh (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 92 : /* fall through */
-      case 93 : itype = THUMB_INSN_LDRB; entire_insn = base_insn >> 16; thumb_extract_sfmt_ldrb (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 93 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_LDRB; thumb_extract_sfmt_ldrb (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 94 : /* fall through */
-      case 95 : itype = THUMB_INSN_LDSH; entire_insn = base_insn >> 16; thumb_extract_sfmt_ldrh (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 95 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_LDSH; thumb_extract_sfmt_ldrh (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 96 : /* fall through */
       case 97 : /* fall through */
       case 98 : /* fall through */
@@ -459,7 +557,9 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 100 : /* fall through */
       case 101 : /* fall through */
       case 102 : /* fall through */
-      case 103 : itype = THUMB_INSN_STR_IMM; entire_insn = base_insn >> 16; thumb_extract_sfmt_str_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 103 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_STR_IMM; thumb_extract_sfmt_str_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 104 : /* fall through */
       case 105 : /* fall through */
       case 106 : /* fall through */
@@ -467,7 +567,9 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 108 : /* fall through */
       case 109 : /* fall through */
       case 110 : /* fall through */
-      case 111 : itype = THUMB_INSN_LDR_IMM; entire_insn = base_insn >> 16; thumb_extract_sfmt_ldr_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 111 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_LDR_IMM; thumb_extract_sfmt_ldr_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 112 : /* fall through */
       case 113 : /* fall through */
       case 114 : /* fall through */
@@ -475,7 +577,9 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 116 : /* fall through */
       case 117 : /* fall through */
       case 118 : /* fall through */
-      case 119 : itype = THUMB_INSN_STRB_IMM; entire_insn = base_insn >> 16; thumb_extract_sfmt_strb_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 119 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_STRB_IMM; thumb_extract_sfmt_strb_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 120 : /* fall through */
       case 121 : /* fall through */
       case 122 : /* fall through */
@@ -483,7 +587,9 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 124 : /* fall through */
       case 125 : /* fall through */
       case 126 : /* fall through */
-      case 127 : itype = THUMB_INSN_LDRB_IMM; entire_insn = base_insn >> 16; thumb_extract_sfmt_ldrb_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 127 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_LDRB_IMM; thumb_extract_sfmt_ldrb_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 128 : /* fall through */
       case 129 : /* fall through */
       case 130 : /* fall through */
@@ -491,7 +597,9 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 132 : /* fall through */
       case 133 : /* fall through */
       case 134 : /* fall through */
-      case 135 : itype = THUMB_INSN_STRH_IMM; entire_insn = base_insn >> 16; thumb_extract_sfmt_strh_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 135 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_STRH_IMM; thumb_extract_sfmt_strh_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 136 : /* fall through */
       case 137 : /* fall through */
       case 138 : /* fall through */
@@ -499,7 +607,9 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 140 : /* fall through */
       case 141 : /* fall through */
       case 142 : /* fall through */
-      case 143 : itype = THUMB_INSN_LDRH_IMM; entire_insn = base_insn >> 16; thumb_extract_sfmt_ldrh_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 143 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_LDRH_IMM; thumb_extract_sfmt_ldrh_imm (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 144 : /* fall through */
       case 145 : /* fall through */
       case 146 : /* fall through */
@@ -507,7 +617,9 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 148 : /* fall through */
       case 149 : /* fall through */
       case 150 : /* fall through */
-      case 151 : itype = THUMB_INSN_STR_SPREL; entire_insn = base_insn >> 16; thumb_extract_sfmt_str_sprel (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 151 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_STR_SPREL; thumb_extract_sfmt_str_sprel (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 152 : /* fall through */
       case 153 : /* fall through */
       case 154 : /* fall through */
@@ -515,7 +627,9 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 156 : /* fall through */
       case 157 : /* fall through */
       case 158 : /* fall through */
-      case 159 : itype = THUMB_INSN_LDR_SPREL; entire_insn = base_insn >> 16; thumb_extract_sfmt_ldr_sprel (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 159 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_LDR_SPREL; thumb_extract_sfmt_ldr_sprel (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 160 : /* fall through */
       case 161 : /* fall through */
       case 162 : /* fall through */
@@ -523,7 +637,9 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 164 : /* fall through */
       case 165 : /* fall through */
       case 166 : /* fall through */
-      case 167 : itype = THUMB_INSN_LDA_PC; entire_insn = base_insn >> 16; thumb_extract_sfmt_lda_pc (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 167 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_LDA_PC; thumb_extract_sfmt_lda_pc (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 168 : /* fall through */
       case 169 : /* fall through */
       case 170 : /* fall through */
@@ -531,21 +647,35 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 172 : /* fall through */
       case 173 : /* fall through */
       case 174 : /* fall through */
-      case 175 : itype = THUMB_INSN_LDA_SP; entire_insn = base_insn >> 16; thumb_extract_sfmt_lda_sp (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 175 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_LDA_SP; thumb_extract_sfmt_lda_sp (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 176 :
         {
           unsigned int val = (((insn >> 7) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = THUMB_INSN_ADD_SP; entire_insn = base_insn >> 16; thumb_extract_sfmt_add_sp (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = THUMB_INSN_SUB_SP; entire_insn = base_insn >> 16; thumb_extract_sfmt_add_sp (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          default : itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+          case 0 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_ADD_SP; thumb_extract_sfmt_add_sp (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            entire_insn = entire_insn >> 16;
+            itype = THUMB_INSN_SUB_SP; thumb_extract_sfmt_add_sp (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          default : itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
-      case 180 : itype = THUMB_INSN_PUSH; entire_insn = base_insn >> 16; thumb_extract_sfmt_push (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 181 : itype = THUMB_INSN_PUSH_LR; entire_insn = base_insn >> 16; thumb_extract_sfmt_push_lr (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 188 : itype = THUMB_INSN_POP; entire_insn = base_insn >> 16; thumb_extract_sfmt_pop (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 189 : itype = THUMB_INSN_POP_PC; entire_insn = base_insn >> 16; thumb_extract_sfmt_pop_pc (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 180 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_PUSH; thumb_extract_sfmt_push (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 181 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_PUSH_LR; thumb_extract_sfmt_push_lr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 188 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_POP; thumb_extract_sfmt_pop (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 189 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_POP_PC; thumb_extract_sfmt_pop_pc (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 192 : /* fall through */
       case 193 : /* fall through */
       case 194 : /* fall through */
@@ -553,7 +683,9 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 196 : /* fall through */
       case 197 : /* fall through */
       case 198 : /* fall through */
-      case 199 : itype = THUMB_INSN_STMIA; entire_insn = base_insn >> 16; thumb_extract_sfmt_stmia (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 199 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_STMIA; thumb_extract_sfmt_stmia (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 200 : /* fall through */
       case 201 : /* fall through */
       case 202 : /* fall through */
@@ -561,22 +693,54 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 204 : /* fall through */
       case 205 : /* fall through */
       case 206 : /* fall through */
-      case 207 : itype = THUMB_INSN_LDMIA; entire_insn = base_insn >> 16; thumb_extract_sfmt_ldmia (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 208 : itype = THUMB_INSN_BEQ; entire_insn = base_insn >> 16; thumb_extract_sfmt_beq (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 209 : itype = THUMB_INSN_BNE; entire_insn = base_insn >> 16; thumb_extract_sfmt_beq (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 210 : itype = THUMB_INSN_BCS; entire_insn = base_insn >> 16; thumb_extract_sfmt_bcs (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 211 : itype = THUMB_INSN_BCC; entire_insn = base_insn >> 16; thumb_extract_sfmt_bcs (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 212 : itype = THUMB_INSN_BMI; entire_insn = base_insn >> 16; thumb_extract_sfmt_bmi (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 213 : itype = THUMB_INSN_BPL; entire_insn = base_insn >> 16; thumb_extract_sfmt_bmi (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 214 : itype = THUMB_INSN_BVS; entire_insn = base_insn >> 16; thumb_extract_sfmt_bvs (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 215 : itype = THUMB_INSN_BVC; entire_insn = base_insn >> 16; thumb_extract_sfmt_bvs (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 216 : itype = THUMB_INSN_BHI; entire_insn = base_insn >> 16; thumb_extract_sfmt_bhi (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 217 : itype = THUMB_INSN_BLS; entire_insn = base_insn >> 16; thumb_extract_sfmt_bhi (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 218 : itype = THUMB_INSN_BGE; entire_insn = base_insn >> 16; thumb_extract_sfmt_bge (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 219 : itype = THUMB_INSN_BLT; entire_insn = base_insn >> 16; thumb_extract_sfmt_bge (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 220 : itype = THUMB_INSN_BGT; entire_insn = base_insn >> 16; thumb_extract_sfmt_bgt (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 221 : itype = THUMB_INSN_BLE; entire_insn = base_insn >> 16; thumb_extract_sfmt_bgt (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 223 : itype = THUMB_INSN_SWI; entire_insn = base_insn >> 16; thumb_extract_sfmt_swi (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 207 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_LDMIA; thumb_extract_sfmt_ldmia (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 208 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_BEQ; thumb_extract_sfmt_beq (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 209 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_BNE; thumb_extract_sfmt_beq (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 210 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_BCS; thumb_extract_sfmt_bcs (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 211 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_BCC; thumb_extract_sfmt_bcs (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 212 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_BMI; thumb_extract_sfmt_bmi (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 213 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_BPL; thumb_extract_sfmt_bmi (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 214 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_BVS; thumb_extract_sfmt_bvs (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 215 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_BVC; thumb_extract_sfmt_bvs (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 216 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_BHI; thumb_extract_sfmt_bhi (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 217 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_BLS; thumb_extract_sfmt_bhi (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 218 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_BGE; thumb_extract_sfmt_bge (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 219 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_BLT; thumb_extract_sfmt_bge (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 220 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_BGT; thumb_extract_sfmt_bgt (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 221 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_BLE; thumb_extract_sfmt_bgt (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 223 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_SWI; thumb_extract_sfmt_swi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 224 : /* fall through */
       case 225 : /* fall through */
       case 226 : /* fall through */
@@ -584,7 +748,9 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 228 : /* fall through */
       case 229 : /* fall through */
       case 230 : /* fall through */
-      case 231 : itype = THUMB_INSN_B; entire_insn = base_insn >> 16; thumb_extract_sfmt_b (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 231 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_B; thumb_extract_sfmt_b (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 240 : /* fall through */
       case 241 : /* fall through */
       case 242 : /* fall through */
@@ -592,7 +758,9 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 244 : /* fall through */
       case 245 : /* fall through */
       case 246 : /* fall through */
-      case 247 : itype = THUMB_INSN_BL_HI; entire_insn = base_insn >> 16; thumb_extract_sfmt_bl_hi (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 247 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_BL_HI; thumb_extract_sfmt_bl_hi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 248 : /* fall through */
       case 249 : /* fall through */
       case 250 : /* fall through */
@@ -600,8 +768,10 @@ thumb_scache::decode (arm7f_cpu* current_cpu, PCADDR pc, thumb_insn_word base_in
       case 252 : /* fall through */
       case 253 : /* fall through */
       case 254 : /* fall through */
-      case 255 : itype = THUMB_INSN_BL_LO; entire_insn = base_insn >> 16; thumb_extract_sfmt_bl_lo (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      default : itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
+      case 255 :
+        entire_insn = entire_insn >> 16;
+        itype = THUMB_INSN_BL_LO; thumb_extract_sfmt_bl_lo (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      default : itype = THUMB_INSN_X_INVALID; thumb_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       }
     }
 
index d27e40a..4731d07 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000, 2001, 2002, 2003 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 88dfee2..75206ae 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000, 2001, 2002, 2003 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -16,7 +16,6 @@ This file is part of the Red Hat simulators.
 #include "arm7f.h"
 
 using namespace arm7f; // FIXME: namespace organization still wip
-
 #define GET_ATTR(name) GET_ATTR_##name ()
 
 
@@ -58,30 +57,30 @@ thumb_sem_lsl (arm7f_cpu* current_cpu, thumb_scache* sem)
   tmp_carry_out = current_cpu->compute_carry_out_immshift (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), SHIFT_TYPE_LSL, FLD (f_offset5), current_cpu->hardware.h_cbit);
   {
     SI opval = SLLSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset5));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 {
 {
   {
     BI opval = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -107,30 +106,30 @@ thumb_sem_lsr (arm7f_cpu* current_cpu, thumb_scache* sem)
   tmp_carry_out = current_cpu->compute_carry_out_immshift (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), SHIFT_TYPE_LSR, FLD (f_offset5), current_cpu->hardware.h_cbit);
   {
     SI opval = SRLSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset5));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 {
 {
   {
     BI opval = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -156,30 +155,30 @@ thumb_sem_asr (arm7f_cpu* current_cpu, thumb_scache* sem)
   tmp_carry_out = current_cpu->compute_carry_out_immshift (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), SHIFT_TYPE_ASR, FLD (f_offset5), current_cpu->hardware.h_cbit);
   {
     SI opval = SRASI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset5));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 {
 {
   {
     BI opval = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -207,35 +206,35 @@ thumb_sem_add (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = ADDCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->thumb_h_gr_t_get (FLD (f_rn)), 0);
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = ADDOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->thumb_h_gr_t_get (FLD (f_rn)), 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
   {
     SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->thumb_h_gr_t_get (FLD (f_rn)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 }
 
@@ -262,35 +261,35 @@ thumb_sem_addi (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = ADDCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset3), 0);
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = ADDOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset3), 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
   {
     SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset3));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 }
 
@@ -317,35 +316,35 @@ thumb_sem_sub (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->thumb_h_gr_t_get (FLD (f_rn)), 0));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->thumb_h_gr_t_get (FLD (f_rn)), 0));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->thumb_h_gr_t_get (FLD (f_rn)), 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
   {
     SI opval = SUBSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->thumb_h_gr_t_get (FLD (f_rn)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 }
 
@@ -372,35 +371,35 @@ thumb_sem_subi (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset3), 0));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset3), 0));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset3), 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
   {
     SI opval = SUBSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset3));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 }
 
@@ -423,22 +422,22 @@ thumb_sem_mov (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     SI opval = FLD (f_offset8);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), opval);
   }
 {
   {
     BI opval = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
 }
@@ -465,28 +464,28 @@ thumb_sem_cmp (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 
@@ -513,35 +512,35 @@ thumb_sem_addi8 (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = ADDCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0);
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = ADDOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
   {
     SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8));
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), opval);
   }
 }
 
@@ -568,35 +567,35 @@ thumb_sem_subi8 (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
   {
     SI opval = SUBSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8));
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), opval);
   }
 }
 
@@ -619,22 +618,22 @@ thumb_sem_alu_and (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     SI opval = ANDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 {
   {
     BI opval = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
 }
@@ -658,22 +657,22 @@ thumb_sem_alu_eor (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     SI opval = XORSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 {
   {
     BI opval = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
 }
@@ -701,30 +700,30 @@ thumb_sem_alu_lsl (arm7f_cpu* current_cpu, thumb_scache* sem)
   tmp_result = SLLSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
   {
     SI opval = tmp_result;
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -752,30 +751,30 @@ thumb_sem_alu_lsr (arm7f_cpu* current_cpu, thumb_scache* sem)
   tmp_result = SRLSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
   {
     SI opval = tmp_result;
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -803,30 +802,30 @@ thumb_sem_alu_asr (arm7f_cpu* current_cpu, thumb_scache* sem)
   tmp_result = SRASI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
   {
     SI opval = tmp_result;
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -854,30 +853,30 @@ thumb_sem_alu_ror (arm7f_cpu* current_cpu, thumb_scache* sem)
   tmp_result = RORSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
   {
     SI opval = tmp_result;
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 {
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
 }
 }
@@ -907,35 +906,35 @@ thumb_sem_alu_adc (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = ADDCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->hardware.h_cbit);
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = ADDOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->hardware.h_cbit);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
   {
     SI opval = tmp_result;
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 }
 
@@ -964,35 +963,35 @@ thumb_sem_alu_sbc (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), NOTBI (current_cpu->hardware.h_cbit)));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), NOTBI (current_cpu->hardware.h_cbit)));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), NOTBI (current_cpu->hardware.h_cbit));
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
   {
     SI opval = tmp_result;
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 }
 
@@ -1018,15 +1017,15 @@ thumb_sem_alu_tst (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     BI opval = EQSI (tmp_x, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_x, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
 }
@@ -1056,35 +1055,35 @@ thumb_sem_alu_neg (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (0, current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (0, current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (0, current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
   {
     SI opval = tmp_result;
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 }
 
@@ -1110,28 +1109,28 @@ thumb_sem_alu_cmp (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 
@@ -1157,28 +1156,28 @@ thumb_sem_alu_cmn (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
     BI opval = ADDCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0);
-    current_cpu->hardware.h_cbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = ADDOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 
@@ -1201,22 +1200,22 @@ thumb_sem_alu_orr (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     SI opval = ORSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 {
   {
     BI opval = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
 }
@@ -1240,22 +1239,22 @@ thumb_sem_alu_mul (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     SI opval = MULSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 {
   {
     BI opval = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
 }
@@ -1279,22 +1278,22 @@ thumb_sem_alu_bic (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     SI opval = ANDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), INVSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs))));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 {
   {
     BI opval = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
 }
@@ -1318,22 +1317,22 @@ thumb_sem_alu_mvn (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     SI opval = INVSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 {
   {
     BI opval = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
 }
@@ -1356,9 +1355,9 @@ thumb_sem_add_rd_hs (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -1380,16 +1379,16 @@ thumb_sem_add_hd_rs (arm7f_cpu* current_cpu, thumb_scache* sem)
 if (EQSI (FLD (f_rd), 7)) {
   {
     USI opval = ADDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ADDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
-    current_cpu->thumb_h_hiregs_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "hiregs" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_hiregs_set (FLD (f_rd), opval);
   }
 }
 
@@ -1412,16 +1411,16 @@ thumb_sem_add_hd_hs (arm7f_cpu* current_cpu, thumb_scache* sem)
 if (EQSI (FLD (f_rd), 7)) {
   {
     USI opval = ADDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = ADDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)));
-    current_cpu->thumb_h_hiregs_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "hiregs" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_hiregs_set (FLD (f_rd), opval);
   }
 }
 
@@ -1447,28 +1446,28 @@ thumb_sem_cmp_rd_hs (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 0));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 0));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 
@@ -1494,28 +1493,28 @@ thumb_sem_cmp_hd_rs (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 
@@ -1541,28 +1540,28 @@ thumb_sem_cmp_hd_hs (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "zbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_zbit = opval;
   }
   {
     BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "nbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_nbit = opval;
   }
 }
   {
-    BI opval = NOTSI (SUBCFSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 0));
-    current_cpu->hardware.h_cbit = opval;
+    BI opval = NOTBI (SUBCFSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 0));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_cbit = opval;
   }
   {
     BI opval = SUBOFSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 0);
-    current_cpu->hardware.h_vbit = opval;
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "vbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->hardware.h_vbit = opval;
   }
 }
 
@@ -1584,9 +1583,9 @@ thumb_sem_mov_rd_hs (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     SI opval = current_cpu->thumb_h_hiregs_get (FLD (f_rs));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -1608,16 +1607,16 @@ thumb_sem_mov_hd_rs (arm7f_cpu* current_cpu, thumb_scache* sem)
 if (EQSI (FLD (f_rd), 7)) {
   {
     USI opval = current_cpu->thumb_h_gr_t_get (FLD (f_rs));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = current_cpu->thumb_h_gr_t_get (FLD (f_rs));
-    current_cpu->thumb_h_hiregs_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "hiregs" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_hiregs_set (FLD (f_rd), opval);
   }
 }
 
@@ -1640,16 +1639,16 @@ thumb_sem_mov_hd_hs (arm7f_cpu* current_cpu, thumb_scache* sem)
 if (EQSI (FLD (f_rd), 7)) {
   {
     USI opval = current_cpu->thumb_h_hiregs_get (FLD (f_rs));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 } else {
   {
     SI opval = current_cpu->thumb_h_hiregs_get (FLD (f_rs));
-    current_cpu->thumb_h_hiregs_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "hiregs" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_hiregs_set (FLD (f_rd), opval);
   }
 }
 
@@ -1672,16 +1671,16 @@ thumb_sem_bx_rs (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     USI opval = current_cpu->thumb_h_gr_t_get (FLD (f_rs));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (NOTSI (ANDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 1))) {
   {
     BI opval = 0;
-    current_cpu->h_tbit_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "tbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_tbit_set (opval);
   }
 }
 }
@@ -1705,16 +1704,16 @@ thumb_sem_bx_hs (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     USI opval = current_cpu->thumb_h_hiregs_get (FLD (f_rs));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
   {
     BI opval = 0;
-    current_cpu->h_tbit_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "tbit" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_tbit_set (opval);
   }
 }
 }
@@ -1737,9 +1736,9 @@ thumb_sem_ldr_pc (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     SI opval = current_cpu->GETMEMSI (pc, ADDSI (ANDSI (ADDSI (pc, 4), -4), FLD (f_word8)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -1760,9 +1759,9 @@ thumb_sem_str (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     SI opval = current_cpu->thumb_h_gr_t_get (FLD (f_rd));
-    current_cpu->SETMEMSI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro))), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro))) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro))), opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -1783,9 +1782,9 @@ thumb_sem_strb (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     QI opval = current_cpu->thumb_h_gr_t_get (FLD (f_rd));
-    current_cpu->SETMEMQI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro))), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro))) << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
+    current_cpu->SETMEMQI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro))), opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -1806,9 +1805,9 @@ thumb_sem_ldr (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     SI opval = current_cpu->GETMEMSI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro))));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -1829,9 +1828,9 @@ thumb_sem_ldrb (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro)))));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -1852,9 +1851,9 @@ thumb_sem_strh (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     HI opval = current_cpu->thumb_h_gr_t_get (FLD (f_rd));
-    current_cpu->SETMEMHI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro))), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro))) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMHI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro))), opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -1875,9 +1874,9 @@ thumb_sem_ldrh (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro)))));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -1898,9 +1897,9 @@ thumb_sem_ldsb (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     SI opval = EXTQISI (current_cpu->GETMEMQI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro)))));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -1921,9 +1920,9 @@ thumb_sem_ldsh (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     SI opval = EXTHISI (current_cpu->GETMEMHI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro)))));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -1944,9 +1943,9 @@ thumb_sem_str_imm (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     SI opval = current_cpu->thumb_h_gr_t_get (FLD (f_rd));
-    current_cpu->SETMEMSI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5_7)), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5_7)) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5_7)), opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -1967,9 +1966,9 @@ thumb_sem_ldr_imm (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     SI opval = current_cpu->GETMEMSI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5_7)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -1990,9 +1989,9 @@ thumb_sem_strb_imm (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     QI opval = current_cpu->thumb_h_gr_t_get (FLD (f_rd));
-    current_cpu->SETMEMQI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5)), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5)) << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
+    current_cpu->SETMEMQI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5)), opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -2013,9 +2012,9 @@ thumb_sem_ldrb_imm (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5))));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -2036,9 +2035,9 @@ thumb_sem_strh_imm (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     HI opval = current_cpu->thumb_h_gr_t_get (FLD (f_rd));
-    current_cpu->SETMEMHI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5_6)), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5_6)) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMHI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5_6)), opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -2059,9 +2058,9 @@ thumb_sem_ldrh_imm (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5_6))));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -2082,9 +2081,9 @@ thumb_sem_str_sprel (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     SI opval = current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd));
-    current_cpu->SETMEMSI (pc, ADDSI (current_cpu->thumb_h_sp_t_get (), FLD (f_word8)), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) ADDSI (current_cpu->thumb_h_sp_t_get (), FLD (f_word8)) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, ADDSI (current_cpu->thumb_h_sp_t_get (), FLD (f_word8)), opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -2105,9 +2104,9 @@ thumb_sem_ldr_sprel (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     SI opval = current_cpu->GETMEMSI (pc, ADDSI (current_cpu->thumb_h_sp_t_get (), FLD (f_word8)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -2128,9 +2127,9 @@ thumb_sem_lda_pc (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     SI opval = ADDSI (ANDSI (ADDSI (pc, 4), -4), FLD (f_word8));
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -2151,9 +2150,9 @@ thumb_sem_lda_sp (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), FLD (f_word8));
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -2174,9 +2173,9 @@ thumb_sem_add_sp (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), FLD (f_sword7));
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -2197,9 +2196,9 @@ thumb_sem_sub_sp (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), FLD (f_sword7));
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -2223,15 +2222,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 7))) {
 {
   {
     SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 7));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_sp_t_get () << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
   }
 }
 }
@@ -2239,15 +2238,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 6))) {
 {
   {
     SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 6));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_sp_t_get () << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
   }
 }
 }
@@ -2255,15 +2254,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 5))) {
 {
   {
     SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 5));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_sp_t_get () << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
   }
 }
 }
@@ -2271,15 +2270,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 4))) {
 {
   {
     SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 4));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_sp_t_get () << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
   }
 }
 }
@@ -2287,15 +2286,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 3))) {
 {
   {
     SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 3));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_sp_t_get () << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
   }
 }
 }
@@ -2303,15 +2302,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 2))) {
 {
   {
     SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 2));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_sp_t_get () << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
   }
 }
 }
@@ -2319,15 +2318,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 1))) {
 {
   {
     SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 1));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_sp_t_get () << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
   }
 }
 }
@@ -2335,15 +2334,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 0))) {
 {
   {
     SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 0));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_sp_t_get () << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
   }
 }
 }
@@ -2368,29 +2367,29 @@ thumb_sem_push_lr (arm7f_cpu* current_cpu, thumb_scache* sem)
 {
   {
     SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
   {
     SI opval = current_cpu->thumb_h_lr_t_get ();
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_sp_t_get () << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
   }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 7))) {
 {
   {
     SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 7));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_sp_t_get () << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
   }
 }
 }
@@ -2398,15 +2397,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 6))) {
 {
   {
     SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 6));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_sp_t_get () << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
   }
 }
 }
@@ -2414,15 +2413,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 5))) {
 {
   {
     SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 5));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_sp_t_get () << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
   }
 }
 }
@@ -2430,15 +2429,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 4))) {
 {
   {
     SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 4));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_sp_t_get () << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
   }
 }
 }
@@ -2446,15 +2445,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 3))) {
 {
   {
     SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 3));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_sp_t_get () << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
   }
 }
 }
@@ -2462,15 +2461,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 2))) {
 {
   {
     SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 2));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_sp_t_get () << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
   }
 }
 }
@@ -2478,15 +2477,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 1))) {
 {
   {
     SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 1));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_sp_t_get () << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
   }
 }
 }
@@ -2494,15 +2493,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 0))) {
 {
   {
     SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 0));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_sp_t_get () << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
   }
 }
 }
@@ -2529,15 +2528,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 0))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 0), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 0), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
 }
 }
@@ -2545,15 +2544,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 1))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 1), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 1), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
 }
 }
@@ -2561,15 +2560,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 2))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 2), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 2) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 2), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
 }
 }
@@ -2577,15 +2576,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 3))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 3), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 3) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 3), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
 }
 }
@@ -2593,15 +2592,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 4))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 4), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 4) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 4), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
 }
 }
@@ -2609,15 +2608,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 5))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 5), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 5) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 5), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
 }
 }
@@ -2625,15 +2624,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 6))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 6), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 6) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 6), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
 }
 }
@@ -2641,15 +2640,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 7))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 7), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 7) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 7), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
 }
 }
@@ -2676,15 +2675,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 0))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 0), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 0), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
 }
 }
@@ -2692,15 +2691,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 1))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 1), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 1), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
 }
 }
@@ -2708,15 +2707,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 2))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 2), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 2) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 2), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
 }
 }
@@ -2724,15 +2723,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 3))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 3), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 3) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 3), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
 }
 }
@@ -2740,15 +2739,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 4))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 4), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 4) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 4), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
 }
 }
@@ -2756,15 +2755,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 5))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 5), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 5) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 5), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
 }
 }
@@ -2772,15 +2771,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 6))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 6), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 6) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 6), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
 }
 }
@@ -2788,29 +2787,29 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 7))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 7), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 7) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 7), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
 }
 }
   {
     USI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "sp-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_sp_t_set (opval);
   }
 }
 
@@ -2835,15 +2834,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 0))) {
 {
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 0));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rb) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
   }
 }
 }
@@ -2851,15 +2850,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 1))) {
 {
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 1));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rb) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
   }
 }
 }
@@ -2867,15 +2866,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 2))) {
 {
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 2));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rb) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
   }
 }
 }
@@ -2883,15 +2882,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 3))) {
 {
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 3));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rb) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
   }
 }
 }
@@ -2899,15 +2898,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 4))) {
 {
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 4));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rb) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
   }
 }
 }
@@ -2915,15 +2914,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 5))) {
 {
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 5));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rb) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
   }
 }
 }
@@ -2931,15 +2930,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 6))) {
 {
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 6));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rb) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
   }
 }
 }
@@ -2947,15 +2946,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 7))) {
 {
   {
     SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 7));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rb) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
   }
 }
 }
@@ -2982,15 +2981,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 0))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)));
-    current_cpu->thumb_h_gr_t_set (((UINT) 0), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 0), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rb) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
   }
 }
 }
@@ -2998,15 +2997,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 1))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)));
-    current_cpu->thumb_h_gr_t_set (((UINT) 1), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 1), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rb) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
   }
 }
 }
@@ -3014,15 +3013,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 2))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)));
-    current_cpu->thumb_h_gr_t_set (((UINT) 2), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 2) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 2), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rb) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
   }
 }
 }
@@ -3030,15 +3029,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 3))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)));
-    current_cpu->thumb_h_gr_t_set (((UINT) 3), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 3) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 3), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rb) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
   }
 }
 }
@@ -3046,15 +3045,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 4))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)));
-    current_cpu->thumb_h_gr_t_set (((UINT) 4), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 4) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 4), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rb) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
   }
 }
 }
@@ -3062,15 +3061,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 5))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)));
-    current_cpu->thumb_h_gr_t_set (((UINT) 5), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 5) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 5), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rb) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
   }
 }
 }
@@ -3078,15 +3077,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 6))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)));
-    current_cpu->thumb_h_gr_t_set (((UINT) 6), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 6) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 6), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rb) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
   }
 }
 }
@@ -3094,15 +3093,15 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 7))) {
 {
   {
     SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)));
-    current_cpu->thumb_h_gr_t_set (((UINT) 7), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << ((UINT) 7) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (((UINT) 7), opval);
   }
   {
     SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr-t" << '[' << FLD (f_bit10_rb) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
   }
 }
 }
@@ -3127,9 +3126,9 @@ thumb_sem_beq (arm7f_cpu* current_cpu, thumb_scache* sem)
 if (current_cpu->hardware.h_zbit) {
   {
     USI opval = FLD (i_soffset8);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 
@@ -3152,9 +3151,9 @@ thumb_sem_bne (arm7f_cpu* current_cpu, thumb_scache* sem)
 if (NOTBI (current_cpu->hardware.h_zbit)) {
   {
     USI opval = FLD (i_soffset8);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 
@@ -3177,9 +3176,9 @@ thumb_sem_bcs (arm7f_cpu* current_cpu, thumb_scache* sem)
 if (current_cpu->hardware.h_cbit) {
   {
     USI opval = FLD (i_soffset8);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 
@@ -3202,9 +3201,9 @@ thumb_sem_bcc (arm7f_cpu* current_cpu, thumb_scache* sem)
 if (NOTBI (current_cpu->hardware.h_cbit)) {
   {
     USI opval = FLD (i_soffset8);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 
@@ -3227,9 +3226,9 @@ thumb_sem_bmi (arm7f_cpu* current_cpu, thumb_scache* sem)
 if (current_cpu->hardware.h_nbit) {
   {
     USI opval = FLD (i_soffset8);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 
@@ -3252,9 +3251,9 @@ thumb_sem_bpl (arm7f_cpu* current_cpu, thumb_scache* sem)
 if (NOTBI (current_cpu->hardware.h_nbit)) {
   {
     USI opval = FLD (i_soffset8);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 
@@ -3277,9 +3276,9 @@ thumb_sem_bvs (arm7f_cpu* current_cpu, thumb_scache* sem)
 if (current_cpu->hardware.h_vbit) {
   {
     USI opval = FLD (i_soffset8);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 
@@ -3302,9 +3301,9 @@ thumb_sem_bvc (arm7f_cpu* current_cpu, thumb_scache* sem)
 if (NOTBI (current_cpu->hardware.h_vbit)) {
   {
     USI opval = FLD (i_soffset8);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 
@@ -3327,9 +3326,9 @@ thumb_sem_bhi (arm7f_cpu* current_cpu, thumb_scache* sem)
 if (ANDBI (current_cpu->hardware.h_cbit, NOTBI (current_cpu->hardware.h_zbit))) {
   {
     USI opval = FLD (i_soffset8);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 
@@ -3352,9 +3351,9 @@ thumb_sem_bls (arm7f_cpu* current_cpu, thumb_scache* sem)
 if (ORBI (NOTBI (current_cpu->hardware.h_cbit), current_cpu->hardware.h_zbit)) {
   {
     USI opval = FLD (i_soffset8);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 
@@ -3377,9 +3376,9 @@ thumb_sem_bge (arm7f_cpu* current_cpu, thumb_scache* sem)
 if (NOTBI (XORBI (current_cpu->hardware.h_nbit, current_cpu->hardware.h_vbit))) {
   {
     USI opval = FLD (i_soffset8);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 
@@ -3402,9 +3401,9 @@ thumb_sem_blt (arm7f_cpu* current_cpu, thumb_scache* sem)
 if (XORBI (current_cpu->hardware.h_nbit, current_cpu->hardware.h_vbit)) {
   {
     USI opval = FLD (i_soffset8);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 
@@ -3427,9 +3426,9 @@ thumb_sem_bgt (arm7f_cpu* current_cpu, thumb_scache* sem)
 if (NOTBI (ORBI (current_cpu->hardware.h_zbit, XORBI (current_cpu->hardware.h_nbit, current_cpu->hardware.h_vbit)))) {
   {
     USI opval = FLD (i_soffset8);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 
@@ -3452,9 +3451,9 @@ thumb_sem_ble (arm7f_cpu* current_cpu, thumb_scache* sem)
 if (ORBI (current_cpu->hardware.h_zbit, XORBI (current_cpu->hardware.h_nbit, current_cpu->hardware.h_vbit))) {
   {
     USI opval = FLD (i_soffset8);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 }
 
@@ -3476,9 +3475,9 @@ thumb_sem_swi (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     USI opval = current_cpu->thumb_swi (pc, FLD (f_value8));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 
   current_cpu->done_cti_insn (npc, status);
@@ -3499,9 +3498,9 @@ thumb_sem_b (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     USI opval = FLD (i_offset11);
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
 
   current_cpu->done_cti_insn (npc, status);
@@ -3522,9 +3521,9 @@ thumb_sem_bl_hi (arm7f_cpu* current_cpu, thumb_scache* sem)
 
   {
     SI opval = ADDSI (ADDSI (pc, 4), SLLSI (FLD (f_lbwl_hi), 12));
-    current_cpu->thumb_h_lr_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "lr-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_lr_t_set (opval);
   }
 
   current_cpu->done_insn (npc, status);
@@ -3548,15 +3547,15 @@ thumb_sem_bl_lo (arm7f_cpu* current_cpu, thumb_scache* sem)
   tmp_cur_pc = pc;
   {
     USI opval = ADDSI (current_cpu->thumb_h_lr_t_get (), SLLSI (FLD (f_lbwl_lo), 1));
-    current_cpu->branch (opval, npc, status);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "pc" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->branch (opval, npc, status);
   }
   {
     SI opval = ORSI (ADDSI (tmp_cur_pc, 2), 1);
-    current_cpu->thumb_h_lr_t_set (opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "lr-t" << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->thumb_h_lr_t_set (opval);
   }
 }
 
index 4294e93..9fa9160 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000, 2001, 2002, 2003 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -294,25 +294,13 @@ restart:
 {
   BI tmp_carry_out;
   tmp_carry_out = current_cpu->compute_carry_out_immshift (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), SHIFT_TYPE_LSL, FLD (f_offset5), current_cpu->hardware.h_cbit);
-  {
-    SI opval = SLLSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset5));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), SLLSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset5)));
 {
 {
-  {
-    BI opval = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
+current_cpu->hardware.h_nbit = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
 }
-  {
-    BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
-  }
+current_cpu->hardware.h_cbit = tmp_carry_out;
 }
 }
 
@@ -333,25 +321,13 @@ restart:
 {
   BI tmp_carry_out;
   tmp_carry_out = current_cpu->compute_carry_out_immshift (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), SHIFT_TYPE_LSR, FLD (f_offset5), current_cpu->hardware.h_cbit);
-  {
-    SI opval = SRLSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset5));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), SRLSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset5)));
 {
 {
-  {
-    BI opval = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
+current_cpu->hardware.h_nbit = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
 }
-  {
-    BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
-  }
+current_cpu->hardware.h_cbit = tmp_carry_out;
 }
 }
 
@@ -372,25 +348,13 @@ restart:
 {
   BI tmp_carry_out;
   tmp_carry_out = current_cpu->compute_carry_out_immshift (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), SHIFT_TYPE_ASR, FLD (f_offset5), current_cpu->hardware.h_cbit);
-  {
-    SI opval = SRASI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset5));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), SRASI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset5)));
 {
 {
-  {
-    BI opval = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
+current_cpu->hardware.h_nbit = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
 }
-  {
-    BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
-  }
+current_cpu->hardware.h_cbit = tmp_carry_out;
 }
 }
 
@@ -413,28 +377,13 @@ restart:
   SI tmp_result;
   tmp_result = ADDCSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->thumb_h_gr_t_get (FLD (f_rn)), 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = ADDCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->thumb_h_gr_t_get (FLD (f_rn)), 0);
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = ADDOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->thumb_h_gr_t_get (FLD (f_rn)), 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = ADDCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->thumb_h_gr_t_get (FLD (f_rn)), 0);
+current_cpu->hardware.h_vbit = ADDOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->thumb_h_gr_t_get (FLD (f_rn)), 0);
 }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->thumb_h_gr_t_get (FLD (f_rn)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->thumb_h_gr_t_get (FLD (f_rn))));
 }
 
 #undef FLD
@@ -456,28 +405,13 @@ restart:
   SI tmp_result;
   tmp_result = ADDCSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset3), 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = ADDCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset3), 0);
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = ADDOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset3), 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = ADDCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset3), 0);
+current_cpu->hardware.h_vbit = ADDOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset3), 0);
 }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset3));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset3)));
 }
 
 #undef FLD
@@ -499,28 +433,13 @@ restart:
   SI tmp_result;
   tmp_result = SUBCSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->thumb_h_gr_t_get (FLD (f_rn)), 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->thumb_h_gr_t_get (FLD (f_rn)), 0));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->thumb_h_gr_t_get (FLD (f_rn)), 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->thumb_h_gr_t_get (FLD (f_rn)), 0));
+current_cpu->hardware.h_vbit = SUBOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->thumb_h_gr_t_get (FLD (f_rn)), 0);
 }
-  {
-    SI opval = SUBSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->thumb_h_gr_t_get (FLD (f_rn)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), SUBSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->thumb_h_gr_t_get (FLD (f_rn))));
 }
 
 #undef FLD
@@ -542,28 +461,13 @@ restart:
   SI tmp_result;
   tmp_result = SUBCSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset3), 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset3), 0));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset3), 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset3), 0));
+current_cpu->hardware.h_vbit = SUBOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset3), 0);
 }
-  {
-    SI opval = SUBSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset3));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), SUBSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), FLD (f_offset3)));
 }
 
 #undef FLD
@@ -581,19 +485,10 @@ restart:
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 {
-  {
-    SI opval = FLD (f_offset8);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), FLD (f_offset8));
 {
-  {
-    BI opval = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), 0);
+current_cpu->hardware.h_nbit = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), 0);
 }
 }
 
@@ -615,23 +510,11 @@ restart:
   SI tmp_result;
   tmp_result = SUBCSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0));
+current_cpu->hardware.h_vbit = SUBOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0);
 }
 
 #undef FLD
@@ -653,28 +536,13 @@ restart:
   SI tmp_result;
   tmp_result = ADDCSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = ADDCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0);
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = ADDOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = ADDCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0);
+current_cpu->hardware.h_vbit = ADDOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0);
 }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8));
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8)));
 }
 
 #undef FLD
@@ -696,28 +564,13 @@ restart:
   SI tmp_result;
   tmp_result = SUBCSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0));
+current_cpu->hardware.h_vbit = SUBOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8), 0);
 }
-  {
-    SI opval = SUBSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8));
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), SUBSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)), FLD (f_offset8)));
 }
 
 #undef FLD
@@ -735,19 +588,10 @@ restart:
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 {
-  {
-    SI opval = ANDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), ANDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs))));
 {
-  {
-    BI opval = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
+current_cpu->hardware.h_nbit = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
 }
 }
 
@@ -766,19 +610,10 @@ restart:
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 {
-  {
-    SI opval = XORSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), XORSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs))));
 {
-  {
-    BI opval = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
+current_cpu->hardware.h_nbit = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
 }
 }
 
@@ -801,25 +636,13 @@ restart:
   SI tmp_result;
   tmp_carry_out = current_cpu->compute_carry_out_regshift (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), SHIFT_TYPE_LSL, current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->hardware.h_cbit);
   tmp_result = SLLSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
-  {
-    SI opval = tmp_result;
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), tmp_result);
 {
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
-  }
+current_cpu->hardware.h_cbit = tmp_carry_out;
 }
 }
 
@@ -842,25 +665,13 @@ restart:
   SI tmp_result;
   tmp_carry_out = current_cpu->compute_carry_out_regshift (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), SHIFT_TYPE_LSR, current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->hardware.h_cbit);
   tmp_result = SRLSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
-  {
-    SI opval = tmp_result;
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), tmp_result);
 {
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
-  }
+current_cpu->hardware.h_cbit = tmp_carry_out;
 }
 }
 
@@ -883,25 +694,13 @@ restart:
   SI tmp_result;
   tmp_carry_out = current_cpu->compute_carry_out_regshift (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), SHIFT_TYPE_ASR, current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->hardware.h_cbit);
   tmp_result = SRASI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
-  {
-    SI opval = tmp_result;
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), tmp_result);
 {
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
-  }
+current_cpu->hardware.h_cbit = tmp_carry_out;
 }
 }
 
@@ -924,25 +723,13 @@ restart:
   SI tmp_result;
   tmp_carry_out = current_cpu->compute_carry_out_regshift (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), SHIFT_TYPE_ROR, current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->hardware.h_cbit);
   tmp_result = RORSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
-  {
-    SI opval = tmp_result;
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), tmp_result);
 {
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = tmp_carry_out;
-    current_cpu->hardware.h_cbit = opval;
-  }
+current_cpu->hardware.h_cbit = tmp_carry_out;
 }
 }
 
@@ -967,28 +754,13 @@ restart:
   SI tmp_result;
   tmp_result = ADDCSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->hardware.h_cbit);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = ADDCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->hardware.h_cbit);
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = ADDOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->hardware.h_cbit);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = ADDCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->hardware.h_cbit);
+current_cpu->hardware.h_vbit = ADDOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), current_cpu->hardware.h_cbit);
 }
-  {
-    SI opval = tmp_result;
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), tmp_result);
 }
 
 #undef FLD
@@ -1012,28 +784,13 @@ restart:
   SI tmp_result;
   tmp_result = SUBCSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), NOTBI (current_cpu->hardware.h_cbit));
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), NOTBI (current_cpu->hardware.h_cbit)));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), NOTBI (current_cpu->hardware.h_cbit));
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), NOTBI (current_cpu->hardware.h_cbit)));
+current_cpu->hardware.h_vbit = SUBOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), NOTBI (current_cpu->hardware.h_cbit));
 }
-  {
-    SI opval = tmp_result;
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), tmp_result);
 }
 
 #undef FLD
@@ -1054,14 +811,8 @@ restart:
   SI tmp_x;
   tmp_x = ANDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
 {
-  {
-    BI opval = EQSI (tmp_x, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_x, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_x, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_x, 0);
 }
 }
 
@@ -1086,28 +837,13 @@ restart:
   SI tmp_result;
   tmp_result = SUBCSI (0, current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (0, current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (0, current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (0, current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0));
+current_cpu->hardware.h_vbit = SUBOFSI (0, current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0);
 }
-  {
-    SI opval = tmp_result;
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), tmp_result);
 }
 
 #undef FLD
@@ -1128,23 +864,11 @@ restart:
   SI tmp_result;
   tmp_result = SUBCSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0));
+current_cpu->hardware.h_vbit = SUBOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0);
 }
 
 #undef FLD
@@ -1165,23 +889,11 @@ restart:
   SI tmp_result;
   tmp_result = ADDCSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = ADDCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0);
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = ADDOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = ADDCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0);
+current_cpu->hardware.h_vbit = ADDOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0);
 }
 
 #undef FLD
@@ -1199,19 +911,10 @@ restart:
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 {
-  {
-    SI opval = ORSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), ORSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs))));
 {
-  {
-    BI opval = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
+current_cpu->hardware.h_nbit = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
 }
 }
 
@@ -1230,19 +933,10 @@ restart:
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 {
-  {
-    SI opval = MULSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), MULSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs))));
 {
-  {
-    BI opval = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
+current_cpu->hardware.h_nbit = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
 }
 }
 
@@ -1261,19 +955,10 @@ restart:
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 {
-  {
-    SI opval = ANDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), INVSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs))));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), ANDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), INVSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)))));
 {
-  {
-    BI opval = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
+current_cpu->hardware.h_nbit = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
 }
 }
 
@@ -1292,19 +977,10 @@ restart:
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 {
-  {
-    SI opval = INVSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), INVSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs))));
 {
-  {
-    BI opval = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
+current_cpu->hardware.h_nbit = LTSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), 0);
 }
 }
 
@@ -1322,10 +998,7 @@ restart:
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs))));
 
 #undef FLD
     }
@@ -1344,15 +1017,9 @@ restart:
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 if (EQSI (FLD (f_rd), 7)) {
-  {
-    USI opval = ADDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ADDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs))); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
-    current_cpu->thumb_h_hiregs_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_hiregs_set (FLD (f_rd), ADDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs))));
 }
 
       pbb_br_npc = npc;
@@ -1374,15 +1041,9 @@ if (EQSI (FLD (f_rd), 7)) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 if (EQSI (FLD (f_rd), 7)) {
-  {
-    USI opval = ADDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = ADDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs))); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)));
-    current_cpu->thumb_h_hiregs_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_hiregs_set (FLD (f_rd), ADDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs))));
 }
 
       pbb_br_npc = npc;
@@ -1405,23 +1066,11 @@ if (EQSI (FLD (f_rd), 7)) {
   SI tmp_result;
   tmp_result = SUBCSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 0));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 0));
+current_cpu->hardware.h_vbit = SUBOFSI (current_cpu->thumb_h_gr_t_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 0);
 }
 
 #undef FLD
@@ -1442,23 +1091,11 @@ if (EQSI (FLD (f_rd), 7)) {
   SI tmp_result;
   tmp_result = SUBCSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0));
+current_cpu->hardware.h_vbit = SUBOFSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 0);
 }
 
 #undef FLD
@@ -1479,23 +1116,11 @@ if (EQSI (FLD (f_rd), 7)) {
   SI tmp_result;
   tmp_result = SUBCSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 0);
 {
-  {
-    BI opval = EQSI (tmp_result, 0);
-    current_cpu->hardware.h_zbit = opval;
-  }
-  {
-    BI opval = LTSI (tmp_result, 0);
-    current_cpu->hardware.h_nbit = opval;
-  }
+current_cpu->hardware.h_zbit = EQSI (tmp_result, 0);
+current_cpu->hardware.h_nbit = LTSI (tmp_result, 0);
 }
-  {
-    BI opval = NOTSI (SUBCFSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 0));
-    current_cpu->hardware.h_cbit = opval;
-  }
-  {
-    BI opval = SUBOFSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 0);
-    current_cpu->hardware.h_vbit = opval;
-  }
+current_cpu->hardware.h_cbit = NOTBI (SUBCFSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 0));
+current_cpu->hardware.h_vbit = SUBOFSI (current_cpu->thumb_h_hiregs_get (FLD (f_rd)), current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 0);
 }
 
 #undef FLD
@@ -1512,10 +1137,7 @@ if (EQSI (FLD (f_rd), 7)) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    SI opval = current_cpu->thumb_h_hiregs_get (FLD (f_rs));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), current_cpu->thumb_h_hiregs_get (FLD (f_rs)));
 
 #undef FLD
     }
@@ -1534,15 +1156,9 @@ if (EQSI (FLD (f_rd), 7)) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 if (EQSI (FLD (f_rd), 7)) {
-  {
-    USI opval = current_cpu->thumb_h_gr_t_get (FLD (f_rs));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->thumb_h_gr_t_get (FLD (f_rs)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (FLD (f_rs));
-    current_cpu->thumb_h_hiregs_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_hiregs_set (FLD (f_rd), current_cpu->thumb_h_gr_t_get (FLD (f_rs)));
 }
 
       pbb_br_npc = npc;
@@ -1564,15 +1180,9 @@ if (EQSI (FLD (f_rd), 7)) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 if (EQSI (FLD (f_rd), 7)) {
-  {
-    USI opval = current_cpu->thumb_h_hiregs_get (FLD (f_rs));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->thumb_h_hiregs_get (FLD (f_rs)); br_status = BRANCH_UNCACHEABLE;
 } else {
-  {
-    SI opval = current_cpu->thumb_h_hiregs_get (FLD (f_rs));
-    current_cpu->thumb_h_hiregs_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_hiregs_set (FLD (f_rd), current_cpu->thumb_h_hiregs_get (FLD (f_rs)));
 }
 
       pbb_br_npc = npc;
@@ -1594,15 +1204,9 @@ if (EQSI (FLD (f_rd), 7)) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 {
-  {
-    USI opval = current_cpu->thumb_h_gr_t_get (FLD (f_rs));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->thumb_h_gr_t_get (FLD (f_rs)); br_status = BRANCH_UNCACHEABLE;
 if (NOTSI (ANDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 1))) {
-  {
-    BI opval = 0;
-    current_cpu->h_tbit_set (opval);
-  }
+current_cpu->h_tbit_set (0);
 }
 }
 
@@ -1625,15 +1229,9 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rs)), 1))) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 {
-  {
-    USI opval = current_cpu->thumb_h_hiregs_get (FLD (f_rs));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->thumb_h_hiregs_get (FLD (f_rs)); br_status = BRANCH_UNCACHEABLE;
 if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
-  {
-    BI opval = 0;
-    current_cpu->h_tbit_set (opval);
-  }
+current_cpu->h_tbit_set (0);
 }
 }
 
@@ -1653,10 +1251,7 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    SI opval = current_cpu->GETMEMSI (pc, ADDSI (ANDSI (ADDSI (pc, 4), -4), FLD (f_word8)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), current_cpu->GETMEMSI (pc, ADDSI (ANDSI (ADDSI (pc, 4), -4), FLD (f_word8))));
 
 #undef FLD
     }
@@ -1672,10 +1267,7 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (FLD (f_rd));
-    current_cpu->SETMEMSI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro))), opval);
-  }
+current_cpu->SETMEMSI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro))), current_cpu->thumb_h_gr_t_get (FLD (f_rd)));
 
 #undef FLD
     }
@@ -1691,10 +1283,7 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    QI opval = current_cpu->thumb_h_gr_t_get (FLD (f_rd));
-    current_cpu->SETMEMQI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro))), opval);
-  }
+current_cpu->SETMEMQI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro))), current_cpu->thumb_h_gr_t_get (FLD (f_rd)));
 
 #undef FLD
     }
@@ -1710,10 +1299,7 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    SI opval = current_cpu->GETMEMSI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro))));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), current_cpu->GETMEMSI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro)))));
 
 #undef FLD
     }
@@ -1729,10 +1315,7 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro)))));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), ZEXTQISI (current_cpu->GETMEMQI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro))))));
 
 #undef FLD
     }
@@ -1748,10 +1331,7 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    HI opval = current_cpu->thumb_h_gr_t_get (FLD (f_rd));
-    current_cpu->SETMEMHI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro))), opval);
-  }
+current_cpu->SETMEMHI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro))), current_cpu->thumb_h_gr_t_get (FLD (f_rd)));
 
 #undef FLD
     }
@@ -1767,10 +1347,7 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro)))));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), ZEXTHISI (current_cpu->GETMEMHI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro))))));
 
 #undef FLD
     }
@@ -1786,10 +1363,7 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    SI opval = EXTQISI (current_cpu->GETMEMQI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro)))));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), EXTQISI (current_cpu->GETMEMQI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro))))));
 
 #undef FLD
     }
@@ -1805,10 +1379,7 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    SI opval = EXTHISI (current_cpu->GETMEMHI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro)))));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), EXTHISI (current_cpu->GETMEMHI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), current_cpu->thumb_h_gr_t_get (FLD (f_ro))))));
 
 #undef FLD
     }
@@ -1824,10 +1395,7 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (FLD (f_rd));
-    current_cpu->SETMEMSI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5_7)), opval);
-  }
+current_cpu->SETMEMSI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5_7)), current_cpu->thumb_h_gr_t_get (FLD (f_rd)));
 
 #undef FLD
     }
@@ -1843,10 +1411,7 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    SI opval = current_cpu->GETMEMSI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5_7)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), current_cpu->GETMEMSI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5_7))));
 
 #undef FLD
     }
@@ -1862,10 +1427,7 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    QI opval = current_cpu->thumb_h_gr_t_get (FLD (f_rd));
-    current_cpu->SETMEMQI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5)), opval);
-  }
+current_cpu->SETMEMQI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5)), current_cpu->thumb_h_gr_t_get (FLD (f_rd)));
 
 #undef FLD
     }
@@ -1881,10 +1443,7 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    SI opval = ZEXTQISI (current_cpu->GETMEMQI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5))));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), ZEXTQISI (current_cpu->GETMEMQI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5)))));
 
 #undef FLD
     }
@@ -1900,10 +1459,7 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    HI opval = current_cpu->thumb_h_gr_t_get (FLD (f_rd));
-    current_cpu->SETMEMHI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5_6)), opval);
-  }
+current_cpu->SETMEMHI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5_6)), current_cpu->thumb_h_gr_t_get (FLD (f_rd)));
 
 #undef FLD
     }
@@ -1919,10 +1475,7 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    SI opval = ZEXTHISI (current_cpu->GETMEMHI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5_6))));
-    current_cpu->thumb_h_gr_t_set (FLD (f_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_rd), ZEXTHISI (current_cpu->GETMEMHI (pc, ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_rb)), FLD (f_offset5_6)))));
 
 #undef FLD
     }
@@ -1938,10 +1491,7 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd));
-    current_cpu->SETMEMSI (pc, ADDSI (current_cpu->thumb_h_sp_t_get (), FLD (f_word8)), opval);
-  }
+current_cpu->SETMEMSI (pc, ADDSI (current_cpu->thumb_h_sp_t_get (), FLD (f_word8)), current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rd)));
 
 #undef FLD
     }
@@ -1957,10 +1507,7 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    SI opval = current_cpu->GETMEMSI (pc, ADDSI (current_cpu->thumb_h_sp_t_get (), FLD (f_word8)));
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), current_cpu->GETMEMSI (pc, ADDSI (current_cpu->thumb_h_sp_t_get (), FLD (f_word8))));
 
 #undef FLD
     }
@@ -1976,10 +1523,7 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    SI opval = ADDSI (ANDSI (ADDSI (pc, 4), -4), FLD (f_word8));
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), ADDSI (ANDSI (ADDSI (pc, 4), -4), FLD (f_word8)));
 
 #undef FLD
     }
@@ -1995,10 +1539,7 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), FLD (f_word8));
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), opval);
-  }
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rd), ADDSI (current_cpu->thumb_h_sp_t_get (), FLD (f_word8)));
 
 #undef FLD
     }
@@ -2014,10 +1555,7 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), FLD (f_sword7));
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
+current_cpu->thumb_h_sp_t_set (ADDSI (current_cpu->thumb_h_sp_t_get (), FLD (f_sword7)));
 
 #undef FLD
     }
@@ -2033,10 +1571,7 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), FLD (f_sword7));
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
+current_cpu->thumb_h_sp_t_set (SUBSI (current_cpu->thumb_h_sp_t_get (), FLD (f_sword7)));
 
 #undef FLD
     }
@@ -2055,98 +1590,50 @@ if (NOTSI (ANDSI (current_cpu->thumb_h_hiregs_get (FLD (f_rs)), 1))) {
 {
 if (ANDSI (FLD (f_rlist), SLLSI (1, 7))) {
 {
-  {
-    SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 7));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
-  }
+current_cpu->thumb_h_sp_t_set (SUBSI (current_cpu->thumb_h_sp_t_get (), 4));
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), current_cpu->thumb_h_gr_t_get (((UINT) 7)));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 6))) {
 {
-  {
-    SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 6));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
-  }
+current_cpu->thumb_h_sp_t_set (SUBSI (current_cpu->thumb_h_sp_t_get (), 4));
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), current_cpu->thumb_h_gr_t_get (((UINT) 6)));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 5))) {
 {
-  {
-    SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 5));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
-  }
+current_cpu->thumb_h_sp_t_set (SUBSI (current_cpu->thumb_h_sp_t_get (), 4));
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), current_cpu->thumb_h_gr_t_get (((UINT) 5)));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 4))) {
 {
-  {
-    SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 4));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
-  }
+current_cpu->thumb_h_sp_t_set (SUBSI (current_cpu->thumb_h_sp_t_get (), 4));
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), current_cpu->thumb_h_gr_t_get (((UINT) 4)));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 3))) {
 {
-  {
-    SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 3));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
-  }
+current_cpu->thumb_h_sp_t_set (SUBSI (current_cpu->thumb_h_sp_t_get (), 4));
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), current_cpu->thumb_h_gr_t_get (((UINT) 3)));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 2))) {
 {
-  {
-    SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 2));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
-  }
+current_cpu->thumb_h_sp_t_set (SUBSI (current_cpu->thumb_h_sp_t_get (), 4));
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), current_cpu->thumb_h_gr_t_get (((UINT) 2)));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 1))) {
 {
-  {
-    SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 1));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
-  }
+current_cpu->thumb_h_sp_t_set (SUBSI (current_cpu->thumb_h_sp_t_get (), 4));
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), current_cpu->thumb_h_gr_t_get (((UINT) 1)));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 0))) {
 {
-  {
-    SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 0));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
-  }
+current_cpu->thumb_h_sp_t_set (SUBSI (current_cpu->thumb_h_sp_t_get (), 4));
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), current_cpu->thumb_h_gr_t_get (((UINT) 0)));
 }
 }
 }
@@ -2166,108 +1653,54 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 0))) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 {
-  {
-    SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
-  {
-    SI opval = current_cpu->thumb_h_lr_t_get ();
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
-  }
+current_cpu->thumb_h_sp_t_set (SUBSI (current_cpu->thumb_h_sp_t_get (), 4));
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), current_cpu->thumb_h_lr_t_get ());
 if (ANDSI (FLD (f_rlist), SLLSI (1, 7))) {
 {
-  {
-    SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 7));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
-  }
+current_cpu->thumb_h_sp_t_set (SUBSI (current_cpu->thumb_h_sp_t_get (), 4));
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), current_cpu->thumb_h_gr_t_get (((UINT) 7)));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 6))) {
 {
-  {
-    SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 6));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
-  }
+current_cpu->thumb_h_sp_t_set (SUBSI (current_cpu->thumb_h_sp_t_get (), 4));
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), current_cpu->thumb_h_gr_t_get (((UINT) 6)));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 5))) {
 {
-  {
-    SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 5));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
-  }
+current_cpu->thumb_h_sp_t_set (SUBSI (current_cpu->thumb_h_sp_t_get (), 4));
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), current_cpu->thumb_h_gr_t_get (((UINT) 5)));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 4))) {
 {
-  {
-    SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 4));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
-  }
+current_cpu->thumb_h_sp_t_set (SUBSI (current_cpu->thumb_h_sp_t_get (), 4));
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), current_cpu->thumb_h_gr_t_get (((UINT) 4)));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 3))) {
 {
-  {
-    SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 3));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
-  }
+current_cpu->thumb_h_sp_t_set (SUBSI (current_cpu->thumb_h_sp_t_get (), 4));
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), current_cpu->thumb_h_gr_t_get (((UINT) 3)));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 2))) {
 {
-  {
-    SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 2));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
-  }
+current_cpu->thumb_h_sp_t_set (SUBSI (current_cpu->thumb_h_sp_t_get (), 4));
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), current_cpu->thumb_h_gr_t_get (((UINT) 2)));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 1))) {
 {
-  {
-    SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 1));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
-  }
+current_cpu->thumb_h_sp_t_set (SUBSI (current_cpu->thumb_h_sp_t_get (), 4));
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), current_cpu->thumb_h_gr_t_get (((UINT) 1)));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 0))) {
 {
-  {
-    SI opval = SUBSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 0));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), opval);
-  }
+current_cpu->thumb_h_sp_t_set (SUBSI (current_cpu->thumb_h_sp_t_get (), 4));
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_sp_t_get (), current_cpu->thumb_h_gr_t_get (((UINT) 0)));
 }
 }
 }
@@ -2289,98 +1722,50 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 0))) {
 {
 if (ANDSI (FLD (f_rlist), SLLSI (1, 0))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 0), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 0), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ()));
+current_cpu->thumb_h_sp_t_set (ADDSI (current_cpu->thumb_h_sp_t_get (), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 1))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 1), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 1), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ()));
+current_cpu->thumb_h_sp_t_set (ADDSI (current_cpu->thumb_h_sp_t_get (), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 2))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 2), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 2), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ()));
+current_cpu->thumb_h_sp_t_set (ADDSI (current_cpu->thumb_h_sp_t_get (), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 3))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 3), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 3), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ()));
+current_cpu->thumb_h_sp_t_set (ADDSI (current_cpu->thumb_h_sp_t_get (), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 4))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 4), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 4), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ()));
+current_cpu->thumb_h_sp_t_set (ADDSI (current_cpu->thumb_h_sp_t_get (), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 5))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 5), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 5), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ()));
+current_cpu->thumb_h_sp_t_set (ADDSI (current_cpu->thumb_h_sp_t_get (), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 6))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 6), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 6), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ()));
+current_cpu->thumb_h_sp_t_set (ADDSI (current_cpu->thumb_h_sp_t_get (), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 7))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 7), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 7), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ()));
+current_cpu->thumb_h_sp_t_set (ADDSI (current_cpu->thumb_h_sp_t_get (), 4));
 }
 }
 }
@@ -2404,108 +1789,54 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 7))) {
 {
 if (ANDSI (FLD (f_rlist), SLLSI (1, 0))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 0), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 0), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ()));
+current_cpu->thumb_h_sp_t_set (ADDSI (current_cpu->thumb_h_sp_t_get (), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 1))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 1), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 1), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ()));
+current_cpu->thumb_h_sp_t_set (ADDSI (current_cpu->thumb_h_sp_t_get (), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 2))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 2), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 2), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ()));
+current_cpu->thumb_h_sp_t_set (ADDSI (current_cpu->thumb_h_sp_t_get (), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 3))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 3), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 3), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ()));
+current_cpu->thumb_h_sp_t_set (ADDSI (current_cpu->thumb_h_sp_t_get (), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 4))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 4), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 4), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ()));
+current_cpu->thumb_h_sp_t_set (ADDSI (current_cpu->thumb_h_sp_t_get (), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 5))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 5), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 5), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ()));
+current_cpu->thumb_h_sp_t_set (ADDSI (current_cpu->thumb_h_sp_t_get (), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 6))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 6), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 6), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ()));
+current_cpu->thumb_h_sp_t_set (ADDSI (current_cpu->thumb_h_sp_t_get (), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 7))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    current_cpu->thumb_h_gr_t_set (((UINT) 7), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 7), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ()));
+current_cpu->thumb_h_sp_t_set (ADDSI (current_cpu->thumb_h_sp_t_get (), 4));
 }
 }
-  {
-    USI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ());
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_sp_t_get (), 4);
-    current_cpu->thumb_h_sp_t_set (opval);
-  }
+npc = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_sp_t_get ()); br_status = BRANCH_UNCACHEABLE;
+current_cpu->thumb_h_sp_t_set (ADDSI (current_cpu->thumb_h_sp_t_get (), 4));
 }
 
       pbb_br_npc = npc;
@@ -2527,98 +1858,50 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 7))) {
 {
 if (ANDSI (FLD (f_rlist), SLLSI (1, 0))) {
 {
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 0));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
-  }
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), current_cpu->thumb_h_gr_t_get (((UINT) 0)));
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 1))) {
 {
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 1));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
-  }
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), current_cpu->thumb_h_gr_t_get (((UINT) 1)));
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 2))) {
 {
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 2));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
-  }
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), current_cpu->thumb_h_gr_t_get (((UINT) 2)));
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 3))) {
 {
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 3));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
-  }
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), current_cpu->thumb_h_gr_t_get (((UINT) 3)));
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 4))) {
 {
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 4));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
-  }
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), current_cpu->thumb_h_gr_t_get (((UINT) 4)));
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 5))) {
 {
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 5));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
-  }
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), current_cpu->thumb_h_gr_t_get (((UINT) 5)));
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 6))) {
 {
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 6));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
-  }
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), current_cpu->thumb_h_gr_t_get (((UINT) 6)));
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 7))) {
 {
-  {
-    SI opval = current_cpu->thumb_h_gr_t_get (((UINT) 7));
-    current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
-  }
+current_cpu->SETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), current_cpu->thumb_h_gr_t_get (((UINT) 7)));
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4));
 }
 }
 }
@@ -2640,98 +1923,50 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 7))) {
 {
 if (ANDSI (FLD (f_rlist), SLLSI (1, 0))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)));
-    current_cpu->thumb_h_gr_t_set (((UINT) 0), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 0), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb))));
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 1))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)));
-    current_cpu->thumb_h_gr_t_set (((UINT) 1), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 1), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb))));
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 2))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)));
-    current_cpu->thumb_h_gr_t_set (((UINT) 2), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 2), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb))));
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 3))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)));
-    current_cpu->thumb_h_gr_t_set (((UINT) 3), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 3), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb))));
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 4))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)));
-    current_cpu->thumb_h_gr_t_set (((UINT) 4), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 4), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb))));
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 5))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)));
-    current_cpu->thumb_h_gr_t_set (((UINT) 5), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 5), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb))));
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 6))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)));
-    current_cpu->thumb_h_gr_t_set (((UINT) 6), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 6), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb))));
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4));
 }
 }
 if (ANDSI (FLD (f_rlist), SLLSI (1, 7))) {
 {
-  {
-    SI opval = current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)));
-    current_cpu->thumb_h_gr_t_set (((UINT) 7), opval);
-  }
-  {
-    SI opval = ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4);
-    current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), opval);
-  }
+current_cpu->thumb_h_gr_t_set (((UINT) 7), current_cpu->GETMEMSI (pc, current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb))));
+current_cpu->thumb_h_gr_t_set (FLD (f_bit10_rb), ADDSI (current_cpu->thumb_h_gr_t_get (FLD (f_bit10_rb)), 4));
 }
 }
 }
@@ -2753,10 +1988,7 @@ if (ANDSI (FLD (f_rlist), SLLSI (1, 7))) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 if (current_cpu->hardware.h_zbit) {
-  {
-    USI opval = FLD (i_soffset8);
-    npc = opval; br_status = BRANCH_CACHEABLE;
-  }
+npc = FLD (i_soffset8); br_status = BRANCH_CACHEABLE;
 }
 
       pbb_br_npc = npc;
@@ -2778,10 +2010,7 @@ if (current_cpu->hardware.h_zbit) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 if (NOTBI (current_cpu->hardware.h_zbit)) {
-  {
-    USI opval = FLD (i_soffset8);
-    npc = opval; br_status = BRANCH_CACHEABLE;
-  }
+npc = FLD (i_soffset8); br_status = BRANCH_CACHEABLE;
 }
 
       pbb_br_npc = npc;
@@ -2803,10 +2032,7 @@ if (NOTBI (current_cpu->hardware.h_zbit)) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 if (current_cpu->hardware.h_cbit) {
-  {
-    USI opval = FLD (i_soffset8);
-    npc = opval; br_status = BRANCH_CACHEABLE;
-  }
+npc = FLD (i_soffset8); br_status = BRANCH_CACHEABLE;
 }
 
       pbb_br_npc = npc;
@@ -2828,10 +2054,7 @@ if (current_cpu->hardware.h_cbit) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 if (NOTBI (current_cpu->hardware.h_cbit)) {
-  {
-    USI opval = FLD (i_soffset8);
-    npc = opval; br_status = BRANCH_CACHEABLE;
-  }
+npc = FLD (i_soffset8); br_status = BRANCH_CACHEABLE;
 }
 
       pbb_br_npc = npc;
@@ -2853,10 +2076,7 @@ if (NOTBI (current_cpu->hardware.h_cbit)) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 if (current_cpu->hardware.h_nbit) {
-  {
-    USI opval = FLD (i_soffset8);
-    npc = opval; br_status = BRANCH_CACHEABLE;
-  }
+npc = FLD (i_soffset8); br_status = BRANCH_CACHEABLE;
 }
 
       pbb_br_npc = npc;
@@ -2878,10 +2098,7 @@ if (current_cpu->hardware.h_nbit) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 if (NOTBI (current_cpu->hardware.h_nbit)) {
-  {
-    USI opval = FLD (i_soffset8);
-    npc = opval; br_status = BRANCH_CACHEABLE;
-  }
+npc = FLD (i_soffset8); br_status = BRANCH_CACHEABLE;
 }
 
       pbb_br_npc = npc;
@@ -2903,10 +2120,7 @@ if (NOTBI (current_cpu->hardware.h_nbit)) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 if (current_cpu->hardware.h_vbit) {
-  {
-    USI opval = FLD (i_soffset8);
-    npc = opval; br_status = BRANCH_CACHEABLE;
-  }
+npc = FLD (i_soffset8); br_status = BRANCH_CACHEABLE;
 }
 
       pbb_br_npc = npc;
@@ -2928,10 +2142,7 @@ if (current_cpu->hardware.h_vbit) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 if (NOTBI (current_cpu->hardware.h_vbit)) {
-  {
-    USI opval = FLD (i_soffset8);
-    npc = opval; br_status = BRANCH_CACHEABLE;
-  }
+npc = FLD (i_soffset8); br_status = BRANCH_CACHEABLE;
 }
 
       pbb_br_npc = npc;
@@ -2953,10 +2164,7 @@ if (NOTBI (current_cpu->hardware.h_vbit)) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 if (ANDBI (current_cpu->hardware.h_cbit, NOTBI (current_cpu->hardware.h_zbit))) {
-  {
-    USI opval = FLD (i_soffset8);
-    npc = opval; br_status = BRANCH_CACHEABLE;
-  }
+npc = FLD (i_soffset8); br_status = BRANCH_CACHEABLE;
 }
 
       pbb_br_npc = npc;
@@ -2978,10 +2186,7 @@ if (ANDBI (current_cpu->hardware.h_cbit, NOTBI (current_cpu->hardware.h_zbit)))
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 if (ORBI (NOTBI (current_cpu->hardware.h_cbit), current_cpu->hardware.h_zbit)) {
-  {
-    USI opval = FLD (i_soffset8);
-    npc = opval; br_status = BRANCH_CACHEABLE;
-  }
+npc = FLD (i_soffset8); br_status = BRANCH_CACHEABLE;
 }
 
       pbb_br_npc = npc;
@@ -3003,10 +2208,7 @@ if (ORBI (NOTBI (current_cpu->hardware.h_cbit), current_cpu->hardware.h_zbit)) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 if (NOTBI (XORBI (current_cpu->hardware.h_nbit, current_cpu->hardware.h_vbit))) {
-  {
-    USI opval = FLD (i_soffset8);
-    npc = opval; br_status = BRANCH_CACHEABLE;
-  }
+npc = FLD (i_soffset8); br_status = BRANCH_CACHEABLE;
 }
 
       pbb_br_npc = npc;
@@ -3028,10 +2230,7 @@ if (NOTBI (XORBI (current_cpu->hardware.h_nbit, current_cpu->hardware.h_vbit)))
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 if (XORBI (current_cpu->hardware.h_nbit, current_cpu->hardware.h_vbit)) {
-  {
-    USI opval = FLD (i_soffset8);
-    npc = opval; br_status = BRANCH_CACHEABLE;
-  }
+npc = FLD (i_soffset8); br_status = BRANCH_CACHEABLE;
 }
 
       pbb_br_npc = npc;
@@ -3053,10 +2252,7 @@ if (XORBI (current_cpu->hardware.h_nbit, current_cpu->hardware.h_vbit)) {
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 if (NOTBI (ORBI (current_cpu->hardware.h_zbit, XORBI (current_cpu->hardware.h_nbit, current_cpu->hardware.h_vbit)))) {
-  {
-    USI opval = FLD (i_soffset8);
-    npc = opval; br_status = BRANCH_CACHEABLE;
-  }
+npc = FLD (i_soffset8); br_status = BRANCH_CACHEABLE;
 }
 
       pbb_br_npc = npc;
@@ -3078,10 +2274,7 @@ if (NOTBI (ORBI (current_cpu->hardware.h_zbit, XORBI (current_cpu->hardware.h_nb
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
 if (ORBI (current_cpu->hardware.h_zbit, XORBI (current_cpu->hardware.h_nbit, current_cpu->hardware.h_vbit))) {
-  {
-    USI opval = FLD (i_soffset8);
-    npc = opval; br_status = BRANCH_CACHEABLE;
-  }
+npc = FLD (i_soffset8); br_status = BRANCH_CACHEABLE;
 }
 
       pbb_br_npc = npc;
@@ -3102,10 +2295,7 @@ if (ORBI (current_cpu->hardware.h_zbit, XORBI (current_cpu->hardware.h_nbit, cur
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    USI opval = current_cpu->thumb_swi (pc, FLD (f_value8));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
+npc = current_cpu->thumb_swi (pc, FLD (f_value8)); br_status = BRANCH_UNCACHEABLE;
 
       pbb_br_npc = npc;
       pbb_br_status = br_status;
@@ -3125,10 +2315,7 @@ if (ORBI (current_cpu->hardware.h_zbit, XORBI (current_cpu->hardware.h_nbit, cur
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    USI opval = FLD (i_offset11);
-    npc = opval; br_status = BRANCH_CACHEABLE;
-  }
+npc = FLD (i_offset11); br_status = BRANCH_CACHEABLE;
 
       pbb_br_npc = npc;
       pbb_br_status = br_status;
@@ -3146,10 +2333,7 @@ if (ORBI (current_cpu->hardware.h_zbit, XORBI (current_cpu->hardware.h_nbit, cur
       vpc = vpc + 1;
       current_cpu->hardware.h_gr[((UINT) 15)] = ADDSI (pc, 4);
 
-  {
-    SI opval = ADDSI (ADDSI (pc, 4), SLLSI (FLD (f_lbwl_hi), 12));
-    current_cpu->thumb_h_lr_t_set (opval);
-  }
+current_cpu->thumb_h_lr_t_set (ADDSI (ADDSI (pc, 4), SLLSI (FLD (f_lbwl_hi), 12)));
 
 #undef FLD
     }
@@ -3170,14 +2354,8 @@ if (ORBI (current_cpu->hardware.h_zbit, XORBI (current_cpu->hardware.h_nbit, cur
 {
   SI tmp_cur_pc;
   tmp_cur_pc = pc;
-  {
-    USI opval = ADDSI (current_cpu->thumb_h_lr_t_get (), SLLSI (FLD (f_lbwl_lo), 1));
-    npc = opval; br_status = BRANCH_UNCACHEABLE;
-  }
-  {
-    SI opval = ORSI (ADDSI (tmp_cur_pc, 2), 1);
-    current_cpu->thumb_h_lr_t_set (opval);
-  }
+npc = ADDSI (current_cpu->thumb_h_lr_t_get (), SLLSI (FLD (f_lbwl_lo), 1)); br_status = BRANCH_UNCACHEABLE;
+current_cpu->thumb_h_lr_t_set (ORSI (ADDSI (tmp_cur_pc, 2), 1));
 }
 
       pbb_br_npc = npc;
index 89e14b9..eaa1e7f 100644 (file)
@@ -25,7 +25,7 @@
 
 #include "bfd.h"
 #include "dis-asm.h"
-#include "opcode/cgen-bitset.h"
+#include "cgen/bitset.h"
 
 // ansidecl.h interferes with this perfectly ordinary word
 #undef AND
index 18ecac3..06cbda4 100644 (file)
@@ -1,3 +1,8 @@
+2009-10-23  Doug Evans  <dje@sebabeach.org>
+
+       * m32r-desc.h: Regenerate.
+       * m32r-decode.cxx: Regenerate.
+
 2009-07-12  Doug Evans  <dje@sebabeach.org>
 
        * Makefile.am (cpudir): Define.
index 1b15a5d..6549746 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 394fe3d..591558c 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -281,69 +281,43 @@ m32rbf_scache::decode (m32rbf_cpu* current_cpu, PCADDR pc, m32rbf_insn_word base
       {
       case 0 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x0)
-          { itype = M32RBF_INSN_SUBV; m32rbf_extract_sfmt_addv (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_SUBV; m32rbf_extract_sfmt_addv (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x10)
-          { itype = M32RBF_INSN_SUBX; m32rbf_extract_sfmt_addx (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_SUBX; m32rbf_extract_sfmt_addx (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 2 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x20)
-          { itype = M32RBF_INSN_SUB; m32rbf_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_SUB; m32rbf_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 3 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x30)
-          { itype = M32RBF_INSN_NEG; m32rbf_extract_sfmt_mv (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_NEG; m32rbf_extract_sfmt_mv (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 4 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x40)
-          { itype = M32RBF_INSN_CMP; m32rbf_extract_sfmt_cmp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_CMP; m32rbf_extract_sfmt_cmp (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 5 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x50)
-          { itype = M32RBF_INSN_CMPU; m32rbf_extract_sfmt_cmp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_CMPU; m32rbf_extract_sfmt_cmp (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 8 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x80)
-          { itype = M32RBF_INSN_ADDV; m32rbf_extract_sfmt_addv (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_ADDV; m32rbf_extract_sfmt_addv (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 9 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x90)
-          { itype = M32RBF_INSN_ADDX; m32rbf_extract_sfmt_addx (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_ADDX; m32rbf_extract_sfmt_addx (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 10 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0xa0)
-          { itype = M32RBF_INSN_ADD; m32rbf_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_ADD; m32rbf_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 11 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0xb0)
-          { itype = M32RBF_INSN_NOT; m32rbf_extract_sfmt_mv (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_NOT; m32rbf_extract_sfmt_mv (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 12 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0xc0)
-          { itype = M32RBF_INSN_AND; m32rbf_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_AND; m32rbf_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 13 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0xd0)
-          { itype = M32RBF_INSN_XOR; m32rbf_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_XOR; m32rbf_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 14 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0xe0)
-          { itype = M32RBF_INSN_OR; m32rbf_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_OR; m32rbf_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 15 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf8f0) == 0xf0)
@@ -351,39 +325,25 @@ m32rbf_scache::decode (m32rbf_cpu* current_cpu, PCADDR pc, m32rbf_insn_word base
         itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 16 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x1000)
-          { itype = M32RBF_INSN_SRL; m32rbf_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_SRL; m32rbf_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 18 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x1020)
-          { itype = M32RBF_INSN_SRA; m32rbf_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_SRA; m32rbf_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 20 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x1040)
-          { itype = M32RBF_INSN_SLL; m32rbf_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_SLL; m32rbf_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 22 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x1060)
-          { itype = M32RBF_INSN_MUL; m32rbf_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_MUL; m32rbf_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 24 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x1080)
-          { itype = M32RBF_INSN_MV; m32rbf_extract_sfmt_mv (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_MV; m32rbf_extract_sfmt_mv (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 25 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x1090)
-          { itype = M32RBF_INSN_MVFC; m32rbf_extract_sfmt_mvfc (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_MVFC; m32rbf_extract_sfmt_mvfc (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 26 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x10a0)
-          { itype = M32RBF_INSN_MVTC; m32rbf_extract_sfmt_mvtc (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_MVTC; m32rbf_extract_sfmt_mvtc (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 28 :
         {
           unsigned int val = (((insn >> 24) & (1 << 0)));
@@ -414,109 +374,67 @@ m32rbf_scache::decode (m32rbf_cpu* current_cpu, PCADDR pc, m32rbf_insn_word base
         itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 32 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x2000)
-          { itype = M32RBF_INSN_STB; m32rbf_extract_sfmt_stb (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_STB; m32rbf_extract_sfmt_stb (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 34 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x2020)
-          { itype = M32RBF_INSN_STH; m32rbf_extract_sfmt_sth (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_STH; m32rbf_extract_sfmt_sth (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 36 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x2040)
-          { itype = M32RBF_INSN_ST; m32rbf_extract_sfmt_st (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_ST; m32rbf_extract_sfmt_st (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 37 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x2050)
-          { itype = M32RBF_INSN_UNLOCK; m32rbf_extract_sfmt_unlock (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_UNLOCK; m32rbf_extract_sfmt_unlock (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 38 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x2060)
-          { itype = M32RBF_INSN_ST_PLUS; m32rbf_extract_sfmt_st_plus (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_ST_PLUS; m32rbf_extract_sfmt_st_plus (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 39 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x2070)
-          { itype = M32RBF_INSN_ST_MINUS; m32rbf_extract_sfmt_st_plus (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_ST_MINUS; m32rbf_extract_sfmt_st_plus (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 40 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x2080)
-          { itype = M32RBF_INSN_LDB; m32rbf_extract_sfmt_ldb (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_LDB; m32rbf_extract_sfmt_ldb (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 41 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x2090)
-          { itype = M32RBF_INSN_LDUB; m32rbf_extract_sfmt_ldb (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_LDUB; m32rbf_extract_sfmt_ldb (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 42 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x20a0)
-          { itype = M32RBF_INSN_LDH; m32rbf_extract_sfmt_ldh (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_LDH; m32rbf_extract_sfmt_ldh (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 43 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x20b0)
-          { itype = M32RBF_INSN_LDUH; m32rbf_extract_sfmt_ldh (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_LDUH; m32rbf_extract_sfmt_ldh (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 44 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x20c0)
-          { itype = M32RBF_INSN_LD; m32rbf_extract_sfmt_ld (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_LD; m32rbf_extract_sfmt_ld (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 45 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x20d0)
-          { itype = M32RBF_INSN_LOCK; m32rbf_extract_sfmt_lock (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_LOCK; m32rbf_extract_sfmt_lock (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 46 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x20e0)
-          { itype = M32RBF_INSN_LD_PLUS; m32rbf_extract_sfmt_ld_plus (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_LD_PLUS; m32rbf_extract_sfmt_ld_plus (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 48 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x3000)
-          { itype = M32RBF_INSN_MULHI; m32rbf_extract_sfmt_mulhi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_MULHI; m32rbf_extract_sfmt_mulhi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 49 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x3010)
-          { itype = M32RBF_INSN_MULLO; m32rbf_extract_sfmt_mulhi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_MULLO; m32rbf_extract_sfmt_mulhi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 50 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x3020)
-          { itype = M32RBF_INSN_MULWHI; m32rbf_extract_sfmt_mulhi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_MULWHI; m32rbf_extract_sfmt_mulhi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 51 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x3030)
-          { itype = M32RBF_INSN_MULWLO; m32rbf_extract_sfmt_mulhi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_MULWLO; m32rbf_extract_sfmt_mulhi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 52 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x3040)
-          { itype = M32RBF_INSN_MACHI; m32rbf_extract_sfmt_machi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_MACHI; m32rbf_extract_sfmt_machi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 53 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x3050)
-          { itype = M32RBF_INSN_MACLO; m32rbf_extract_sfmt_machi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_MACLO; m32rbf_extract_sfmt_machi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 54 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x3060)
-          { itype = M32RBF_INSN_MACWHI; m32rbf_extract_sfmt_machi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_MACWHI; m32rbf_extract_sfmt_machi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 55 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0f0) == 0x3070)
-          { itype = M32RBF_INSN_MACWLO; m32rbf_extract_sfmt_machi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_MACWLO; m32rbf_extract_sfmt_machi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 64 : /* fall through */
       case 65 : /* fall through */
       case 66 : /* fall through */
@@ -534,27 +452,19 @@ m32rbf_scache::decode (m32rbf_cpu* current_cpu, PCADDR pc, m32rbf_insn_word base
       case 78 : /* fall through */
       case 79 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x4000)
-          { itype = M32RBF_INSN_ADDI; m32rbf_extract_sfmt_addi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_ADDI; m32rbf_extract_sfmt_addi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 80 : /* fall through */
       case 81 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0e0) == 0x5000)
-          { itype = M32RBF_INSN_SRLI; m32rbf_extract_sfmt_slli (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_SRLI; m32rbf_extract_sfmt_slli (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 82 : /* fall through */
       case 83 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0e0) == 0x5020)
-          { itype = M32RBF_INSN_SRAI; m32rbf_extract_sfmt_slli (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_SRAI; m32rbf_extract_sfmt_slli (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 84 : /* fall through */
       case 85 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf0e0) == 0x5040)
-          { itype = M32RBF_INSN_SLLI; m32rbf_extract_sfmt_slli (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_SLLI; m32rbf_extract_sfmt_slli (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 87 :
         {
           unsigned int val = (((insn >> 16) & (1 << 0)));
@@ -623,9 +533,7 @@ m32rbf_scache::decode (m32rbf_cpu* current_cpu, PCADDR pc, m32rbf_insn_word base
       case 110 : /* fall through */
       case 111 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x6000)
-          { itype = M32RBF_INSN_LDI8; m32rbf_extract_sfmt_ldi8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = M32RBF_INSN_LDI8; m32rbf_extract_sfmt_ldi8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 112 :
         {
           unsigned int val = (((insn >> 24) & (15 << 0)));
@@ -638,34 +546,22 @@ m32rbf_scache::decode (m32rbf_cpu* current_cpu, PCADDR pc, m32rbf_insn_word base
             itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x7100)
-              { itype = M32RBF_INSN_SETPSW; m32rbf_extract_sfmt_setpsw (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = M32RBF_INSN_SETPSW; m32rbf_extract_sfmt_setpsw (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x7200)
-              { itype = M32RBF_INSN_CLRPSW; m32rbf_extract_sfmt_clrpsw (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = M32RBF_INSN_CLRPSW; m32rbf_extract_sfmt_clrpsw (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 12 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x7c00)
-              { itype = M32RBF_INSN_BC8; m32rbf_extract_sfmt_bc8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = M32RBF_INSN_BC8; m32rbf_extract_sfmt_bc8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x7d00)
-              { itype = M32RBF_INSN_BNC8; m32rbf_extract_sfmt_bc8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = M32RBF_INSN_BNC8; m32rbf_extract_sfmt_bc8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 14 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x7e00)
-              { itype = M32RBF_INSN_BL8; m32rbf_extract_sfmt_bl8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = M32RBF_INSN_BL8; m32rbf_extract_sfmt_bl8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x7f00)
-              { itype = M32RBF_INSN_BRA8; m32rbf_extract_sfmt_bra8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = M32RBF_INSN_BRA8; m32rbf_extract_sfmt_bra8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -690,34 +586,22 @@ m32rbf_scache::decode (m32rbf_cpu* current_cpu, PCADDR pc, m32rbf_insn_word base
           {
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x7100)
-              { itype = M32RBF_INSN_SETPSW; m32rbf_extract_sfmt_setpsw (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = M32RBF_INSN_SETPSW; m32rbf_extract_sfmt_setpsw (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x7200)
-              { itype = M32RBF_INSN_CLRPSW; m32rbf_extract_sfmt_clrpsw (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = M32RBF_INSN_CLRPSW; m32rbf_extract_sfmt_clrpsw (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 12 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x7c00)
-              { itype = M32RBF_INSN_BC8; m32rbf_extract_sfmt_bc8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = M32RBF_INSN_BC8; m32rbf_extract_sfmt_bc8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x7d00)
-              { itype = M32RBF_INSN_BNC8; m32rbf_extract_sfmt_bc8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = M32RBF_INSN_BNC8; m32rbf_extract_sfmt_bc8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 14 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x7e00)
-              { itype = M32RBF_INSN_BL8; m32rbf_extract_sfmt_bl8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = M32RBF_INSN_BL8; m32rbf_extract_sfmt_bl8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x7f00)
-              { itype = M32RBF_INSN_BRA8; m32rbf_extract_sfmt_bra8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = M32RBF_INSN_BRA8; m32rbf_extract_sfmt_bra8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -729,26 +613,11 @@ m32rbf_scache::decode (m32rbf_cpu* current_cpu, PCADDR pc, m32rbf_insn_word base
         if ((entire_insn & 0xfff00000) == 0x80500000)
           { itype = M32RBF_INSN_CMPUI; m32rbf_extract_sfmt_cmpi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 136 :
-        if ((entire_insn & 0xf0f00000) == 0x80800000)
-          { itype = M32RBF_INSN_ADDV3; m32rbf_extract_sfmt_addv3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 138 :
-        if ((entire_insn & 0xf0f00000) == 0x80a00000)
-          { itype = M32RBF_INSN_ADD3; m32rbf_extract_sfmt_add3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 140 :
-        if ((entire_insn & 0xf0f00000) == 0x80c00000)
-          { itype = M32RBF_INSN_AND3; m32rbf_extract_sfmt_and3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 141 :
-        if ((entire_insn & 0xf0f00000) == 0x80d00000)
-          { itype = M32RBF_INSN_XOR3; m32rbf_extract_sfmt_and3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 142 :
-        if ((entire_insn & 0xf0f00000) == 0x80e00000)
-          { itype = M32RBF_INSN_OR3; m32rbf_extract_sfmt_or3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 136 : itype = M32RBF_INSN_ADDV3; m32rbf_extract_sfmt_addv3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 138 : itype = M32RBF_INSN_ADD3; m32rbf_extract_sfmt_add3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 140 : itype = M32RBF_INSN_AND3; m32rbf_extract_sfmt_and3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 141 : itype = M32RBF_INSN_XOR3; m32rbf_extract_sfmt_and3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 142 : itype = M32RBF_INSN_OR3; m32rbf_extract_sfmt_or3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 144 :
         if ((entire_insn & 0xf0f0ffff) == 0x90000000)
           { itype = M32RBF_INSN_DIV; m32rbf_extract_sfmt_div (this, current_cpu, pc, base_insn, entire_insn); goto done; }
@@ -765,34 +634,16 @@ m32rbf_scache::decode (m32rbf_cpu* current_cpu, PCADDR pc, m32rbf_insn_word base
         if ((entire_insn & 0xf0f0ffff) == 0x90300000)
           { itype = M32RBF_INSN_REMU; m32rbf_extract_sfmt_div (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 152 :
-        if ((entire_insn & 0xf0f00000) == 0x90800000)
-          { itype = M32RBF_INSN_SRL3; m32rbf_extract_sfmt_sll3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 154 :
-        if ((entire_insn & 0xf0f00000) == 0x90a00000)
-          { itype = M32RBF_INSN_SRA3; m32rbf_extract_sfmt_sll3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 156 :
-        if ((entire_insn & 0xf0f00000) == 0x90c00000)
-          { itype = M32RBF_INSN_SLL3; m32rbf_extract_sfmt_sll3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 152 : itype = M32RBF_INSN_SRL3; m32rbf_extract_sfmt_sll3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 154 : itype = M32RBF_INSN_SRA3; m32rbf_extract_sfmt_sll3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 156 : itype = M32RBF_INSN_SLL3; m32rbf_extract_sfmt_sll3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 159 :
         if ((entire_insn & 0xf0ff0000) == 0x90f00000)
           { itype = M32RBF_INSN_LDI16; m32rbf_extract_sfmt_ldi16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 160 :
-        if ((entire_insn & 0xf0f00000) == 0xa0000000)
-          { itype = M32RBF_INSN_STB_D; m32rbf_extract_sfmt_stb_d (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 162 :
-        if ((entire_insn & 0xf0f00000) == 0xa0200000)
-          { itype = M32RBF_INSN_STH_D; m32rbf_extract_sfmt_sth_d (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 164 :
-        if ((entire_insn & 0xf0f00000) == 0xa0400000)
-          { itype = M32RBF_INSN_ST_D; m32rbf_extract_sfmt_st_d (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 160 : itype = M32RBF_INSN_STB_D; m32rbf_extract_sfmt_stb_d (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 162 : itype = M32RBF_INSN_STH_D; m32rbf_extract_sfmt_sth_d (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 164 : itype = M32RBF_INSN_ST_D; m32rbf_extract_sfmt_st_d (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 166 :
         if ((entire_insn & 0xf8f00000) == 0xa0600000)
           { itype = M32RBF_INSN_BSET; m32rbf_extract_sfmt_bset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
@@ -801,34 +652,13 @@ m32rbf_scache::decode (m32rbf_cpu* current_cpu, PCADDR pc, m32rbf_insn_word base
         if ((entire_insn & 0xf8f00000) == 0xa0700000)
           { itype = M32RBF_INSN_BCLR; m32rbf_extract_sfmt_bset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 168 :
-        if ((entire_insn & 0xf0f00000) == 0xa0800000)
-          { itype = M32RBF_INSN_LDB_D; m32rbf_extract_sfmt_ldb_d (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 169 :
-        if ((entire_insn & 0xf0f00000) == 0xa0900000)
-          { itype = M32RBF_INSN_LDUB_D; m32rbf_extract_sfmt_ldb_d (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 170 :
-        if ((entire_insn & 0xf0f00000) == 0xa0a00000)
-          { itype = M32RBF_INSN_LDH_D; m32rbf_extract_sfmt_ldh_d (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 171 :
-        if ((entire_insn & 0xf0f00000) == 0xa0b00000)
-          { itype = M32RBF_INSN_LDUH_D; m32rbf_extract_sfmt_ldh_d (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 172 :
-        if ((entire_insn & 0xf0f00000) == 0xa0c00000)
-          { itype = M32RBF_INSN_LD_D; m32rbf_extract_sfmt_ld_d (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 176 :
-        if ((entire_insn & 0xf0f00000) == 0xb0000000)
-          { itype = M32RBF_INSN_BEQ; m32rbf_extract_sfmt_beq (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 177 :
-        if ((entire_insn & 0xf0f00000) == 0xb0100000)
-          { itype = M32RBF_INSN_BNE; m32rbf_extract_sfmt_beq (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 168 : itype = M32RBF_INSN_LDB_D; m32rbf_extract_sfmt_ldb_d (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 169 : itype = M32RBF_INSN_LDUB_D; m32rbf_extract_sfmt_ldb_d (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 170 : itype = M32RBF_INSN_LDH_D; m32rbf_extract_sfmt_ldh_d (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 171 : itype = M32RBF_INSN_LDUH_D; m32rbf_extract_sfmt_ldh_d (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 172 : itype = M32RBF_INSN_LD_D; m32rbf_extract_sfmt_ld_d (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 176 : itype = M32RBF_INSN_BEQ; m32rbf_extract_sfmt_beq (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 177 : itype = M32RBF_INSN_BNE; m32rbf_extract_sfmt_beq (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 184 :
         if ((entire_insn & 0xfff00000) == 0xb0800000)
           { itype = M32RBF_INSN_BEQZ; m32rbf_extract_sfmt_beqz (this, current_cpu, pc, base_insn, entire_insn); goto done; }
@@ -872,10 +702,7 @@ m32rbf_scache::decode (m32rbf_cpu* current_cpu, PCADDR pc, m32rbf_insn_word base
       case 236 : /* fall through */
       case 237 : /* fall through */
       case 238 : /* fall through */
-      case 239 :
-        if ((entire_insn & 0xf0000000) == 0xe0000000)
-          { itype = M32RBF_INSN_LD24; m32rbf_extract_sfmt_ld24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = M32RBF_INSN_X_INVALID; m32rbf_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 239 : itype = M32RBF_INSN_LD24; m32rbf_extract_sfmt_ld24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 240 : /* fall through */
       case 241 : /* fall through */
       case 242 : /* fall through */
index 8ba0076..312f045 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index c2eb24c..838b867 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 121d70c..7f72a05 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -12,7 +12,7 @@ This file is part of the Red Hat simulators.
 #ifndef DESC_M32R_H
 #define DESC_M32R_H
 
-#include "opcode/cgen-bitset.h"
+#include "cgen/bitset.h"
 
 namespace m32r {
 
index 8af4d4e..6397144 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -2559,7 +2559,7 @@ m32rbf_sem_clrpsw (m32rbf_cpu* current_cpu, m32rbf_scache* sem)
   PCADDR npc = pc + 2;
 
   {
-    SI opval = ANDSI (current_cpu->h_cr_get (((UINT) 0)), ORSI (INVBI (FLD (f_uimm8)), 65280));
+    USI opval = ANDSI (current_cpu->h_cr_get (((UINT) 0)), ORSI (ZEXTQISI (INVQI (FLD (f_uimm8))), 65280));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cr" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
     current_cpu->h_cr_set (((UINT) 0), opval);
@@ -2582,7 +2582,7 @@ m32rbf_sem_setpsw (m32rbf_cpu* current_cpu, m32rbf_scache* sem)
   PCADDR npc = pc + 2;
 
   {
-    SI opval = FLD (f_uimm8);
+    USI opval = FLD (f_uimm8);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cr" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
     current_cpu->h_cr_set (((UINT) 0), opval);
@@ -2605,7 +2605,7 @@ m32rbf_sem_bset (m32rbf_cpu* current_cpu, m32rbf_scache* sem)
   PCADDR npc = pc + 4;
 
   {
-    QI opval = ORQI (current_cpu->GETMEMQI (pc, ADDSI (* FLD (i_sr), FLD (f_simm16))), SLLSI (1, SUBSI (7, FLD (f_uimm3))));
+    QI opval = ORQI (current_cpu->GETMEMQI (pc, ADDSI (* FLD (i_sr), FLD (f_simm16))), SLLQI (1, SUBSI (7, FLD (f_uimm3))));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) ADDSI (* FLD (i_sr), FLD (f_simm16)) << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
     current_cpu->SETMEMQI (pc, ADDSI (* FLD (i_sr), FLD (f_simm16)), opval);
@@ -2628,7 +2628,7 @@ m32rbf_sem_bclr (m32rbf_cpu* current_cpu, m32rbf_scache* sem)
   PCADDR npc = pc + 4;
 
   {
-    QI opval = ANDQI (current_cpu->GETMEMQI (pc, ADDSI (* FLD (i_sr), FLD (f_simm16))), INVQI (SLLSI (1, SUBSI (7, FLD (f_uimm3)))));
+    QI opval = ANDQI (current_cpu->GETMEMQI (pc, ADDSI (* FLD (i_sr), FLD (f_simm16))), INVQI (SLLQI (1, SUBSI (7, FLD (f_uimm3)))));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) ADDSI (* FLD (i_sr), FLD (f_simm16)) << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
     current_cpu->SETMEMQI (pc, ADDSI (* FLD (i_sr), FLD (f_simm16)), opval);
@@ -2651,7 +2651,7 @@ m32rbf_sem_btst (m32rbf_cpu* current_cpu, m32rbf_scache* sem)
   PCADDR npc = pc + 2;
 
   {
-    BI opval = ANDQI (SRLSI (* FLD (i_sr), SUBSI (7, FLD (f_uimm3))), 1);
+    BI opval = ANDQI (SRLQI (* FLD (i_sr), SUBSI (7, FLD (f_uimm3))), 1);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "cond" << ":=0x" << hex << opval << dec << "  ";
     current_cpu->hardware.h_cond = opval;
index 4bff099..5273c4c 100644 (file)
@@ -1,3 +1,9 @@
+2009-10-23  Doug Evans  <dje@sebabeach.org>
+
+       * mep-desc.h: Regenerate.
+       * mep-decode.cxx: Regenerate.
+       * mep-core1-decode.cxx: Regenerate.
+
 2009-08-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        * Makefile.am (CPU_SOURCES): Replace mep-ivc2.cxx with
index 1fced55..67a9af8 100644 (file)
@@ -33,9 +33,9 @@ mepcop1_16_idesc mepcop1_16_idesc::idesc_table[MEPCOP1_16_INSN_CPMOVI_B_P0S_P1 +
   { mepcop1_16_sem_cpunpackl_b_P0S_P1, "CPUNPACKL_B_P0S_P1", MEPCOP1_16_INSN_CPUNPACKL_B_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_16_sem_cpunpackl_h_P0S_P1, "CPUNPACKL_H_P0S_P1", MEPCOP1_16_INSN_CPUNPACKL_H_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_16_sem_cpunpackl_w_P0S_P1, "CPUNPACKL_W_P0S_P1", MEPCOP1_16_INSN_CPUNPACKL_W_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
-  { mepcop1_16_sem_cpsel_P0S_P1, "CPSEL_P0S_P1", MEPCOP1_16_INSN_CPSEL_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
-  { mepcop1_16_sem_cpfsftbs0_P0S_P1, "CPFSFTBS0_P0S_P1", MEPCOP1_16_INSN_CPFSFTBS0_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
-  { mepcop1_16_sem_cpfsftbs1_P0S_P1, "CPFSFTBS1_P0S_P1", MEPCOP1_16_INSN_CPFSFTBS1_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
+  { mepcop1_16_sem_cpsel_P0S_P1, "CPSEL_P0S_P1", MEPCOP1_16_INSN_CPSEL_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
+  { mepcop1_16_sem_cpfsftbs0_P0S_P1, "CPFSFTBS0_P0S_P1", MEPCOP1_16_INSN_CPFSFTBS0_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
+  { mepcop1_16_sem_cpfsftbs1_P0S_P1, "CPFSFTBS1_P0S_P1", MEPCOP1_16_INSN_CPFSFTBS1_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_16_sem_cpmov_P0S_P1, "CPMOV_P0S_P1", MEPCOP1_16_INSN_CPMOV_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_16_sem_cpabsz_b_P0S_P1, "CPABSZ_B_P0S_P1", MEPCOP1_16_INSN_CPABSZ_B_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_16_sem_cpabsz_h_P0S_P1, "CPABSZ_H_P0S_P1", MEPCOP1_16_INSN_CPABSZ_H_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
@@ -48,7 +48,7 @@ mepcop1_16_idesc mepcop1_16_idesc::idesc_table[MEPCOP1_16_INSN_CPMOVI_B_P0S_P1 +
   { mepcop1_16_sem_cphadd_b_P0S_P1, "CPHADD_B_P0S_P1", MEPCOP1_16_INSN_CPHADD_B_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_16_sem_cphadd_h_P0S_P1, "CPHADD_H_P0S_P1", MEPCOP1_16_INSN_CPHADD_H_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_16_sem_cphadd_w_P0S_P1, "CPHADD_W_P0S_P1", MEPCOP1_16_INSN_CPHADD_W_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
-  { mepcop1_16_sem_cpccadd_b_P0S_P1, "CPCCADD_B_P0S_P1", MEPCOP1_16_INSN_CPCCADD_B_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V8QI, CRET_FIRSTCOPY, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
+  { mepcop1_16_sem_cpccadd_b_P0S_P1, "CPCCADD_B_P0S_P1", MEPCOP1_16_INSN_CPCCADD_B_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V8QI, CRET_FIRSTCOPY, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_16_sem_cpbcast_b_P0S_P1, "CPBCAST_B_P0S_P1", MEPCOP1_16_INSN_CPBCAST_B_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_16_sem_cpbcast_h_P0S_P1, "CPBCAST_H_P0S_P1", MEPCOP1_16_INSN_CPBCAST_H_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_16_sem_cpbcast_w_P0S_P1, "CPBCAST_W_P0S_P1", MEPCOP1_16_INSN_CPBCAST_W_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
@@ -68,12 +68,12 @@ mepcop1_16_idesc mepcop1_16_idesc::idesc_table[MEPCOP1_16_INSN_CPMOVI_B_P0S_P1 +
   { mepcop1_16_sem_cpcasth_w_P0S_P1, "CPCASTH_W_P0S_P1", MEPCOP1_16_INSN_CPCASTH_W_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_16_sem_cdcastuw_P0S_P1, "CDCASTUW_P0S_P1", MEPCOP1_16_INSN_CDCASTUW_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_16_sem_cdcastw_P0S_P1, "CDCASTW_P0S_P1", MEPCOP1_16_INSN_CDCASTW_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
-  { mepcop1_16_sem_cpmovfrcsar0_P0S_P1, "CPMOVFRCSAR0_P0S_P1", MEPCOP1_16_INSN_CPMOVFRCSAR0_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
-  { mepcop1_16_sem_cpmovfrcsar1_P0S_P1, "CPMOVFRCSAR1_P0S_P1", MEPCOP1_16_INSN_CPMOVFRCSAR1_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
-  { mepcop1_16_sem_cpmovfrcc_P0S_P1, "CPMOVFRCC_P0S_P1", MEPCOP1_16_INSN_CPMOVFRCC_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
-  { mepcop1_16_sem_cpmovtocsar0_P0S_P1, "CPMOVTOCSAR0_P0S_P1", MEPCOP1_16_INSN_CPMOVTOCSAR0_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
-  { mepcop1_16_sem_cpmovtocsar1_P0S_P1, "CPMOVTOCSAR1_P0S_P1", MEPCOP1_16_INSN_CPMOVTOCSAR1_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
-  { mepcop1_16_sem_cpmovtocc_P0S_P1, "CPMOVTOCC_P0S_P1", MEPCOP1_16_INSN_CPMOVTOCC_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
+  { mepcop1_16_sem_cpmovfrcsar0_P0S_P1, "CPMOVFRCSAR0_P0S_P1", MEPCOP1_16_INSN_CPMOVFRCSAR0_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
+  { mepcop1_16_sem_cpmovfrcsar1_P0S_P1, "CPMOVFRCSAR1_P0S_P1", MEPCOP1_16_INSN_CPMOVFRCSAR1_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
+  { mepcop1_16_sem_cpmovfrcc_P0S_P1, "CPMOVFRCC_P0S_P1", MEPCOP1_16_INSN_CPMOVFRCC_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
+  { mepcop1_16_sem_cpmovtocsar0_P0S_P1, "CPMOVTOCSAR0_P0S_P1", MEPCOP1_16_INSN_CPMOVTOCSAR0_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
+  { mepcop1_16_sem_cpmovtocsar1_P0S_P1, "CPMOVTOCSAR1_P0S_P1", MEPCOP1_16_INSN_CPMOVTOCSAR1_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
+  { mepcop1_16_sem_cpmovtocc_P0S_P1, "CPMOVTOCC_P0S_P1", MEPCOP1_16_INSN_CPMOVTOCC_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_16_sem_cpcmpeqz_b_P0S_P1, "CPCMPEQZ_B_P0S_P1", MEPCOP1_16_INSN_CPCMPEQZ_B_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V8QI, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_16_sem_cpcmpeq_b_P0S_P1, "CPCMPEQ_B_P0S_P1", MEPCOP1_16_INSN_CPCMPEQ_B_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V8QI, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_16_sem_cpcmpeq_h_P0S_P1, "CPCMPEQ_H_P0S_P1", MEPCOP1_16_INSN_CPCMPEQ_H_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V4HI, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
@@ -118,21 +118,21 @@ mepcop1_16_idesc mepcop1_16_idesc::idesc_table[MEPCOP1_16_INSN_CPMOVI_B_P0S_P1 +
   { mepcop1_16_sem_cpseta0_h_P0S, "CPSETA0_H_P0S", MEPCOP1_16_INSN_CPSETA0_H_P0S, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V4HI, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
   { mepcop1_16_sem_cpsetua0_w_P0S, "CPSETUA0_W_P0S", MEPCOP1_16_INSN_CPSETUA0_W_P0S, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V2SI, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
   { mepcop1_16_sem_cpsetla0_w_P0S, "CPSETLA0_W_P0S", MEPCOP1_16_INSN_CPSETLA0_W_P0S, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V2SI, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
-  { mepcop1_16_sem_cpmova0_b_P0S, "CPMOVA0_B_P0S", MEPCOP1_16_INSN_CPMOVA0_B_P0S, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
-  { mepcop1_16_sem_cpmovua0_h_P0S, "CPMOVUA0_H_P0S", MEPCOP1_16_INSN_CPMOVUA0_H_P0S, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
-  { mepcop1_16_sem_cpmovla0_h_P0S, "CPMOVLA0_H_P0S", MEPCOP1_16_INSN_CPMOVLA0_H_P0S, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
-  { mepcop1_16_sem_cpmovuua0_w_P0S, "CPMOVUUA0_W_P0S", MEPCOP1_16_INSN_CPMOVUUA0_W_P0S, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
-  { mepcop1_16_sem_cpmovula0_w_P0S, "CPMOVULA0_W_P0S", MEPCOP1_16_INSN_CPMOVULA0_W_P0S, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
-  { mepcop1_16_sem_cpmovlua0_w_P0S, "CPMOVLUA0_W_P0S", MEPCOP1_16_INSN_CPMOVLUA0_W_P0S, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
-  { mepcop1_16_sem_cpmovlla0_w_P0S, "CPMOVLLA0_W_P0S", MEPCOP1_16_INSN_CPMOVLLA0_W_P0S, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
-  { mepcop1_16_sem_cppacka0u_b_P0S, "CPPACKA0U_B_P0S", MEPCOP1_16_INSN_CPPACKA0U_B_P0S, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V8UQI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
-  { mepcop1_16_sem_cppacka0_b_P0S, "CPPACKA0_B_P0S", MEPCOP1_16_INSN_CPPACKA0_B_P0S, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
-  { mepcop1_16_sem_cppackua0_h_P0S, "CPPACKUA0_H_P0S", MEPCOP1_16_INSN_CPPACKUA0_H_P0S, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
-  { mepcop1_16_sem_cppackla0_h_P0S, "CPPACKLA0_H_P0S", MEPCOP1_16_INSN_CPPACKLA0_H_P0S, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
-  { mepcop1_16_sem_cppackua0_w_P0S, "CPPACKUA0_W_P0S", MEPCOP1_16_INSN_CPPACKUA0_W_P0S, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
-  { mepcop1_16_sem_cppackla0_w_P0S, "CPPACKLA0_W_P0S", MEPCOP1_16_INSN_CPPACKLA0_W_P0S, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
-  { mepcop1_16_sem_cpmovhua0_w_P0S, "CPMOVHUA0_W_P0S", MEPCOP1_16_INSN_CPMOVHUA0_W_P0S, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
-  { mepcop1_16_sem_cpmovhla0_w_P0S, "CPMOVHLA0_W_P0S", MEPCOP1_16_INSN_CPMOVHLA0_W_P0S, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
+  { mepcop1_16_sem_cpmova0_b_P0S, "CPMOVA0_B_P0S", MEPCOP1_16_INSN_CPMOVA0_B_P0S, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
+  { mepcop1_16_sem_cpmovua0_h_P0S, "CPMOVUA0_H_P0S", MEPCOP1_16_INSN_CPMOVUA0_H_P0S, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
+  { mepcop1_16_sem_cpmovla0_h_P0S, "CPMOVLA0_H_P0S", MEPCOP1_16_INSN_CPMOVLA0_H_P0S, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
+  { mepcop1_16_sem_cpmovuua0_w_P0S, "CPMOVUUA0_W_P0S", MEPCOP1_16_INSN_CPMOVUUA0_W_P0S, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
+  { mepcop1_16_sem_cpmovula0_w_P0S, "CPMOVULA0_W_P0S", MEPCOP1_16_INSN_CPMOVULA0_W_P0S, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
+  { mepcop1_16_sem_cpmovlua0_w_P0S, "CPMOVLUA0_W_P0S", MEPCOP1_16_INSN_CPMOVLUA0_W_P0S, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
+  { mepcop1_16_sem_cpmovlla0_w_P0S, "CPMOVLLA0_W_P0S", MEPCOP1_16_INSN_CPMOVLLA0_W_P0S, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
+  { mepcop1_16_sem_cppacka0u_b_P0S, "CPPACKA0U_B_P0S", MEPCOP1_16_INSN_CPPACKA0U_B_P0S, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V8UQI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
+  { mepcop1_16_sem_cppacka0_b_P0S, "CPPACKA0_B_P0S", MEPCOP1_16_INSN_CPPACKA0_B_P0S, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
+  { mepcop1_16_sem_cppackua0_h_P0S, "CPPACKUA0_H_P0S", MEPCOP1_16_INSN_CPPACKUA0_H_P0S, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
+  { mepcop1_16_sem_cppackla0_h_P0S, "CPPACKLA0_H_P0S", MEPCOP1_16_INSN_CPPACKLA0_H_P0S, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
+  { mepcop1_16_sem_cppackua0_w_P0S, "CPPACKUA0_W_P0S", MEPCOP1_16_INSN_CPPACKUA0_W_P0S, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
+  { mepcop1_16_sem_cppackla0_w_P0S, "CPPACKLA0_W_P0S", MEPCOP1_16_INSN_CPPACKLA0_W_P0S, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
+  { mepcop1_16_sem_cpmovhua0_w_P0S, "CPMOVHUA0_W_P0S", MEPCOP1_16_INSN_CPMOVHUA0_W_P0S, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
+  { mepcop1_16_sem_cpmovhla0_w_P0S, "CPMOVHLA0_W_P0S", MEPCOP1_16_INSN_CPMOVHLA0_W_P0S, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
   { mepcop1_16_sem_cpacsuma0_P0S, "CPACSUMA0_P0S", MEPCOP1_16_INSN_CPACSUMA0_P0S, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
   { mepcop1_16_sem_cpaccpa0_P0S, "CPACCPA0_P0S", MEPCOP1_16_INSN_CPACCPA0_P0S, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
   { mepcop1_16_sem_cpsrla0_P0S, "CPSRLA0_P0S", MEPCOP1_16_INSN_CPSRLA0_P0S, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x20" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S) } },
@@ -192,6 +192,10 @@ mepcop1_16_extract_sfmt_cpmovfrcsar0_P0S_P1 (mepcop1_16_scache* abuf, mep_ext1_c
 static void
 mepcop1_16_extract_sfmt_cpmovtocsar0_P0S_P1 (mepcop1_16_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_16_insn_word base_insn, mepcop1_16_insn_word entire_insn);
 static void
+mepcop1_16_extract_sfmt_cpmovtocsar1_P0S_P1 (mepcop1_16_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_16_insn_word base_insn, mepcop1_16_insn_word entire_insn);
+static void
+mepcop1_16_extract_sfmt_cpmovtocc_P0S_P1 (mepcop1_16_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_16_insn_word base_insn, mepcop1_16_insn_word entire_insn);
+static void
 mepcop1_16_extract_sfmt_cpcmpeqz_b_P0S_P1 (mepcop1_16_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_16_insn_word base_insn, mepcop1_16_insn_word entire_insn);
 static void
 mepcop1_16_extract_sfmt_cpadda0u_b_P0S (mepcop1_16_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_16_insn_word base_insn, mepcop1_16_insn_word entire_insn);
@@ -1330,7 +1334,7 @@ mepcop1_16_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_16_insn
             itype = MEPCOP1_16_INSN_X_INVALID; mepcop1_16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             if ((entire_insn & 0xfff83fff) == 0x882200)
-              { itype = MEPCOP1_16_INSN_CPMOVTOCC_P0S_P1; mepcop1_16_extract_sfmt_cpmovtocsar0_P0S_P1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+              { itype = MEPCOP1_16_INSN_CPMOVTOCC_P0S_P1; mepcop1_16_extract_sfmt_cpmovtocc_P0S_P1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
             itype = MEPCOP1_16_INSN_X_INVALID; mepcop1_16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEPCOP1_16_INSN_X_INVALID; mepcop1_16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
@@ -1392,7 +1396,7 @@ mepcop1_16_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_16_insn
             itype = MEPCOP1_16_INSN_X_INVALID; mepcop1_16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             if ((entire_insn & 0xfff83fff) == 0x883e00)
-              { itype = MEPCOP1_16_INSN_CPMOVTOCSAR1_P0S_P1; mepcop1_16_extract_sfmt_cpmovtocsar0_P0S_P1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+              { itype = MEPCOP1_16_INSN_CPMOVTOCSAR1_P0S_P1; mepcop1_16_extract_sfmt_cpmovtocsar1_P0S_P1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
             itype = MEPCOP1_16_INSN_X_INVALID; mepcop1_16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEPCOP1_16_INSN_X_INVALID; mepcop1_16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
@@ -2214,6 +2218,56 @@ mepcop1_16_extract_sfmt_cpmovtocsar0_P0S_P1 (mepcop1_16_scache* abuf, mep_ext1_c
 }
 
 void
+mepcop1_16_extract_sfmt_cpmovtocsar1_P0S_P1 (mepcop1_16_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_16_insn_word base_insn, mepcop1_16_insn_word entire_insn){
+    mepcop1_16_insn_word insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_cpmovi_b_P0S_P1.f
+    UINT f_ivc2_5u13;
+
+    f_ivc2_5u13 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_ivc2_5u13) = f_ivc2_5u13;
+  if (UNLIKELY(current_cpu->trace_extract_p))
+    {
+      current_cpu->trace_stream 
+        << "0x" << hex << pc << dec << " (sfmt_cpmovtocsar1_P0S_P1)\t"
+        << " f_ivc2_5u13:0x" << hex << f_ivc2_5u13 << dec
+        << endl;
+    }
+
+  /* Record the fields for profiling.  */
+  if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
+    {
+    }
+#undef FLD
+}
+
+void
+mepcop1_16_extract_sfmt_cpmovtocc_P0S_P1 (mepcop1_16_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_16_insn_word base_insn, mepcop1_16_insn_word entire_insn){
+    mepcop1_16_insn_word insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_cpmovi_b_P0S_P1.f
+    UINT f_ivc2_5u13;
+
+    f_ivc2_5u13 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_ivc2_5u13) = f_ivc2_5u13;
+  if (UNLIKELY(current_cpu->trace_extract_p))
+    {
+      current_cpu->trace_stream 
+        << "0x" << hex << pc << dec << " (sfmt_cpmovtocc_P0S_P1)\t"
+        << " f_ivc2_5u13:0x" << hex << f_ivc2_5u13 << dec
+        << endl;
+    }
+
+  /* Record the fields for profiling.  */
+  if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
+    {
+    }
+#undef FLD
+}
+
+void
 mepcop1_16_extract_sfmt_cpcmpeqz_b_P0S_P1 (mepcop1_16_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_16_insn_word base_insn, mepcop1_16_insn_word entire_insn){
     mepcop1_16_insn_word insn = entire_insn;
 #define FLD(f) abuf->fields.sfmt_cpadd3_b_P0S_P1.f
index 82278ac..f124843 100644 (file)
@@ -1347,6 +1347,12 @@ mepcop1_16_sem_cpmovtocsar0_P0S_P1 (mep_ext1_cpu* current_cpu, mepcop1_16_scache
 
 {
 current_cpu->check_option_cp (pc);
+  {
+    SI opval = 0;
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "ccr-ivc2" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_ccr_ivc2_set (((UINT) 0), opval);
+  }
 current_cpu->ivc2_cpmovtocsar0 (pc, current_cpu->hardware.h_cr64[FLD (f_ivc2_5u13)]);
 }
 
@@ -1369,6 +1375,12 @@ mepcop1_16_sem_cpmovtocsar1_P0S_P1 (mep_ext1_cpu* current_cpu, mepcop1_16_scache
 
 {
 current_cpu->check_option_cp (pc);
+  {
+    SI opval = 0;
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "ccr-ivc2" << '[' << ((UINT) 15) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_ccr_ivc2_set (((UINT) 15), opval);
+  }
 current_cpu->ivc2_cpmovtocsar1 (pc, current_cpu->hardware.h_cr64[FLD (f_ivc2_5u13)]);
 }
 
@@ -1391,6 +1403,12 @@ mepcop1_16_sem_cpmovtocc_P0S_P1 (mep_ext1_cpu* current_cpu, mepcop1_16_scache* s
 
 {
 current_cpu->check_option_cp (pc);
+  {
+    SI opval = 0;
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "ccr-ivc2" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_ccr_ivc2_set (((UINT) 1), opval);
+  }
 current_cpu->ivc2_cpmovtocc (pc, current_cpu->hardware.h_cr64[FLD (f_ivc2_5u13)]);
 }
 
index 45a5d1a..b896140 100644 (file)
@@ -41,10 +41,10 @@ mepcop1_32_idesc mepcop1_32_idesc::idesc_table[MEPCOP1_32_INSN_CPSMSBSLLA1_W_C3
   { mepcop1_32_sem_cpor3_C3, "CPOR3_C3", MEPCOP1_32_INSN_CPOR3_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_VECT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpnor3_C3, "CPNOR3_C3", MEPCOP1_32_INSN_CPNOR3_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_VECT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpxor3_C3, "CPXOR3_C3", MEPCOP1_32_INSN_CPXOR3_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_VECT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpsel_C3, "CPSEL_C3", MEPCOP1_32_INSN_CPSEL_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpsel_C3, "CPSEL_C3", MEPCOP1_32_INSN_CPSEL_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpfsftbi_C3, "CPFSFTBI_C3", MEPCOP1_32_INSN_CPFSFTBI_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpfsftbs0_C3, "CPFSFTBS0_C3", MEPCOP1_32_INSN_CPFSFTBS0_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpfsftbs1_C3, "CPFSFTBS1_C3", MEPCOP1_32_INSN_CPFSFTBS1_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpfsftbs0_C3, "CPFSFTBS0_C3", MEPCOP1_32_INSN_CPFSFTBS0_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpfsftbs1_C3, "CPFSFTBS1_C3", MEPCOP1_32_INSN_CPFSFTBS1_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpunpacku_b_C3, "CPUNPACKU_B_C3", MEPCOP1_32_INSN_CPUNPACKU_B_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V8UQI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpunpacku_h_C3, "CPUNPACKU_H_C3", MEPCOP1_32_INSN_CPUNPACKU_H_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4UHI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpunpacku_w_C3, "CPUNPACKU_W_C3", MEPCOP1_32_INSN_CPUNPACKU_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2USI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
@@ -75,12 +75,12 @@ mepcop1_32_idesc mepcop1_32_idesc::idesc_table[MEPCOP1_32_INSN_CPSMSBSLLA1_W_C3
   { mepcop1_32_sem_cpsll3_w_C3, "CPSLL3_W_C3", MEPCOP1_32_INSN_CPSLL3_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpssll3_w_C3, "CPSSLL3_W_C3", MEPCOP1_32_INSN_CPSSLL3_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cdsll3_C3, "CDSLL3_C3", MEPCOP1_32_INSN_CDSLL3_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpsla3_h_C3, "CPSLA3_H_C3", MEPCOP1_32_INSN_CPSLA3_H_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpsla3_w_C3, "CPSLA3_W_C3", MEPCOP1_32_INSN_CPSLA3_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpsadd3_h_C3, "CPSADD3_H_C3", MEPCOP1_32_INSN_CPSADD3_H_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpsadd3_w_C3, "CPSADD3_W_C3", MEPCOP1_32_INSN_CPSADD3_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpssub3_h_C3, "CPSSUB3_H_C3", MEPCOP1_32_INSN_CPSSUB3_H_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpssub3_w_C3, "CPSSUB3_W_C3", MEPCOP1_32_INSN_CPSSUB3_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpsla3_h_C3, "CPSLA3_H_C3", MEPCOP1_32_INSN_CPSLA3_H_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpsla3_w_C3, "CPSLA3_W_C3", MEPCOP1_32_INSN_CPSLA3_W_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpsadd3_h_C3, "CPSADD3_H_C3", MEPCOP1_32_INSN_CPSADD3_H_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpsadd3_w_C3, "CPSADD3_W_C3", MEPCOP1_32_INSN_CPSADD3_W_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpssub3_h_C3, "CPSSUB3_H_C3", MEPCOP1_32_INSN_CPSSUB3_H_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpssub3_w_C3, "CPSSUB3_W_C3", MEPCOP1_32_INSN_CPSSUB3_W_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpextuaddu3_b_C3, "CPEXTUADDU3_B_C3", MEPCOP1_32_INSN_CPEXTUADDU3_B_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpextuadd3_b_C3, "CPEXTUADD3_B_C3", MEPCOP1_32_INSN_CPEXTUADD3_B_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpextladdu3_b_C3, "CPEXTLADDU3_B_C3", MEPCOP1_32_INSN_CPEXTLADDU3_B_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
@@ -110,12 +110,12 @@ mepcop1_32_idesc mepcop1_32_idesc::idesc_table[MEPCOP1_32_INSN_CPSMSBSLLA1_W_C3
   { mepcop1_32_sem_cpmin3_h_C3, "CPMIN3_H_C3", MEPCOP1_32_INSN_CPMIN3_H_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpminu3_w_C3, "CPMINU3_W_C3", MEPCOP1_32_INSN_CPMINU3_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpmin3_w_C3, "CPMIN3_W_C3", MEPCOP1_32_INSN_CPMIN3_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpmovfrcsar0_C3, "CPMOVFRCSAR0_C3", MEPCOP1_32_INSN_CPMOVFRCSAR0_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpmovfrcsar1_C3, "CPMOVFRCSAR1_C3", MEPCOP1_32_INSN_CPMOVFRCSAR1_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpmovfrcc_C3, "CPMOVFRCC_C3", MEPCOP1_32_INSN_CPMOVFRCC_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpmovtocsar0_C3, "CPMOVTOCSAR0_C3", MEPCOP1_32_INSN_CPMOVTOCSAR0_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpmovtocsar1_C3, "CPMOVTOCSAR1_C3", MEPCOP1_32_INSN_CPMOVTOCSAR1_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpmovtocc_C3, "CPMOVTOCC_C3", MEPCOP1_32_INSN_CPMOVTOCC_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpmovfrcsar0_C3, "CPMOVFRCSAR0_C3", MEPCOP1_32_INSN_CPMOVFRCSAR0_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpmovfrcsar1_C3, "CPMOVFRCSAR1_C3", MEPCOP1_32_INSN_CPMOVFRCSAR1_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpmovfrcc_C3, "CPMOVFRCC_C3", MEPCOP1_32_INSN_CPMOVFRCC_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpmovtocsar0_C3, "CPMOVTOCSAR0_C3", MEPCOP1_32_INSN_CPMOVTOCSAR0_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpmovtocsar1_C3, "CPMOVTOCSAR1_C3", MEPCOP1_32_INSN_CPMOVTOCSAR1_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpmovtocc_C3, "CPMOVTOCC_C3", MEPCOP1_32_INSN_CPMOVTOCC_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpmov_C3, "CPMOV_C3", MEPCOP1_32_INSN_CPMOV_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpabsz_b_C3, "CPABSZ_B_C3", MEPCOP1_32_INSN_CPABSZ_B_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpabsz_h_C3, "CPABSZ_H_C3", MEPCOP1_32_INSN_CPABSZ_H_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
@@ -128,7 +128,7 @@ mepcop1_32_idesc mepcop1_32_idesc::idesc_table[MEPCOP1_32_INSN_CPSMSBSLLA1_W_C3
   { mepcop1_32_sem_cphadd_b_C3, "CPHADD_B_C3", MEPCOP1_32_INSN_CPHADD_B_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cphadd_h_C3, "CPHADD_H_C3", MEPCOP1_32_INSN_CPHADD_H_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cphadd_w_C3, "CPHADD_W_C3", MEPCOP1_32_INSN_CPHADD_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpccadd_b_C3, "CPCCADD_B_C3", MEPCOP1_32_INSN_CPCCADD_B_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V8QI, CRET_FIRSTCOPY, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpccadd_b_C3, "CPCCADD_B_C3", MEPCOP1_32_INSN_CPCCADD_B_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V8QI, CRET_FIRSTCOPY, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpbcast_b_C3, "CPBCAST_B_C3", MEPCOP1_32_INSN_CPBCAST_B_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpbcast_h_C3, "CPBCAST_H_C3", MEPCOP1_32_INSN_CPBCAST_H_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpbcast_w_C3, "CPBCAST_W_C3", MEPCOP1_32_INSN_CPBCAST_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
@@ -209,8 +209,8 @@ mepcop1_32_idesc mepcop1_32_idesc::idesc_table[MEPCOP1_32_INSN_CPSMSBSLLA1_W_C3
   { mepcop1_32_sem_cpslli3_h_C3, "CPSLLI3_H_C3", MEPCOP1_32_INSN_CPSLLI3_H_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpslli3_w_C3, "CPSLLI3_W_C3", MEPCOP1_32_INSN_CPSLLI3_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cdslli3_C3, "CDSLLI3_C3", MEPCOP1_32_INSN_CDSLLI3_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpslai3_h_C3, "CPSLAI3_H_C3", MEPCOP1_32_INSN_CPSLAI3_H_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpslai3_w_C3, "CPSLAI3_W_C3", MEPCOP1_32_INSN_CPSLAI3_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpslai3_h_C3, "CPSLAI3_H_C3", MEPCOP1_32_INSN_CPSLAI3_H_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpslai3_w_C3, "CPSLAI3_W_C3", MEPCOP1_32_INSN_CPSLAI3_W_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpclipiu3_w_C3, "CPCLIPIU3_W_C3", MEPCOP1_32_INSN_CPCLIPIU3_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpclipi3_w_C3, "CPCLIPI3_W_C3", MEPCOP1_32_INSN_CPCLIPI3_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cdclipiu3_C3, "CDCLIPIU3_C3", MEPCOP1_32_INSN_CDCLIPIU3_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
@@ -249,21 +249,21 @@ mepcop1_32_idesc mepcop1_32_idesc::idesc_table[MEPCOP1_32_INSN_CPSMSBSLLA1_W_C3
   { mepcop1_32_sem_cpseta1_h_C3, "CPSETA1_H_C3", MEPCOP1_32_INSN_CPSETA1_H_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpsetua1_w_C3, "CPSETUA1_W_C3", MEPCOP1_32_INSN_CPSETUA1_W_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpsetla1_w_C3, "CPSETLA1_W_C3", MEPCOP1_32_INSN_CPSETLA1_W_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpmova1_b_C3, "CPMOVA1_B_C3", MEPCOP1_32_INSN_CPMOVA1_B_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpmovua1_h_C3, "CPMOVUA1_H_C3", MEPCOP1_32_INSN_CPMOVUA1_H_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpmovla1_h_C3, "CPMOVLA1_H_C3", MEPCOP1_32_INSN_CPMOVLA1_H_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpmovuua1_w_C3, "CPMOVUUA1_W_C3", MEPCOP1_32_INSN_CPMOVUUA1_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpmovula1_w_C3, "CPMOVULA1_W_C3", MEPCOP1_32_INSN_CPMOVULA1_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpmovlua1_w_C3, "CPMOVLUA1_W_C3", MEPCOP1_32_INSN_CPMOVLUA1_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpmovlla1_w_C3, "CPMOVLLA1_W_C3", MEPCOP1_32_INSN_CPMOVLLA1_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cppacka1u_b_C3, "CPPACKA1U_B_C3", MEPCOP1_32_INSN_CPPACKA1U_B_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V8UQI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cppacka1_b_C3, "CPPACKA1_B_C3", MEPCOP1_32_INSN_CPPACKA1_B_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cppackua1_h_C3, "CPPACKUA1_H_C3", MEPCOP1_32_INSN_CPPACKUA1_H_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cppackla1_h_C3, "CPPACKLA1_H_C3", MEPCOP1_32_INSN_CPPACKLA1_H_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cppackua1_w_C3, "CPPACKUA1_W_C3", MEPCOP1_32_INSN_CPPACKUA1_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cppackla1_w_C3, "CPPACKLA1_W_C3", MEPCOP1_32_INSN_CPPACKLA1_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpmovhua1_w_C3, "CPMOVHUA1_W_C3", MEPCOP1_32_INSN_CPMOVHUA1_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
-  { mepcop1_32_sem_cpmovhla1_w_C3, "CPMOVHLA1_W_C3", MEPCOP1_32_INSN_CPMOVHLA1_W_C3, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpmova1_b_C3, "CPMOVA1_B_C3", MEPCOP1_32_INSN_CPMOVA1_B_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpmovua1_h_C3, "CPMOVUA1_H_C3", MEPCOP1_32_INSN_CPMOVUA1_H_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpmovla1_h_C3, "CPMOVLA1_H_C3", MEPCOP1_32_INSN_CPMOVLA1_H_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpmovuua1_w_C3, "CPMOVUUA1_W_C3", MEPCOP1_32_INSN_CPMOVUUA1_W_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpmovula1_w_C3, "CPMOVULA1_W_C3", MEPCOP1_32_INSN_CPMOVULA1_W_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpmovlua1_w_C3, "CPMOVLUA1_W_C3", MEPCOP1_32_INSN_CPMOVLUA1_W_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpmovlla1_w_C3, "CPMOVLLA1_W_C3", MEPCOP1_32_INSN_CPMOVLLA1_W_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cppacka1u_b_C3, "CPPACKA1U_B_C3", MEPCOP1_32_INSN_CPPACKA1U_B_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V8UQI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cppacka1_b_C3, "CPPACKA1_B_C3", MEPCOP1_32_INSN_CPPACKA1_B_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cppackua1_h_C3, "CPPACKUA1_H_C3", MEPCOP1_32_INSN_CPPACKUA1_H_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cppackla1_h_C3, "CPPACKLA1_H_C3", MEPCOP1_32_INSN_CPPACKLA1_H_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cppackua1_w_C3, "CPPACKUA1_W_C3", MEPCOP1_32_INSN_CPPACKUA1_W_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cppackla1_w_C3, "CPPACKLA1_W_C3", MEPCOP1_32_INSN_CPPACKLA1_W_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpmovhua1_w_C3, "CPMOVHUA1_W_C3", MEPCOP1_32_INSN_CPMOVHUA1_W_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
+  { mepcop1_32_sem_cpmovhla1_w_C3, "CPMOVHLA1_W_C3", MEPCOP1_32_INSN_CPMOVHLA1_W_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpsrla1_C3, "CPSRLA1_C3", MEPCOP1_32_INSN_CPSRLA1_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpsraa1_C3, "CPSRAA1_C3", MEPCOP1_32_INSN_CPSRAA1_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
   { mepcop1_32_sem_cpslla1_C3, "CPSLLA1_C3", MEPCOP1_32_INSN_CPSLLA1_C3, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x10" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_C3) } },
@@ -356,6 +356,10 @@ mepcop1_32_extract_sfmt_cpmovfrcsar0_C3 (mepcop1_32_scache* abuf, mep_ext1_cpu*
 static void
 mepcop1_32_extract_sfmt_cpmovtocsar0_C3 (mepcop1_32_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_32_insn_word base_insn, mepcop1_32_insn_word entire_insn);
 static void
+mepcop1_32_extract_sfmt_cpmovtocsar1_C3 (mepcop1_32_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_32_insn_word base_insn, mepcop1_32_insn_word entire_insn);
+static void
+mepcop1_32_extract_sfmt_cpmovtocc_C3 (mepcop1_32_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_32_insn_word base_insn, mepcop1_32_insn_word entire_insn);
+static void
 mepcop1_32_extract_sfmt_cpmov_C3 (mepcop1_32_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_32_insn_word base_insn, mepcop1_32_insn_word entire_insn);
 static void
 mepcop1_32_extract_sfmt_cpccadd_b_C3 (mepcop1_32_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_32_insn_word base_insn, mepcop1_32_insn_word entire_insn);
@@ -682,11 +686,11 @@ mepcop1_32_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_32_insn
             itype = MEPCOP1_32_INSN_X_INVALID; mepcop1_32_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 17 :
             if ((entire_insn & 0xfffff83f) == 0xf0078022)
-              { itype = MEPCOP1_32_INSN_CPMOVTOCC_C3; mepcop1_32_extract_sfmt_cpmovtocsar0_C3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+              { itype = MEPCOP1_32_INSN_CPMOVTOCC_C3; mepcop1_32_extract_sfmt_cpmovtocc_C3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
             itype = MEPCOP1_32_INSN_X_INVALID; mepcop1_32_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 31 :
             if ((entire_insn & 0xfffff83f) == 0xf007803e)
-              { itype = MEPCOP1_32_INSN_CPMOVTOCSAR1_C3; mepcop1_32_extract_sfmt_cpmovtocsar0_C3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+              { itype = MEPCOP1_32_INSN_CPMOVTOCSAR1_C3; mepcop1_32_extract_sfmt_cpmovtocsar1_C3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
             itype = MEPCOP1_32_INSN_X_INVALID; mepcop1_32_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEPCOP1_32_INSN_X_INVALID; mepcop1_32_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
@@ -2690,6 +2694,56 @@ mepcop1_32_extract_sfmt_cpmovtocsar0_C3 (mepcop1_32_scache* abuf, mep_ext1_cpu*
 }
 
 void
+mepcop1_32_extract_sfmt_cpmovtocsar1_C3 (mepcop1_32_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_32_insn_word base_insn, mepcop1_32_insn_word entire_insn){
+    mepcop1_32_insn_word insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_cpmoviu_h_C3.f
+    UINT f_ivc2_5u21;
+
+    f_ivc2_5u21 = EXTRACT_MSB0_UINT (insn, 32, 21, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_ivc2_5u21) = f_ivc2_5u21;
+  if (UNLIKELY(current_cpu->trace_extract_p))
+    {
+      current_cpu->trace_stream 
+        << "0x" << hex << pc << dec << " (sfmt_cpmovtocsar1_C3)\t"
+        << " f_ivc2_5u21:0x" << hex << f_ivc2_5u21 << dec
+        << endl;
+    }
+
+  /* Record the fields for profiling.  */
+  if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
+    {
+    }
+#undef FLD
+}
+
+void
+mepcop1_32_extract_sfmt_cpmovtocc_C3 (mepcop1_32_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_32_insn_word base_insn, mepcop1_32_insn_word entire_insn){
+    mepcop1_32_insn_word insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_cpmoviu_h_C3.f
+    UINT f_ivc2_5u21;
+
+    f_ivc2_5u21 = EXTRACT_MSB0_UINT (insn, 32, 21, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_ivc2_5u21) = f_ivc2_5u21;
+  if (UNLIKELY(current_cpu->trace_extract_p))
+    {
+      current_cpu->trace_stream 
+        << "0x" << hex << pc << dec << " (sfmt_cpmovtocc_C3)\t"
+        << " f_ivc2_5u21:0x" << hex << f_ivc2_5u21 << dec
+        << endl;
+    }
+
+  /* Record the fields for profiling.  */
+  if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
+    {
+    }
+#undef FLD
+}
+
+void
 mepcop1_32_extract_sfmt_cpmov_C3 (mepcop1_32_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_32_insn_word base_insn, mepcop1_32_insn_word entire_insn){
     mepcop1_32_insn_word insn = entire_insn;
 #define FLD(f) abuf->fields.sfmt_cpfsftbi_C3.f
index 0b0ab08..e0c8e08 100644 (file)
@@ -2480,6 +2480,12 @@ mepcop1_32_sem_cpmovtocsar0_C3 (mep_ext1_cpu* current_cpu, mepcop1_32_scache* se
 
 {
 current_cpu->check_option_cp (pc);
+  {
+    SI opval = 0;
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "ccr-ivc2" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_ccr_ivc2_set (((UINT) 0), opval);
+  }
 current_cpu->ivc2_cpmovtocsar0 (pc, current_cpu->hardware.h_cr64[FLD (f_ivc2_5u21)]);
 }
 
@@ -2502,6 +2508,12 @@ mepcop1_32_sem_cpmovtocsar1_C3 (mep_ext1_cpu* current_cpu, mepcop1_32_scache* se
 
 {
 current_cpu->check_option_cp (pc);
+  {
+    SI opval = 0;
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "ccr-ivc2" << '[' << ((UINT) 15) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_ccr_ivc2_set (((UINT) 15), opval);
+  }
 current_cpu->ivc2_cpmovtocsar1 (pc, current_cpu->hardware.h_cr64[FLD (f_ivc2_5u21)]);
 }
 
@@ -2524,6 +2536,12 @@ mepcop1_32_sem_cpmovtocc_C3 (mep_ext1_cpu* current_cpu, mepcop1_32_scache* sem)
 
 {
 current_cpu->check_option_cp (pc);
+  {
+    SI opval = 0;
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "ccr-ivc2" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_ccr_ivc2_set (((UINT) 1), opval);
+  }
 current_cpu->ivc2_cpmovtocc (pc, current_cpu->hardware.h_cr64[FLD (f_ivc2_5u21)]);
 }
 
index efc3e32..9f65531 100644 (file)
@@ -68,10 +68,10 @@ mepcop1_48_idesc mepcop1_48_idesc::idesc_table[MEPCOP1_48_INSN_CDMOVI_P0_P1 + 1]
   { mepcop1_48_sem_cpsub3_h_P0_P1, "CPSUB3_H_P0_P1", MEPCOP1_48_INSN_CPSUB3_H_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_48_sem_cpsub3_w_P0_P1, "CPSUB3_W_P0_P1", MEPCOP1_48_INSN_CPSUB3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_48_sem_cdsub3_P0_P1, "CDSUB3_P0_P1", MEPCOP1_48_INSN_CDSUB3_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
-  { mepcop1_48_sem_cpsadd3_h_P0_P1, "CPSADD3_H_P0_P1", MEPCOP1_48_INSN_CPSADD3_H_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
-  { mepcop1_48_sem_cpsadd3_w_P0_P1, "CPSADD3_W_P0_P1", MEPCOP1_48_INSN_CPSADD3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
-  { mepcop1_48_sem_cpssub3_h_P0_P1, "CPSSUB3_H_P0_P1", MEPCOP1_48_INSN_CPSSUB3_H_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
-  { mepcop1_48_sem_cpssub3_w_P0_P1, "CPSSUB3_W_P0_P1", MEPCOP1_48_INSN_CPSSUB3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
+  { mepcop1_48_sem_cpsadd3_h_P0_P1, "CPSADD3_H_P0_P1", MEPCOP1_48_INSN_CPSADD3_H_P0_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
+  { mepcop1_48_sem_cpsadd3_w_P0_P1, "CPSADD3_W_P0_P1", MEPCOP1_48_INSN_CPSADD3_W_P0_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
+  { mepcop1_48_sem_cpssub3_h_P0_P1, "CPSSUB3_H_P0_P1", MEPCOP1_48_INSN_CPSSUB3_H_P0_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
+  { mepcop1_48_sem_cpssub3_w_P0_P1, "CPSSUB3_W_P0_P1", MEPCOP1_48_INSN_CPSSUB3_W_P0_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_48_sem_cpextuaddu3_b_P0_P1, "CPEXTUADDU3_B_P0_P1", MEPCOP1_48_INSN_CPEXTUADDU3_B_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_48_sem_cpextuadd3_b_P0_P1, "CPEXTUADD3_B_P0_P1", MEPCOP1_48_INSN_CPEXTUADD3_B_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_48_sem_cpextladdu3_b_P0_P1, "CPEXTLADDU3_B_P0_P1", MEPCOP1_48_INSN_CPEXTLADDU3_B_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
@@ -129,8 +129,8 @@ mepcop1_48_idesc mepcop1_48_idesc::idesc_table[MEPCOP1_48_INSN_CDMOVI_P0_P1 + 1]
   { mepcop1_48_sem_cpsll3_w_P0_P1, "CPSLL3_W_P0_P1", MEPCOP1_48_INSN_CPSLL3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_48_sem_cpssll3_w_P0_P1, "CPSSLL3_W_P0_P1", MEPCOP1_48_INSN_CPSSLL3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_48_sem_cdsll3_P0_P1, "CDSLL3_P0_P1", MEPCOP1_48_INSN_CDSLL3_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
-  { mepcop1_48_sem_cpsla3_h_P0_P1, "CPSLA3_H_P0_P1", MEPCOP1_48_INSN_CPSLA3_H_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
-  { mepcop1_48_sem_cpsla3_w_P0_P1, "CPSLA3_W_P0_P1", MEPCOP1_48_INSN_CPSLA3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
+  { mepcop1_48_sem_cpsla3_h_P0_P1, "CPSLA3_H_P0_P1", MEPCOP1_48_INSN_CPSLA3_H_P0_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
+  { mepcop1_48_sem_cpsla3_w_P0_P1, "CPSLA3_W_P0_P1", MEPCOP1_48_INSN_CPSLA3_W_P0_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_48_sem_cpsrli3_b_P0_P1, "CPSRLI3_B_P0_P1", MEPCOP1_48_INSN_CPSRLI3_B_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_48_sem_cpsrli3_h_P0_P1, "CPSRLI3_H_P0_P1", MEPCOP1_48_INSN_CPSRLI3_H_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_48_sem_cpsrli3_w_P0_P1, "CPSRLI3_W_P0_P1", MEPCOP1_48_INSN_CPSRLI3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
@@ -143,8 +143,8 @@ mepcop1_48_idesc mepcop1_48_idesc::idesc_table[MEPCOP1_48_INSN_CDMOVI_P0_P1 + 1]
   { mepcop1_48_sem_cpslli3_h_P0_P1, "CPSLLI3_H_P0_P1", MEPCOP1_48_INSN_CPSLLI3_H_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_48_sem_cpslli3_w_P0_P1, "CPSLLI3_W_P0_P1", MEPCOP1_48_INSN_CPSLLI3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_48_sem_cdslli3_P0_P1, "CDSLLI3_P0_P1", MEPCOP1_48_INSN_CDSLLI3_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
-  { mepcop1_48_sem_cpslai3_h_P0_P1, "CPSLAI3_H_P0_P1", MEPCOP1_48_INSN_CPSLAI3_H_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
-  { mepcop1_48_sem_cpslai3_w_P0_P1, "CPSLAI3_W_P0_P1", MEPCOP1_48_INSN_CPSLAI3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
+  { mepcop1_48_sem_cpslai3_h_P0_P1, "CPSLAI3_H_P0_P1", MEPCOP1_48_INSN_CPSLAI3_H_P0_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
+  { mepcop1_48_sem_cpslai3_w_P0_P1, "CPSLAI3_W_P0_P1", MEPCOP1_48_INSN_CPSLAI3_W_P0_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_48_sem_cpclipiu3_w_P0_P1, "CPCLIPIU3_W_P0_P1", MEPCOP1_48_INSN_CPCLIPIU3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_48_sem_cpclipi3_w_P0_P1, "CPCLIPI3_W_P0_P1", MEPCOP1_48_INSN_CPCLIPI3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_48_sem_cdclipiu3_P0_P1, "CDCLIPIU3_P0_P1", MEPCOP1_48_INSN_CDCLIPIU3_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
index 79f5df3..5e75cfc 100644 (file)
@@ -32,9 +32,9 @@ mepcop1_64_idesc mepcop1_64_idesc::idesc_table[MEPCOP1_64_INSN_CPSMSBSLLA1_W_P1
   { mepcop1_64_sem_cpunpackl_b_P0S_P1, "CPUNPACKL_B_P0S_P1", MEPCOP1_64_INSN_CPUNPACKL_B_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpunpackl_h_P0S_P1, "CPUNPACKL_H_P0S_P1", MEPCOP1_64_INSN_CPUNPACKL_H_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpunpackl_w_P0S_P1, "CPUNPACKL_W_P0S_P1", MEPCOP1_64_INSN_CPUNPACKL_W_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpsel_P0S_P1, "CPSEL_P0S_P1", MEPCOP1_64_INSN_CPSEL_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpfsftbs0_P0S_P1, "CPFSFTBS0_P0S_P1", MEPCOP1_64_INSN_CPFSFTBS0_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpfsftbs1_P0S_P1, "CPFSFTBS1_P0S_P1", MEPCOP1_64_INSN_CPFSFTBS1_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpsel_P0S_P1, "CPSEL_P0S_P1", MEPCOP1_64_INSN_CPSEL_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpfsftbs0_P0S_P1, "CPFSFTBS0_P0S_P1", MEPCOP1_64_INSN_CPFSFTBS0_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpfsftbs1_P0S_P1, "CPFSFTBS1_P0S_P1", MEPCOP1_64_INSN_CPFSFTBS1_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpmov_P0S_P1, "CPMOV_P0S_P1", MEPCOP1_64_INSN_CPMOV_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpabsz_b_P0S_P1, "CPABSZ_B_P0S_P1", MEPCOP1_64_INSN_CPABSZ_B_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpabsz_h_P0S_P1, "CPABSZ_H_P0S_P1", MEPCOP1_64_INSN_CPABSZ_H_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
@@ -47,7 +47,7 @@ mepcop1_64_idesc mepcop1_64_idesc::idesc_table[MEPCOP1_64_INSN_CPSMSBSLLA1_W_P1
   { mepcop1_64_sem_cphadd_b_P0S_P1, "CPHADD_B_P0S_P1", MEPCOP1_64_INSN_CPHADD_B_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cphadd_h_P0S_P1, "CPHADD_H_P0S_P1", MEPCOP1_64_INSN_CPHADD_H_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cphadd_w_P0S_P1, "CPHADD_W_P0S_P1", MEPCOP1_64_INSN_CPHADD_W_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpccadd_b_P0S_P1, "CPCCADD_B_P0S_P1", MEPCOP1_64_INSN_CPCCADD_B_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V8QI, CRET_FIRSTCOPY, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpccadd_b_P0S_P1, "CPCCADD_B_P0S_P1", MEPCOP1_64_INSN_CPCCADD_B_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V8QI, CRET_FIRSTCOPY, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpbcast_b_P0S_P1, "CPBCAST_B_P0S_P1", MEPCOP1_64_INSN_CPBCAST_B_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpbcast_h_P0S_P1, "CPBCAST_H_P0S_P1", MEPCOP1_64_INSN_CPBCAST_H_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpbcast_w_P0S_P1, "CPBCAST_W_P0S_P1", MEPCOP1_64_INSN_CPBCAST_W_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
@@ -67,12 +67,12 @@ mepcop1_64_idesc mepcop1_64_idesc::idesc_table[MEPCOP1_64_INSN_CPSMSBSLLA1_W_P1
   { mepcop1_64_sem_cpcasth_w_P0S_P1, "CPCASTH_W_P0S_P1", MEPCOP1_64_INSN_CPCASTH_W_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cdcastuw_P0S_P1, "CDCASTUW_P0S_P1", MEPCOP1_64_INSN_CDCASTUW_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cdcastw_P0S_P1, "CDCASTW_P0S_P1", MEPCOP1_64_INSN_CDCASTW_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpmovfrcsar0_P0S_P1, "CPMOVFRCSAR0_P0S_P1", MEPCOP1_64_INSN_CPMOVFRCSAR0_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpmovfrcsar1_P0S_P1, "CPMOVFRCSAR1_P0S_P1", MEPCOP1_64_INSN_CPMOVFRCSAR1_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpmovfrcc_P0S_P1, "CPMOVFRCC_P0S_P1", MEPCOP1_64_INSN_CPMOVFRCC_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpmovtocsar0_P0S_P1, "CPMOVTOCSAR0_P0S_P1", MEPCOP1_64_INSN_CPMOVTOCSAR0_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpmovtocsar1_P0S_P1, "CPMOVTOCSAR1_P0S_P1", MEPCOP1_64_INSN_CPMOVTOCSAR1_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpmovtocc_P0S_P1, "CPMOVTOCC_P0S_P1", MEPCOP1_64_INSN_CPMOVTOCC_P0S_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpmovfrcsar0_P0S_P1, "CPMOVFRCSAR0_P0S_P1", MEPCOP1_64_INSN_CPMOVFRCSAR0_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpmovfrcsar1_P0S_P1, "CPMOVFRCSAR1_P0S_P1", MEPCOP1_64_INSN_CPMOVFRCSAR1_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpmovfrcc_P0S_P1, "CPMOVFRCC_P0S_P1", MEPCOP1_64_INSN_CPMOVFRCC_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpmovtocsar0_P0S_P1, "CPMOVTOCSAR0_P0S_P1", MEPCOP1_64_INSN_CPMOVTOCSAR0_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpmovtocsar1_P0S_P1, "CPMOVTOCSAR1_P0S_P1", MEPCOP1_64_INSN_CPMOVTOCSAR1_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpmovtocc_P0S_P1, "CPMOVTOCC_P0S_P1", MEPCOP1_64_INSN_CPMOVTOCC_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpcmpeqz_b_P0S_P1, "CPCMPEQZ_B_P0S_P1", MEPCOP1_64_INSN_CPCMPEQZ_B_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V8QI, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpcmpeq_b_P0S_P1, "CPCMPEQ_B_P0S_P1", MEPCOP1_64_INSN_CPCMPEQ_B_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V8QI, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpcmpeq_h_P0S_P1, "CPCMPEQ_H_P0S_P1", MEPCOP1_64_INSN_CPCMPEQ_H_P0S_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x24" }, CPTYPE_V4HI, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P0S)|(1<<SLOTS_P1) } },
@@ -128,10 +128,10 @@ mepcop1_64_idesc mepcop1_64_idesc::idesc_table[MEPCOP1_64_INSN_CPSMSBSLLA1_W_P1
   { mepcop1_64_sem_cpsub3_h_P0_P1, "CPSUB3_H_P0_P1", MEPCOP1_64_INSN_CPSUB3_H_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpsub3_w_P0_P1, "CPSUB3_W_P0_P1", MEPCOP1_64_INSN_CPSUB3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cdsub3_P0_P1, "CDSUB3_P0_P1", MEPCOP1_64_INSN_CDSUB3_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpsadd3_h_P0_P1, "CPSADD3_H_P0_P1", MEPCOP1_64_INSN_CPSADD3_H_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpsadd3_w_P0_P1, "CPSADD3_W_P0_P1", MEPCOP1_64_INSN_CPSADD3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpssub3_h_P0_P1, "CPSSUB3_H_P0_P1", MEPCOP1_64_INSN_CPSSUB3_H_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpssub3_w_P0_P1, "CPSSUB3_W_P0_P1", MEPCOP1_64_INSN_CPSSUB3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpsadd3_h_P0_P1, "CPSADD3_H_P0_P1", MEPCOP1_64_INSN_CPSADD3_H_P0_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpsadd3_w_P0_P1, "CPSADD3_W_P0_P1", MEPCOP1_64_INSN_CPSADD3_W_P0_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpssub3_h_P0_P1, "CPSSUB3_H_P0_P1", MEPCOP1_64_INSN_CPSSUB3_H_P0_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpssub3_w_P0_P1, "CPSSUB3_W_P0_P1", MEPCOP1_64_INSN_CPSSUB3_W_P0_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpextuaddu3_b_P0_P1, "CPEXTUADDU3_B_P0_P1", MEPCOP1_64_INSN_CPEXTUADDU3_B_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpextuadd3_b_P0_P1, "CPEXTUADD3_B_P0_P1", MEPCOP1_64_INSN_CPEXTUADD3_B_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpextladdu3_b_P0_P1, "CPEXTLADDU3_B_P0_P1", MEPCOP1_64_INSN_CPEXTLADDU3_B_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
@@ -189,8 +189,8 @@ mepcop1_64_idesc mepcop1_64_idesc::idesc_table[MEPCOP1_64_INSN_CPSMSBSLLA1_W_P1
   { mepcop1_64_sem_cpsll3_w_P0_P1, "CPSLL3_W_P0_P1", MEPCOP1_64_INSN_CPSLL3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpssll3_w_P0_P1, "CPSSLL3_W_P0_P1", MEPCOP1_64_INSN_CPSSLL3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cdsll3_P0_P1, "CDSLL3_P0_P1", MEPCOP1_64_INSN_CDSLL3_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpsla3_h_P0_P1, "CPSLA3_H_P0_P1", MEPCOP1_64_INSN_CPSLA3_H_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpsla3_w_P0_P1, "CPSLA3_W_P0_P1", MEPCOP1_64_INSN_CPSLA3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpsla3_h_P0_P1, "CPSLA3_H_P0_P1", MEPCOP1_64_INSN_CPSLA3_H_P0_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpsla3_w_P0_P1, "CPSLA3_W_P0_P1", MEPCOP1_64_INSN_CPSLA3_W_P0_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpsrli3_b_P0_P1, "CPSRLI3_B_P0_P1", MEPCOP1_64_INSN_CPSRLI3_B_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpsrli3_h_P0_P1, "CPSRLI3_H_P0_P1", MEPCOP1_64_INSN_CPSRLI3_H_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpsrli3_w_P0_P1, "CPSRLI3_W_P0_P1", MEPCOP1_64_INSN_CPSRLI3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
@@ -203,8 +203,8 @@ mepcop1_64_idesc mepcop1_64_idesc::idesc_table[MEPCOP1_64_INSN_CPSMSBSLLA1_W_P1
   { mepcop1_64_sem_cpslli3_h_P0_P1, "CPSLLI3_H_P0_P1", MEPCOP1_64_INSN_CPSLLI3_H_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpslli3_w_P0_P1, "CPSLLI3_W_P0_P1", MEPCOP1_64_INSN_CPSLLI3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cdslli3_P0_P1, "CDSLLI3_P0_P1", MEPCOP1_64_INSN_CDSLLI3_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpslai3_h_P0_P1, "CPSLAI3_H_P0_P1", MEPCOP1_64_INSN_CPSLAI3_H_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpslai3_w_P0_P1, "CPSLAI3_W_P0_P1", MEPCOP1_64_INSN_CPSLAI3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpslai3_h_P0_P1, "CPSLAI3_H_P0_P1", MEPCOP1_64_INSN_CPSLAI3_H_P0_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpslai3_w_P0_P1, "CPSLAI3_W_P0_P1", MEPCOP1_64_INSN_CPSLAI3_W_P0_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpclipiu3_w_P0_P1, "CPCLIPIU3_W_P0_P1", MEPCOP1_64_INSN_CPCLIPIU3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpclipi3_w_P0_P1, "CPCLIPI3_W_P0_P1", MEPCOP1_64_INSN_CPCLIPI3_W_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
   { mepcop1_64_sem_cdclipiu3_P0_P1, "CDCLIPIU3_P0_P1", MEPCOP1_64_INSN_CDCLIPIU3_P0_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\xc" }, CPTYPE_CP_DATA_BUS_INT, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P0)|(1<<SLOTS_P1) } },
@@ -243,21 +243,21 @@ mepcop1_64_idesc mepcop1_64_idesc::idesc_table[MEPCOP1_64_INSN_CPSMSBSLLA1_W_P1
   { mepcop1_64_sem_cpseta1_h_P1, "CPSETA1_H_P1", MEPCOP1_64_INSN_CPSETA1_H_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V4HI, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpsetua1_w_P1, "CPSETUA1_W_P1", MEPCOP1_64_INSN_CPSETUA1_W_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V2SI, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpsetla1_w_P1, "CPSETLA1_W_P1", MEPCOP1_64_INSN_CPSETLA1_W_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V2SI, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpmova1_b_P1, "CPMOVA1_B_P1", MEPCOP1_64_INSN_CPMOVA1_B_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpmovua1_h_P1, "CPMOVUA1_H_P1", MEPCOP1_64_INSN_CPMOVUA1_H_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpmovla1_h_P1, "CPMOVLA1_H_P1", MEPCOP1_64_INSN_CPMOVLA1_H_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpmovuua1_w_P1, "CPMOVUUA1_W_P1", MEPCOP1_64_INSN_CPMOVUUA1_W_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpmovula1_w_P1, "CPMOVULA1_W_P1", MEPCOP1_64_INSN_CPMOVULA1_W_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpmovlua1_w_P1, "CPMOVLUA1_W_P1", MEPCOP1_64_INSN_CPMOVLUA1_W_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpmovlla1_w_P1, "CPMOVLLA1_W_P1", MEPCOP1_64_INSN_CPMOVLLA1_W_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cppacka1u_b_P1, "CPPACKA1U_B_P1", MEPCOP1_64_INSN_CPPACKA1U_B_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V8UQI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cppacka1_b_P1, "CPPACKA1_B_P1", MEPCOP1_64_INSN_CPPACKA1_B_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cppackua1_h_P1, "CPPACKUA1_H_P1", MEPCOP1_64_INSN_CPPACKUA1_H_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cppackla1_h_P1, "CPPACKLA1_H_P1", MEPCOP1_64_INSN_CPPACKLA1_H_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cppackua1_w_P1, "CPPACKUA1_W_P1", MEPCOP1_64_INSN_CPPACKUA1_W_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cppackla1_w_P1, "CPPACKLA1_W_P1", MEPCOP1_64_INSN_CPPACKLA1_W_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpmovhua1_w_P1, "CPMOVHUA1_W_P1", MEPCOP1_64_INSN_CPMOVHUA1_W_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
-  { mepcop1_64_sem_cpmovhla1_w_P1, "CPMOVHLA1_W_P1", MEPCOP1_64_INSN_CPMOVHLA1_W_P1, { 0|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpmova1_b_P1, "CPMOVA1_B_P1", MEPCOP1_64_INSN_CPMOVA1_B_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpmovua1_h_P1, "CPMOVUA1_H_P1", MEPCOP1_64_INSN_CPMOVUA1_H_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpmovla1_h_P1, "CPMOVLA1_H_P1", MEPCOP1_64_INSN_CPMOVLA1_H_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpmovuua1_w_P1, "CPMOVUUA1_W_P1", MEPCOP1_64_INSN_CPMOVUUA1_W_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpmovula1_w_P1, "CPMOVULA1_W_P1", MEPCOP1_64_INSN_CPMOVULA1_W_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpmovlua1_w_P1, "CPMOVLUA1_W_P1", MEPCOP1_64_INSN_CPMOVLUA1_W_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpmovlla1_w_P1, "CPMOVLLA1_W_P1", MEPCOP1_64_INSN_CPMOVLLA1_W_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cppacka1u_b_P1, "CPPACKA1U_B_P1", MEPCOP1_64_INSN_CPPACKA1U_B_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V8UQI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cppacka1_b_P1, "CPPACKA1_B_P1", MEPCOP1_64_INSN_CPPACKA1_B_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V8QI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cppackua1_h_P1, "CPPACKUA1_H_P1", MEPCOP1_64_INSN_CPPACKUA1_H_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cppackla1_h_P1, "CPPACKLA1_H_P1", MEPCOP1_64_INSN_CPPACKLA1_H_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V4HI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cppackua1_w_P1, "CPPACKUA1_W_P1", MEPCOP1_64_INSN_CPPACKUA1_W_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cppackla1_w_P1, "CPPACKLA1_W_P1", MEPCOP1_64_INSN_CPPACKLA1_W_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpmovhua1_w_P1, "CPMOVHUA1_W_P1", MEPCOP1_64_INSN_CPMOVHUA1_W_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
+  { mepcop1_64_sem_cpmovhla1_w_P1, "CPMOVHLA1_W_P1", MEPCOP1_64_INSN_CPMOVHLA1_W_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_V2SI, CRET_FIRST, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpacsuma1_P1, "CPACSUMA1_P1", MEPCOP1_64_INSN_CPACSUMA1_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpaccpa1_P1, "CPACCPA1_P1", MEPCOP1_64_INSN_CPACCPA1_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
   { mepcop1_64_sem_cpacswp_P1, "CPACSWP_P1", MEPCOP1_64_INSN_CPACSWP_P1, { 0|(1<<CGEN_INSN_VOLATILE)|(1<<CGEN_INSN_OPTIONAL_CP_INSN), (1<<MACH_BASE), { 1, "\x4" }, CPTYPE_CP_DATA_BUS_INT, CRET_VOID, 0, CONFIG_NONE, (1<<SLOTS_P1) } },
@@ -377,6 +377,10 @@ mepcop1_64_extract_sfmt_cpmovfrcsar0_P0S_P1 (mepcop1_64_scache* abuf, mep_ext1_c
 static void
 mepcop1_64_extract_sfmt_cpmovtocsar0_P0S_P1 (mepcop1_64_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_64_insn_word base_insn, mepcop1_64_insn_word entire_insn);
 static void
+mepcop1_64_extract_sfmt_cpmovtocsar1_P0S_P1 (mepcop1_64_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_64_insn_word base_insn, mepcop1_64_insn_word entire_insn);
+static void
+mepcop1_64_extract_sfmt_cpmovtocc_P0S_P1 (mepcop1_64_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_64_insn_word base_insn, mepcop1_64_insn_word entire_insn);
+static void
 mepcop1_64_extract_sfmt_cpcmpeqz_b_P0S_P1 (mepcop1_64_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_64_insn_word base_insn, mepcop1_64_insn_word entire_insn);
 static void
 mepcop1_64_extract_sfmt_cpfsftbi_P0_P1 (mepcop1_64_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_64_insn_word base_insn, mepcop1_64_insn_word entire_insn);
@@ -801,11 +805,11 @@ mepcop1_64_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_64_insn
             itype = MEPCOP1_64_INSN_X_INVALID; mepcop1_64_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 49 :
             if ((entire_insn & 0xfff83fff) == 0x882200)
-              { itype = MEPCOP1_64_INSN_CPMOVTOCC_P0S_P1; mepcop1_64_extract_sfmt_cpmovtocsar0_P0S_P1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+              { itype = MEPCOP1_64_INSN_CPMOVTOCC_P0S_P1; mepcop1_64_extract_sfmt_cpmovtocc_P0S_P1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
             itype = MEPCOP1_64_INSN_X_INVALID; mepcop1_64_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 63 :
             if ((entire_insn & 0xfff83fff) == 0x883e00)
-              { itype = MEPCOP1_64_INSN_CPMOVTOCSAR1_P0S_P1; mepcop1_64_extract_sfmt_cpmovtocsar0_P0S_P1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+              { itype = MEPCOP1_64_INSN_CPMOVTOCSAR1_P0S_P1; mepcop1_64_extract_sfmt_cpmovtocsar1_P0S_P1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
             itype = MEPCOP1_64_INSN_X_INVALID; mepcop1_64_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEPCOP1_64_INSN_X_INVALID; mepcop1_64_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
@@ -4081,6 +4085,56 @@ mepcop1_64_extract_sfmt_cpmovtocsar0_P0S_P1 (mepcop1_64_scache* abuf, mep_ext1_c
 }
 
 void
+mepcop1_64_extract_sfmt_cpmovtocsar1_P0S_P1 (mepcop1_64_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_64_insn_word base_insn, mepcop1_64_insn_word entire_insn){
+    mepcop1_64_insn_word insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_cpmovi_b_P0S_P1.f
+    UINT f_ivc2_5u13;
+
+    f_ivc2_5u13 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_ivc2_5u13) = f_ivc2_5u13;
+  if (UNLIKELY(current_cpu->trace_extract_p))
+    {
+      current_cpu->trace_stream 
+        << "0x" << hex << pc << dec << " (sfmt_cpmovtocsar1_P0S_P1)\t"
+        << " f_ivc2_5u13:0x" << hex << f_ivc2_5u13 << dec
+        << endl;
+    }
+
+  /* Record the fields for profiling.  */
+  if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
+    {
+    }
+#undef FLD
+}
+
+void
+mepcop1_64_extract_sfmt_cpmovtocc_P0S_P1 (mepcop1_64_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_64_insn_word base_insn, mepcop1_64_insn_word entire_insn){
+    mepcop1_64_insn_word insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_cpmovi_b_P0S_P1.f
+    UINT f_ivc2_5u13;
+
+    f_ivc2_5u13 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_ivc2_5u13) = f_ivc2_5u13;
+  if (UNLIKELY(current_cpu->trace_extract_p))
+    {
+      current_cpu->trace_stream 
+        << "0x" << hex << pc << dec << " (sfmt_cpmovtocc_P0S_P1)\t"
+        << " f_ivc2_5u13:0x" << hex << f_ivc2_5u13 << dec
+        << endl;
+    }
+
+  /* Record the fields for profiling.  */
+  if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
+    {
+    }
+#undef FLD
+}
+
+void
 mepcop1_64_extract_sfmt_cpcmpeqz_b_P0S_P1 (mepcop1_64_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcop1_64_insn_word base_insn, mepcop1_64_insn_word entire_insn){
     mepcop1_64_insn_word insn = entire_insn;
 #define FLD(f) abuf->fields.sfmt_cpfmulia1u_b_P1.f
index 94b84b2..957e7ca 100644 (file)
@@ -1325,6 +1325,12 @@ mepcop1_64_sem_cpmovtocsar0_P0S_P1 (mep_ext1_cpu* current_cpu, mepcop1_64_scache
 
 {
 current_cpu->check_option_cp (pc);
+  {
+    SI opval = 0;
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "ccr-ivc2" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_ccr_ivc2_set (((UINT) 0), opval);
+  }
 current_cpu->ivc2_cpmovtocsar0 (pc, current_cpu->hardware.h_cr64[FLD (f_ivc2_5u13)]);
 }
 
@@ -1347,6 +1353,12 @@ mepcop1_64_sem_cpmovtocsar1_P0S_P1 (mep_ext1_cpu* current_cpu, mepcop1_64_scache
 
 {
 current_cpu->check_option_cp (pc);
+  {
+    SI opval = 0;
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "ccr-ivc2" << '[' << ((UINT) 15) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_ccr_ivc2_set (((UINT) 15), opval);
+  }
 current_cpu->ivc2_cpmovtocsar1 (pc, current_cpu->hardware.h_cr64[FLD (f_ivc2_5u13)]);
 }
 
@@ -1369,6 +1381,12 @@ mepcop1_64_sem_cpmovtocc_P0S_P1 (mep_ext1_cpu* current_cpu, mepcop1_64_scache* s
 
 {
 current_cpu->check_option_cp (pc);
+  {
+    SI opval = 0;
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "ccr-ivc2" << '[' << ((UINT) 1) << ']' << ":=0x" << hex << opval << dec << "  ";
+    current_cpu->h_ccr_ivc2_set (((UINT) 1), opval);
+  }
 current_cpu->ivc2_cpmovtocc (pc, current_cpu->hardware.h_cr64[FLD (f_ivc2_5u13)]);
 }
 
index 3487cb7..657bef0 100644 (file)
@@ -358,10 +358,6 @@ mepcore1_extract_sfmt_lw24 (mepcore1_scache* abuf, mep_ext1_cpu* current_cpu, PC
 static void
 mepcore1_extract_sfmt_extb (mepcore1_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_word base_insn, mepcore1_insn_word entire_insn);
 static void
-mepcore1_extract_sfmt_exth (mepcore1_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_word base_insn, mepcore1_insn_word entire_insn);
-static void
-mepcore1_extract_sfmt_extub (mepcore1_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_word base_insn, mepcore1_insn_word entire_insn);
-static void
 mepcore1_extract_sfmt_ssarb (mepcore1_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_word base_insn, mepcore1_insn_word entire_insn);
 static void
 mepcore1_extract_sfmt_mov (mepcore1_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_word base_insn, mepcore1_insn_word entire_insn);
@@ -484,8 +480,6 @@ mepcore1_extract_sfmt_min (mepcore1_scache* abuf, mep_ext1_cpu* current_cpu, PCA
 static void
 mepcore1_extract_sfmt_clip (mepcore1_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_word base_insn, mepcore1_insn_word entire_insn);
 static void
-mepcore1_extract_sfmt_clipu (mepcore1_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_word base_insn, mepcore1_insn_word entire_insn);
-static void
 mepcore1_extract_sfmt_swcp (mepcore1_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_word base_insn, mepcore1_insn_word entire_insn);
 static void
 mepcore1_extract_sfmt_lwcp (mepcore1_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_word base_insn, mepcore1_insn_word entire_insn);
@@ -568,144 +562,88 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
       {
       case 0 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x0)
-          { itype = MEPCORE1_INSN_MOV; mepcore1_extract_sfmt_mov (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_MOV; mepcore1_extract_sfmt_mov (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1)
-          { itype = MEPCORE1_INSN_NEG; mepcore1_extract_sfmt_mov (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_NEG; mepcore1_extract_sfmt_mov (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 2 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2)
-          { itype = MEPCORE1_INSN_SLT3; mepcore1_extract_sfmt_advck3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SLT3; mepcore1_extract_sfmt_advck3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 3 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3)
-          { itype = MEPCORE1_INSN_SLTU3; mepcore1_extract_sfmt_advck3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SLTU3; mepcore1_extract_sfmt_advck3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 4 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x4)
-          { itype = MEPCORE1_INSN_SUB; mepcore1_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SUB; mepcore1_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 5 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x5)
-          { itype = MEPCORE1_INSN_SBVCK3; mepcore1_extract_sfmt_advck3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SBVCK3; mepcore1_extract_sfmt_advck3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 6 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6)
-          { itype = MEPCORE1_INSN_RI_0; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_0; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 7 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x7)
-          { itype = MEPCORE1_INSN_ADVCK3; mepcore1_extract_sfmt_advck3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_ADVCK3; mepcore1_extract_sfmt_advck3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 8 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x8)
-          { itype = MEPCORE1_INSN_SB; mepcore1_extract_sfmt_sb (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SB; mepcore1_extract_sfmt_sb (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 9 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x9)
-          { itype = MEPCORE1_INSN_SH; mepcore1_extract_sfmt_sh (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SH; mepcore1_extract_sfmt_sh (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 10 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xa)
-          { itype = MEPCORE1_INSN_SW; mepcore1_extract_sfmt_sw (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SW; mepcore1_extract_sfmt_sw (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 11 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xb)
-          { itype = MEPCORE1_INSN_LBU; mepcore1_extract_sfmt_lbu (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_LBU; mepcore1_extract_sfmt_lbu (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 12 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xc)
-          { itype = MEPCORE1_INSN_LB; mepcore1_extract_sfmt_lb (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_LB; mepcore1_extract_sfmt_lb (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 13 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xd)
-          { itype = MEPCORE1_INSN_LH; mepcore1_extract_sfmt_lh (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_LH; mepcore1_extract_sfmt_lh (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 14 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xe)
-          { itype = MEPCORE1_INSN_LW; mepcore1_extract_sfmt_lw (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_LW; mepcore1_extract_sfmt_lw (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 15 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf)
-          { itype = MEPCORE1_INSN_LHU; mepcore1_extract_sfmt_lhu (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_LHU; mepcore1_extract_sfmt_lhu (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 16 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1000)
-          { itype = MEPCORE1_INSN_OR; mepcore1_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_OR; mepcore1_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 17 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1001)
-          { itype = MEPCORE1_INSN_AND; mepcore1_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_AND; mepcore1_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 18 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1002)
-          { itype = MEPCORE1_INSN_XOR; mepcore1_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_XOR; mepcore1_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 19 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1003)
-          { itype = MEPCORE1_INSN_NOR; mepcore1_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_NOR; mepcore1_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 20 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1004)
-          { itype = MEPCORE1_INSN_MUL; mepcore1_extract_sfmt_mul (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_MUL; mepcore1_extract_sfmt_mul (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 21 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1005)
-          { itype = MEPCORE1_INSN_MULU; mepcore1_extract_sfmt_mul (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_MULU; mepcore1_extract_sfmt_mul (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 22 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1006)
-          { itype = MEPCORE1_INSN_MULR; mepcore1_extract_sfmt_mulr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_MULR; mepcore1_extract_sfmt_mulr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 23 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1007)
-          { itype = MEPCORE1_INSN_MULRU; mepcore1_extract_sfmt_mulr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_MULRU; mepcore1_extract_sfmt_mulr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 24 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1008)
-          { itype = MEPCORE1_INSN_DIV; mepcore1_extract_sfmt_div (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_DIV; mepcore1_extract_sfmt_div (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 25 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1009)
-          { itype = MEPCORE1_INSN_DIVU; mepcore1_extract_sfmt_div (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_DIVU; mepcore1_extract_sfmt_div (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 26 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x100a)
-          { itype = MEPCORE1_INSN_RI_1; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_1; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 27 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x100b)
-          { itype = MEPCORE1_INSN_RI_2; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_2; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 28 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xfc0f) == 0x100c)
@@ -724,17 +662,17 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
           case 1 :
             entire_insn = entire_insn >> 16;
             if ((entire_insn & 0xf0ff) == 0x102d)
-              { itype = MEPCORE1_INSN_EXTH; mepcore1_extract_sfmt_exth (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+              { itype = MEPCORE1_INSN_EXTH; mepcore1_extract_sfmt_extb (this, current_cpu, pc, base_insn, entire_insn); goto done; }
             itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
             if ((entire_insn & 0xf0ff) == 0x108d)
-              { itype = MEPCORE1_INSN_EXTUB; mepcore1_extract_sfmt_extub (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+              { itype = MEPCORE1_INSN_EXTUB; mepcore1_extract_sfmt_extb (this, current_cpu, pc, base_insn, entire_insn); goto done; }
             itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
             if ((entire_insn & 0xf0ff) == 0x10ad)
-              { itype = MEPCORE1_INSN_EXTUH; mepcore1_extract_sfmt_extub (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+              { itype = MEPCORE1_INSN_EXTUH; mepcore1_extract_sfmt_extb (this, current_cpu, pc, base_insn, entire_insn); goto done; }
             itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
@@ -784,144 +722,88 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
         itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 36 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2004)
-          { itype = MEPCORE1_INSN_TAS; mepcore1_extract_sfmt_tas (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_TAS; mepcore1_extract_sfmt_tas (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 37 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2005)
-          { itype = MEPCORE1_INSN_RI_3; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_3; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 38 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2006)
-          { itype = MEPCORE1_INSN_SL1AD3; mepcore1_extract_sfmt_sl1ad3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SL1AD3; mepcore1_extract_sfmt_sl1ad3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 39 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2007)
-          { itype = MEPCORE1_INSN_SL2AD3; mepcore1_extract_sfmt_sl1ad3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SL2AD3; mepcore1_extract_sfmt_sl1ad3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 40 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2008)
-          { itype = MEPCORE1_INSN_RI_4; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_4; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 41 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2009)
-          { itype = MEPCORE1_INSN_RI_5; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_5; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 42 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200a)
-          { itype = MEPCORE1_INSN_RI_6; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_6; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 43 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200b)
-          { itype = MEPCORE1_INSN_RI_7; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_7; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 44 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200c)
-          { itype = MEPCORE1_INSN_SRL; mepcore1_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SRL; mepcore1_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 45 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200d)
-          { itype = MEPCORE1_INSN_SRA; mepcore1_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SRA; mepcore1_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 46 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200e)
-          { itype = MEPCORE1_INSN_SLL; mepcore1_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SLL; mepcore1_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 47 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200f)
-          { itype = MEPCORE1_INSN_FSFT; mepcore1_extract_sfmt_fsft (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_FSFT; mepcore1_extract_sfmt_fsft (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 48 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3000)
-          { itype = MEPCORE1_INSN_SWCPI; mepcore1_extract_sfmt_swcpi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SWCPI; mepcore1_extract_sfmt_swcpi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 49 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3001)
-          { itype = MEPCORE1_INSN_LWCPI; mepcore1_extract_sfmt_lwcpi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_LWCPI; mepcore1_extract_sfmt_lwcpi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 50 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3002)
-          { itype = MEPCORE1_INSN_SMCPI; mepcore1_extract_sfmt_smcpi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SMCPI; mepcore1_extract_sfmt_smcpi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 51 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3003)
-          { itype = MEPCORE1_INSN_LMCPI; mepcore1_extract_sfmt_lmcpi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_LMCPI; mepcore1_extract_sfmt_lmcpi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 52 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3004)
-          { itype = MEPCORE1_INSN_RI_8; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_8; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 53 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3005)
-          { itype = MEPCORE1_INSN_RI_9; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_9; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 54 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3006)
-          { itype = MEPCORE1_INSN_RI_10; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_10; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 55 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3007)
-          { itype = MEPCORE1_INSN_RI_11; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_11; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 56 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3008)
-          { itype = MEPCORE1_INSN_SWCP; mepcore1_extract_sfmt_swcp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SWCP; mepcore1_extract_sfmt_swcp (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 57 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3009)
-          { itype = MEPCORE1_INSN_LWCP; mepcore1_extract_sfmt_lwcp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_LWCP; mepcore1_extract_sfmt_lwcp (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 58 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300a)
-          { itype = MEPCORE1_INSN_SMCP; mepcore1_extract_sfmt_smcp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SMCP; mepcore1_extract_sfmt_smcp (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 59 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300b)
-          { itype = MEPCORE1_INSN_LMCP; mepcore1_extract_sfmt_lmcp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_LMCP; mepcore1_extract_sfmt_lmcp (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 60 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300c)
-          { itype = MEPCORE1_INSN_RI_12; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_12; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 61 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300d)
-          { itype = MEPCORE1_INSN_RI_13; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_13; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 62 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300e)
-          { itype = MEPCORE1_INSN_RI_14; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_14; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 63 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300f)
-          { itype = MEPCORE1_INSN_RI_15; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_15; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 64 : /* fall through */
       case 68 : /* fall through */
       case 72 : /* fall through */
@@ -932,9 +814,7 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf083) == 0x4000)
-              { itype = MEPCORE1_INSN_ADD3I; mepcore1_extract_sfmt_add3i (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_ADD3I; mepcore1_extract_sfmt_add3i (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
             if ((entire_insn & 0xf880) == 0x4880)
@@ -962,19 +842,13 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
           case 0 : /* fall through */
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf083) == 0x4002)
-              { itype = MEPCORE1_INSN_SW_SP; mepcore1_extract_sfmt_sw_sp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_SW_SP; mepcore1_extract_sfmt_sw_sp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf883) == 0x4082)
-              { itype = MEPCORE1_INSN_SW_TP; mepcore1_extract_sfmt_sw_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_SW_TP; mepcore1_extract_sfmt_sw_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf880) == 0x4880)
-              { itype = MEPCORE1_INSN_LBU_TP; mepcore1_extract_sfmt_lbu_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_LBU_TP; mepcore1_extract_sfmt_lbu_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -989,19 +863,13 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
           case 0 : /* fall through */
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf083) == 0x4003)
-              { itype = MEPCORE1_INSN_LW_SP; mepcore1_extract_sfmt_lw_sp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_LW_SP; mepcore1_extract_sfmt_lw_sp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf883) == 0x4083)
-              { itype = MEPCORE1_INSN_LW_TP; mepcore1_extract_sfmt_lw_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_LW_TP; mepcore1_extract_sfmt_lw_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf880) == 0x4880)
-              { itype = MEPCORE1_INSN_LBU_TP; mepcore1_extract_sfmt_lbu_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_LBU_TP; mepcore1_extract_sfmt_lbu_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1022,53 +890,37 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
       case 94 : /* fall through */
       case 95 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x5000)
-          { itype = MEPCORE1_INSN_MOVI8; mepcore1_extract_sfmt_movi8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_MOVI8; mepcore1_extract_sfmt_movi8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 96 : /* fall through */
       case 100 : /* fall through */
       case 104 : /* fall through */
       case 108 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf003) == 0x6000)
-          { itype = MEPCORE1_INSN_ADD; mepcore1_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_ADD; mepcore1_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 97 : /* fall through */
       case 105 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf007) == 0x6001)
-          { itype = MEPCORE1_INSN_SLT3I; mepcore1_extract_sfmt_slt3i (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SLT3I; mepcore1_extract_sfmt_slt3i (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 98 : /* fall through */
       case 106 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf007) == 0x6002)
-          { itype = MEPCORE1_INSN_SRLI; mepcore1_extract_sfmt_srai (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SRLI; mepcore1_extract_sfmt_srai (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 99 : /* fall through */
       case 107 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf007) == 0x6003)
-          { itype = MEPCORE1_INSN_SRAI; mepcore1_extract_sfmt_srai (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SRAI; mepcore1_extract_sfmt_srai (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 101 : /* fall through */
       case 109 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf007) == 0x6005)
-          { itype = MEPCORE1_INSN_SLTU3I; mepcore1_extract_sfmt_slt3i (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SLTU3I; mepcore1_extract_sfmt_slt3i (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 102 : /* fall through */
       case 110 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf007) == 0x6006)
-          { itype = MEPCORE1_INSN_SLLI; mepcore1_extract_sfmt_srai (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SLLI; mepcore1_extract_sfmt_srai (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 103 : /* fall through */
       case 111 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf007) == 0x6007)
-          { itype = MEPCORE1_INSN_SLL3; mepcore1_extract_sfmt_sll3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_SLL3; mepcore1_extract_sfmt_sll3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 112 :
         {
           unsigned int val = (((insn >> 26) & (1 << 1)) | ((insn >> 20) & (1 << 0)));
@@ -1164,14 +1016,10 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
         }
       case 116 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x7004)
-          { itype = MEPCORE1_INSN_CACHE; mepcore1_extract_sfmt_pref (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_CACHE; mepcore1_extract_sfmt_pref (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 117 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x7005)
-          { itype = MEPCORE1_INSN_PREF; mepcore1_extract_sfmt_pref (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_PREF; mepcore1_extract_sfmt_pref (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 118 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xffcf) == 0x7006)
@@ -1179,9 +1027,7 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
         itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 119 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x7007)
-          { itype = MEPCORE1_INSN_RI_17; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_17; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 120 :
         {
           unsigned int val = (((insn >> 20) & (15 << 0)));
@@ -1201,32 +1047,22 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
           case 14 : /* fall through */
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf00e) == 0x7008)
-              { itype = MEPCORE1_INSN_STC; mepcore1_extract_sfmt_stc (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_STC; mepcore1_extract_sfmt_stc (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x7018)
-              { itype = MEPCORE1_INSN_STC_LP; mepcore1_extract_sfmt_stc_lp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_STC_LP; mepcore1_extract_sfmt_stc_lp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 7 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x7078)
-              { itype = MEPCORE1_INSN_STC_HI; mepcore1_extract_sfmt_stc_hi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_STC_HI; mepcore1_extract_sfmt_stc_hi (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x7088)
-              { itype = MEPCORE1_INSN_STC_LO; mepcore1_extract_sfmt_stc_lo (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_STC_LO; mepcore1_extract_sfmt_stc_lo (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 121 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00e) == 0x7008)
-          { itype = MEPCORE1_INSN_STC; mepcore1_extract_sfmt_stc (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_STC; mepcore1_extract_sfmt_stc (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 122 :
         {
           unsigned int val = (((insn >> 20) & (15 << 0)));
@@ -1246,52 +1082,34 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
           case 14 : /* fall through */
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf00e) == 0x700a)
-              { itype = MEPCORE1_INSN_LDC; mepcore1_extract_sfmt_ldc (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_LDC; mepcore1_extract_sfmt_ldc (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x701a)
-              { itype = MEPCORE1_INSN_LDC_LP; mepcore1_extract_sfmt_ldc_lp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_LDC_LP; mepcore1_extract_sfmt_ldc_lp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 7 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x707a)
-              { itype = MEPCORE1_INSN_LDC_HI; mepcore1_extract_sfmt_ldc_hi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_LDC_HI; mepcore1_extract_sfmt_ldc_hi (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x708a)
-              { itype = MEPCORE1_INSN_LDC_LO; mepcore1_extract_sfmt_ldc_lo (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_LDC_LO; mepcore1_extract_sfmt_ldc_lo (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 123 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00e) == 0x700a)
-          { itype = MEPCORE1_INSN_LDC; mepcore1_extract_sfmt_ldc (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_LDC; mepcore1_extract_sfmt_ldc (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 124 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x700c)
-          { itype = MEPCORE1_INSN_STCB_R; mepcore1_extract_sfmt_stcb_r (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_STCB_R; mepcore1_extract_sfmt_stcb_r (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 125 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x700d)
-          { itype = MEPCORE1_INSN_LDCB_R; mepcore1_extract_sfmt_ldcb_r (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_LDCB_R; mepcore1_extract_sfmt_ldcb_r (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 126 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x700e)
-          { itype = MEPCORE1_INSN_RI_20; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_20; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 127 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x700f)
-          { itype = MEPCORE1_INSN_RI_21; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_21; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 128 : /* fall through */
       case 130 : /* fall through */
       case 132 : /* fall through */
@@ -1306,24 +1124,16 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf880) == 0x8000)
-              { itype = MEPCORE1_INSN_SB_TP; mepcore1_extract_sfmt_sb_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_SB_TP; mepcore1_extract_sfmt_sb_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf881) == 0x8080)
-              { itype = MEPCORE1_INSN_SH_TP; mepcore1_extract_sfmt_sh_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_SH_TP; mepcore1_extract_sfmt_sh_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf880) == 0x8800)
-              { itype = MEPCORE1_INSN_LB_TP; mepcore1_extract_sfmt_lb_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_LB_TP; mepcore1_extract_sfmt_lb_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf881) == 0x8880)
-              { itype = MEPCORE1_INSN_LH_TP; mepcore1_extract_sfmt_lh_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_LH_TP; mepcore1_extract_sfmt_lh_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1341,19 +1151,13 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf880) == 0x8000)
-              { itype = MEPCORE1_INSN_SB_TP; mepcore1_extract_sfmt_sb_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_SB_TP; mepcore1_extract_sfmt_sb_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf880) == 0x8800)
-              { itype = MEPCORE1_INSN_LB_TP; mepcore1_extract_sfmt_lb_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_LB_TP; mepcore1_extract_sfmt_lb_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf881) == 0x8881)
-              { itype = MEPCORE1_INSN_LHU_TP; mepcore1_extract_sfmt_lhu_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEPCORE1_INSN_LHU_TP; mepcore1_extract_sfmt_lhu_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1374,9 +1178,7 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
       case 158 : /* fall through */
       case 159 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x9000)
-          { itype = MEPCORE1_INSN_ADD3; mepcore1_extract_sfmt_add3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_ADD3; mepcore1_extract_sfmt_add3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 160 : /* fall through */
       case 162 : /* fall through */
       case 164 : /* fall through */
@@ -1386,9 +1188,7 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
       case 172 : /* fall through */
       case 174 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf001) == 0xa000)
-          { itype = MEPCORE1_INSN_BEQZ; mepcore1_extract_sfmt_beqz (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_BEQZ; mepcore1_extract_sfmt_beqz (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 161 : /* fall through */
       case 163 : /* fall through */
       case 165 : /* fall through */
@@ -1398,9 +1198,7 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
       case 173 : /* fall through */
       case 175 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf001) == 0xa001)
-          { itype = MEPCORE1_INSN_BNEZ; mepcore1_extract_sfmt_beqz (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_BNEZ; mepcore1_extract_sfmt_beqz (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 176 : /* fall through */
       case 178 : /* fall through */
       case 180 : /* fall through */
@@ -1410,9 +1208,7 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
       case 188 : /* fall through */
       case 190 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf001) == 0xb000)
-          { itype = MEPCORE1_INSN_BRA; mepcore1_extract_sfmt_bra (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_BRA; mepcore1_extract_sfmt_bra (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 177 : /* fall through */
       case 179 : /* fall through */
       case 181 : /* fall through */
@@ -1422,13 +1218,8 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
       case 189 : /* fall through */
       case 191 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf001) == 0xb001)
-          { itype = MEPCORE1_INSN_BSR12; mepcore1_extract_sfmt_bsr12 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 192 :
-        if ((entire_insn & 0xf00f0000) == 0xc0000000)
-          { itype = MEPCORE1_INSN_ADD3X; mepcore1_extract_sfmt_add3x (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_BSR12; mepcore1_extract_sfmt_bsr12 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 192 : itype = MEPCORE1_INSN_ADD3X; mepcore1_extract_sfmt_add3x (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 193 :
         {
           unsigned int val = (((insn >> 20) & (3 << 0)));
@@ -1449,63 +1240,22 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
           default : itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
-      case 194 :
-        if ((entire_insn & 0xf00f0000) == 0xc0020000)
-          { itype = MEPCORE1_INSN_SLT3X; mepcore1_extract_sfmt_slt3x (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 195 :
-        if ((entire_insn & 0xf00f0000) == 0xc0030000)
-          { itype = MEPCORE1_INSN_SLTU3X; mepcore1_extract_sfmt_sltu3x (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 196 :
-        if ((entire_insn & 0xf00f0000) == 0xc0040000)
-          { itype = MEPCORE1_INSN_OR3; mepcore1_extract_sfmt_or3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 197 :
-        if ((entire_insn & 0xf00f0000) == 0xc0050000)
-          { itype = MEPCORE1_INSN_AND3; mepcore1_extract_sfmt_or3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 198 :
-        if ((entire_insn & 0xf00f0000) == 0xc0060000)
-          { itype = MEPCORE1_INSN_XOR3; mepcore1_extract_sfmt_or3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 194 : itype = MEPCORE1_INSN_SLT3X; mepcore1_extract_sfmt_slt3x (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 195 : itype = MEPCORE1_INSN_SLTU3X; mepcore1_extract_sfmt_sltu3x (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 196 : itype = MEPCORE1_INSN_OR3; mepcore1_extract_sfmt_or3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 197 : itype = MEPCORE1_INSN_AND3; mepcore1_extract_sfmt_or3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 198 : itype = MEPCORE1_INSN_XOR3; mepcore1_extract_sfmt_or3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 199 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xc007)
-          { itype = MEPCORE1_INSN_RI_22; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 200 :
-        if ((entire_insn & 0xf00f0000) == 0xc0080000)
-          { itype = MEPCORE1_INSN_SB16; mepcore1_extract_sfmt_sb16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 201 :
-        if ((entire_insn & 0xf00f0000) == 0xc0090000)
-          { itype = MEPCORE1_INSN_SH16; mepcore1_extract_sfmt_sh16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 202 :
-        if ((entire_insn & 0xf00f0000) == 0xc00a0000)
-          { itype = MEPCORE1_INSN_SW16; mepcore1_extract_sfmt_sw16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 203 :
-        if ((entire_insn & 0xf00f0000) == 0xc00b0000)
-          { itype = MEPCORE1_INSN_LBU16; mepcore1_extract_sfmt_lbu16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 204 :
-        if ((entire_insn & 0xf00f0000) == 0xc00c0000)
-          { itype = MEPCORE1_INSN_LB16; mepcore1_extract_sfmt_lb16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 205 :
-        if ((entire_insn & 0xf00f0000) == 0xc00d0000)
-          { itype = MEPCORE1_INSN_LH16; mepcore1_extract_sfmt_lh16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 206 :
-        if ((entire_insn & 0xf00f0000) == 0xc00e0000)
-          { itype = MEPCORE1_INSN_LW16; mepcore1_extract_sfmt_lw16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 207 :
-        if ((entire_insn & 0xf00f0000) == 0xc00f0000)
-          { itype = MEPCORE1_INSN_LHU16; mepcore1_extract_sfmt_lhu16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_22; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 200 : itype = MEPCORE1_INSN_SB16; mepcore1_extract_sfmt_sb16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 201 : itype = MEPCORE1_INSN_SH16; mepcore1_extract_sfmt_sh16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 202 : itype = MEPCORE1_INSN_SW16; mepcore1_extract_sfmt_sw16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 203 : itype = MEPCORE1_INSN_LBU16; mepcore1_extract_sfmt_lbu16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 204 : itype = MEPCORE1_INSN_LB16; mepcore1_extract_sfmt_lb16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 205 : itype = MEPCORE1_INSN_LH16; mepcore1_extract_sfmt_lh16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 206 : itype = MEPCORE1_INSN_LW16; mepcore1_extract_sfmt_lw16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 207 : itype = MEPCORE1_INSN_LHU16; mepcore1_extract_sfmt_lhu16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 208 : /* fall through */
       case 209 : /* fall through */
       case 210 : /* fall through */
@@ -1523,10 +1273,7 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
           unsigned int val = (((insn >> 27) & (1 << 0)));
           switch (val)
           {
-          case 0 :
-            if ((entire_insn & 0xf8000000) == 0xd0000000)
-              { itype = MEPCORE1_INSN_MOVU24; mepcore1_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 : itype = MEPCORE1_INSN_MOVU24; mepcore1_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             if ((entire_insn & 0xff0f0000) == 0xd8040000)
               { itype = MEPCORE1_INSN_BCPEQ; mepcore1_extract_sfmt_bcpeq (this, current_cpu, pc, base_insn, entire_insn); goto done; }
@@ -1539,10 +1286,7 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
           unsigned int val = (((insn >> 27) & (1 << 0)));
           switch (val)
           {
-          case 0 :
-            if ((entire_insn & 0xf8000000) == 0xd0000000)
-              { itype = MEPCORE1_INSN_MOVU24; mepcore1_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 : itype = MEPCORE1_INSN_MOVU24; mepcore1_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             if ((entire_insn & 0xff0f0000) == 0xd8050000)
               { itype = MEPCORE1_INSN_BCPNE; mepcore1_extract_sfmt_bcpeq (this, current_cpu, pc, base_insn, entire_insn); goto done; }
@@ -1555,10 +1299,7 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
           unsigned int val = (((insn >> 27) & (1 << 0)));
           switch (val)
           {
-          case 0 :
-            if ((entire_insn & 0xf8000000) == 0xd0000000)
-              { itype = MEPCORE1_INSN_MOVU24; mepcore1_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 : itype = MEPCORE1_INSN_MOVU24; mepcore1_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             if ((entire_insn & 0xff0f0000) == 0xd8060000)
               { itype = MEPCORE1_INSN_BCPAT; mepcore1_extract_sfmt_bcpeq (this, current_cpu, pc, base_insn, entire_insn); goto done; }
@@ -1571,10 +1312,7 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
           unsigned int val = (((insn >> 27) & (1 << 0)));
           switch (val)
           {
-          case 0 :
-            if ((entire_insn & 0xf8000000) == 0xd0000000)
-              { itype = MEPCORE1_INSN_MOVU24; mepcore1_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 : itype = MEPCORE1_INSN_MOVU24; mepcore1_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             if ((entire_insn & 0xff0f0000) == 0xd8070000)
               { itype = MEPCORE1_INSN_BCPAF; mepcore1_extract_sfmt_bcpeq (this, current_cpu, pc, base_insn, entire_insn); goto done; }
@@ -1587,14 +1325,8 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
           unsigned int val = (((insn >> 27) & (1 << 0)));
           switch (val)
           {
-          case 0 :
-            if ((entire_insn & 0xf8000000) == 0xd0000000)
-              { itype = MEPCORE1_INSN_MOVU24; mepcore1_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 :
-            if ((entire_insn & 0xf80f0000) == 0xd8080000)
-              { itype = MEPCORE1_INSN_JMP24; mepcore1_extract_sfmt_jmp24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 : itype = MEPCORE1_INSN_MOVU24; mepcore1_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 : itype = MEPCORE1_INSN_JMP24; mepcore1_extract_sfmt_jmp24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1603,14 +1335,8 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
           unsigned int val = (((insn >> 27) & (1 << 0)));
           switch (val)
           {
-          case 0 :
-            if ((entire_insn & 0xf8000000) == 0xd0000000)
-              { itype = MEPCORE1_INSN_MOVU24; mepcore1_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 :
-            if ((entire_insn & 0xf80f0000) == 0xd8090000)
-              { itype = MEPCORE1_INSN_BSR24; mepcore1_extract_sfmt_bsr24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 : itype = MEPCORE1_INSN_MOVU24; mepcore1_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 : itype = MEPCORE1_INSN_BSR24; mepcore1_extract_sfmt_bsr24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1619,51 +1345,24 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
           unsigned int val = (((insn >> 27) & (1 << 0)));
           switch (val)
           {
-          case 0 :
-            if ((entire_insn & 0xf8000000) == 0xd0000000)
-              { itype = MEPCORE1_INSN_MOVU24; mepcore1_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 :
-            if ((entire_insn & 0xf80f0000) == 0xd80b0000)
-              { itype = MEPCORE1_INSN_BSRV; mepcore1_extract_sfmt_bsr24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 : itype = MEPCORE1_INSN_MOVU24; mepcore1_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 : itype = MEPCORE1_INSN_BSRV; mepcore1_extract_sfmt_bsr24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
-      case 224 :
-        if ((entire_insn & 0xf00f0000) == 0xe0000000)
-          { itype = MEPCORE1_INSN_BEQI; mepcore1_extract_sfmt_beqi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 225 :
-        if ((entire_insn & 0xf00f0000) == 0xe0010000)
-          { itype = MEPCORE1_INSN_BEQ; mepcore1_extract_sfmt_beq (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 224 : itype = MEPCORE1_INSN_BEQI; mepcore1_extract_sfmt_beqi (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 225 : itype = MEPCORE1_INSN_BEQ; mepcore1_extract_sfmt_beq (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 226 : /* fall through */
       case 230 : /* fall through */
       case 234 : /* fall through */
-      case 238 :
-        if ((entire_insn & 0xf0030000) == 0xe0020000)
-          { itype = MEPCORE1_INSN_SW24; mepcore1_extract_sfmt_sw24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 238 : itype = MEPCORE1_INSN_SW24; mepcore1_extract_sfmt_sw24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 227 : /* fall through */
       case 231 : /* fall through */
       case 235 : /* fall through */
-      case 239 :
-        if ((entire_insn & 0xf0030000) == 0xe0030000)
-          { itype = MEPCORE1_INSN_LW24; mepcore1_extract_sfmt_lw24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 228 :
-        if ((entire_insn & 0xf00f0000) == 0xe0040000)
-          { itype = MEPCORE1_INSN_BNEI; mepcore1_extract_sfmt_beqi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 229 :
-        if ((entire_insn & 0xf00f0000) == 0xe0050000)
-          { itype = MEPCORE1_INSN_BNE; mepcore1_extract_sfmt_beq (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 232 :
-        if ((entire_insn & 0xf00f0000) == 0xe0080000)
-          { itype = MEPCORE1_INSN_BGEI; mepcore1_extract_sfmt_beqi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 239 : itype = MEPCORE1_INSN_LW24; mepcore1_extract_sfmt_lw24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 228 : itype = MEPCORE1_INSN_BNEI; mepcore1_extract_sfmt_beqi (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 229 : itype = MEPCORE1_INSN_BNE; mepcore1_extract_sfmt_beq (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 232 : itype = MEPCORE1_INSN_BGEI; mepcore1_extract_sfmt_beqi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 233 :
         {
           unsigned int val = (((insn >> 20) & (1 << 0)));
@@ -1680,19 +1379,11 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
           default : itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
-      case 236 :
-        if ((entire_insn & 0xf00f0000) == 0xe00c0000)
-          { itype = MEPCORE1_INSN_BLTI; mepcore1_extract_sfmt_beqi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 236 : itype = MEPCORE1_INSN_BLTI; mepcore1_extract_sfmt_beqi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 237 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xe00d)
-          { itype = MEPCORE1_INSN_RI_23; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 240 :
-        if ((entire_insn & 0xf00f0000) == 0xf0000000)
-          { itype = MEPCORE1_INSN_DSP; mepcore1_extract_sfmt_uci (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_23; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 240 : itype = MEPCORE1_INSN_DSP; mepcore1_extract_sfmt_uci (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 241 :
         {
           unsigned int val = (((insn >> 8) & (3 << 4)) | ((insn >> 0) & (15 << 0)));
@@ -1750,7 +1441,7 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
           case 17 : /* fall through */
           case 25 :
             if ((entire_insn & 0xf0ffff07) == 0xf0011001)
-              { itype = MEPCORE1_INSN_CLIPU; mepcore1_extract_sfmt_clipu (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+              { itype = MEPCORE1_INSN_CLIPU; mepcore1_extract_sfmt_clip (this, current_cpu, pc, base_insn, entire_insn); goto done; }
             itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 32 :
             if ((entire_insn & 0xf00ff0ff) == 0xf0012000)
@@ -1783,14 +1474,8 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
           default : itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
-      case 242 :
-        if ((entire_insn & 0xf00f0000) == 0xf0020000)
-          { itype = MEPCORE1_INSN_UCI; mepcore1_extract_sfmt_uci (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 243 :
-        if ((entire_insn & 0xf00f0000) == 0xf0030000)
-          { itype = MEPCORE1_INSN_PREFD; mepcore1_extract_sfmt_prefd (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 242 : itype = MEPCORE1_INSN_UCI; mepcore1_extract_sfmt_uci (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 243 : itype = MEPCORE1_INSN_PREFD; mepcore1_extract_sfmt_prefd (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 244 :
         {
           unsigned int val = (((insn >> 20) & (1 << 0)));
@@ -1812,126 +1497,36 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
           unsigned int val = (((insn >> 10) & (63 << 0)));
           switch (val)
           {
-          case 0 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0050000)
-              { itype = MEPCORE1_INSN_SBCPA; mepcore1_extract_sfmt_sbcpa (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 2 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0050800)
-              { itype = MEPCORE1_INSN_SBCPM0; mepcore1_extract_sfmt_sbcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 3 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0050c00)
-              { itype = MEPCORE1_INSN_SBCPM1; mepcore1_extract_sfmt_sbcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 4 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0051000)
-              { itype = MEPCORE1_INSN_SHCPA; mepcore1_extract_sfmt_shcpa (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 6 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0051800)
-              { itype = MEPCORE1_INSN_SHCPM0; mepcore1_extract_sfmt_shcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 7 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0051c00)
-              { itype = MEPCORE1_INSN_SHCPM1; mepcore1_extract_sfmt_shcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 8 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0052000)
-              { itype = MEPCORE1_INSN_SWCPA; mepcore1_extract_sfmt_swcpa (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 10 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0052800)
-              { itype = MEPCORE1_INSN_SWCPM0; mepcore1_extract_sfmt_swcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 11 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0052c00)
-              { itype = MEPCORE1_INSN_SWCPM1; mepcore1_extract_sfmt_swcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 12 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0053000)
-              { itype = MEPCORE1_INSN_SMCPA; mepcore1_extract_sfmt_smcpa (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 14 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0053800)
-              { itype = MEPCORE1_INSN_SMCPM0; mepcore1_extract_sfmt_smcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 15 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0053c00)
-              { itype = MEPCORE1_INSN_SMCPM1; mepcore1_extract_sfmt_smcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 16 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0054000)
-              { itype = MEPCORE1_INSN_LBCPA; mepcore1_extract_sfmt_lbucpa (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 18 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0054800)
-              { itype = MEPCORE1_INSN_LBCPM0; mepcore1_extract_sfmt_lbucpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 19 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0054c00)
-              { itype = MEPCORE1_INSN_LBCPM1; mepcore1_extract_sfmt_lbucpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 20 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0055000)
-              { itype = MEPCORE1_INSN_LHCPA; mepcore1_extract_sfmt_lhucpa (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 22 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0055800)
-              { itype = MEPCORE1_INSN_LHCPM0; mepcore1_extract_sfmt_lhucpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 23 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0055c00)
-              { itype = MEPCORE1_INSN_LHCPM1; mepcore1_extract_sfmt_lhucpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 24 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0056000)
-              { itype = MEPCORE1_INSN_LWCPA; mepcore1_extract_sfmt_lwcpa (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 26 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0056800)
-              { itype = MEPCORE1_INSN_LWCPM0; mepcore1_extract_sfmt_lwcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 27 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0056c00)
-              { itype = MEPCORE1_INSN_LWCPM1; mepcore1_extract_sfmt_lwcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 28 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0057000)
-              { itype = MEPCORE1_INSN_LMCPA; mepcore1_extract_sfmt_lmcpa (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 30 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0057800)
-              { itype = MEPCORE1_INSN_LMCPM0; mepcore1_extract_sfmt_lmcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 31 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0057c00)
-              { itype = MEPCORE1_INSN_LMCPM1; mepcore1_extract_sfmt_lmcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 48 :
-            if ((entire_insn & 0xf00ffc00) == 0xf005c000)
-              { itype = MEPCORE1_INSN_LBUCPA; mepcore1_extract_sfmt_lbucpa (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 50 :
-            if ((entire_insn & 0xf00ffc00) == 0xf005c800)
-              { itype = MEPCORE1_INSN_LBUCPM0; mepcore1_extract_sfmt_lbucpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 51 :
-            if ((entire_insn & 0xf00ffc00) == 0xf005cc00)
-              { itype = MEPCORE1_INSN_LBUCPM1; mepcore1_extract_sfmt_lbucpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 52 :
-            if ((entire_insn & 0xf00ffc00) == 0xf005d000)
-              { itype = MEPCORE1_INSN_LHUCPA; mepcore1_extract_sfmt_lhucpa (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 54 :
-            if ((entire_insn & 0xf00ffc00) == 0xf005d800)
-              { itype = MEPCORE1_INSN_LHUCPM0; mepcore1_extract_sfmt_lhucpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 55 :
-            if ((entire_insn & 0xf00ffc00) == 0xf005dc00)
-              { itype = MEPCORE1_INSN_LHUCPM1; mepcore1_extract_sfmt_lhucpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 : itype = MEPCORE1_INSN_SBCPA; mepcore1_extract_sfmt_sbcpa (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 2 : itype = MEPCORE1_INSN_SBCPM0; mepcore1_extract_sfmt_sbcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 3 : itype = MEPCORE1_INSN_SBCPM1; mepcore1_extract_sfmt_sbcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 4 : itype = MEPCORE1_INSN_SHCPA; mepcore1_extract_sfmt_shcpa (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 6 : itype = MEPCORE1_INSN_SHCPM0; mepcore1_extract_sfmt_shcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 7 : itype = MEPCORE1_INSN_SHCPM1; mepcore1_extract_sfmt_shcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 8 : itype = MEPCORE1_INSN_SWCPA; mepcore1_extract_sfmt_swcpa (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 10 : itype = MEPCORE1_INSN_SWCPM0; mepcore1_extract_sfmt_swcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 11 : itype = MEPCORE1_INSN_SWCPM1; mepcore1_extract_sfmt_swcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 12 : itype = MEPCORE1_INSN_SMCPA; mepcore1_extract_sfmt_smcpa (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 14 : itype = MEPCORE1_INSN_SMCPM0; mepcore1_extract_sfmt_smcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 15 : itype = MEPCORE1_INSN_SMCPM1; mepcore1_extract_sfmt_smcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 16 : itype = MEPCORE1_INSN_LBCPA; mepcore1_extract_sfmt_lbucpa (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 18 : itype = MEPCORE1_INSN_LBCPM0; mepcore1_extract_sfmt_lbucpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 19 : itype = MEPCORE1_INSN_LBCPM1; mepcore1_extract_sfmt_lbucpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 20 : itype = MEPCORE1_INSN_LHCPA; mepcore1_extract_sfmt_lhucpa (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 22 : itype = MEPCORE1_INSN_LHCPM0; mepcore1_extract_sfmt_lhucpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 23 : itype = MEPCORE1_INSN_LHCPM1; mepcore1_extract_sfmt_lhucpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 24 : itype = MEPCORE1_INSN_LWCPA; mepcore1_extract_sfmt_lwcpa (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 26 : itype = MEPCORE1_INSN_LWCPM0; mepcore1_extract_sfmt_lwcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 27 : itype = MEPCORE1_INSN_LWCPM1; mepcore1_extract_sfmt_lwcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 28 : itype = MEPCORE1_INSN_LMCPA; mepcore1_extract_sfmt_lmcpa (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 30 : itype = MEPCORE1_INSN_LMCPM0; mepcore1_extract_sfmt_lmcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 31 : itype = MEPCORE1_INSN_LMCPM1; mepcore1_extract_sfmt_lmcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 48 : itype = MEPCORE1_INSN_LBUCPA; mepcore1_extract_sfmt_lbucpa (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 50 : itype = MEPCORE1_INSN_LBUCPM0; mepcore1_extract_sfmt_lbucpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 51 : itype = MEPCORE1_INSN_LBUCPM1; mepcore1_extract_sfmt_lbucpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 52 : itype = MEPCORE1_INSN_LHUCPA; mepcore1_extract_sfmt_lhucpa (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 54 : itype = MEPCORE1_INSN_LHUCPM0; mepcore1_extract_sfmt_lhucpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 55 : itype = MEPCORE1_INSN_LHUCPM1; mepcore1_extract_sfmt_lhucpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1969,25 +1564,11 @@ mepcore1_scache::decode (mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_wor
         }
       case 248 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf008)
-          { itype = MEPCORE1_INSN_RI_26; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 252 :
-        if ((entire_insn & 0xf00f0000) == 0xf00c0000)
-          { itype = MEPCORE1_INSN_SWCP16; mepcore1_extract_sfmt_swcp16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 253 :
-        if ((entire_insn & 0xf00f0000) == 0xf00d0000)
-          { itype = MEPCORE1_INSN_LWCP16; mepcore1_extract_sfmt_lwcp16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 254 :
-        if ((entire_insn & 0xf00f0000) == 0xf00e0000)
-          { itype = MEPCORE1_INSN_SMCP16; mepcore1_extract_sfmt_smcp16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 255 :
-        if ((entire_insn & 0xf00f0000) == 0xf00f0000)
-          { itype = MEPCORE1_INSN_LMCP16; mepcore1_extract_sfmt_lmcp16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEPCORE1_INSN_RI_26; mepcore1_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 252 : itype = MEPCORE1_INSN_SWCP16; mepcore1_extract_sfmt_swcp16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 253 : itype = MEPCORE1_INSN_LWCP16; mepcore1_extract_sfmt_lwcp16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 254 : itype = MEPCORE1_INSN_SMCP16; mepcore1_extract_sfmt_smcp16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 255 : itype = MEPCORE1_INSN_LMCP16; mepcore1_extract_sfmt_lmcp16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       default : itype = MEPCORE1_INSN_X_INVALID; mepcore1_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       }
     }
@@ -3574,62 +3155,6 @@ mepcore1_extract_sfmt_extb (mepcore1_scache* abuf, mep_ext1_cpu* current_cpu, PC
 }
 
 void
-mepcore1_extract_sfmt_exth (mepcore1_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_word base_insn, mepcore1_insn_word entire_insn){
-    mepcore1_insn_word insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_clip.f
-    UINT f_rn;
-
-    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
-
-  /* Record the fields for the semantic handler.  */
-  FLD (f_rn) = f_rn;
-  FLD (i_rn) = & current_cpu->hardware.h_gpr[f_rn];
-  if (UNLIKELY(current_cpu->trace_extract_p))
-    {
-      current_cpu->trace_stream 
-        << "0x" << hex << pc << dec << " (sfmt_exth)\t"
-        << " f_rn:0x" << hex << f_rn << dec
-        << endl;
-    }
-
-  /* Record the fields for profiling.  */
-  if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
-    {
-      FLD (in_rn) = f_rn;
-      FLD (out_rn) = f_rn;
-    }
-#undef FLD
-}
-
-void
-mepcore1_extract_sfmt_extub (mepcore1_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_word base_insn, mepcore1_insn_word entire_insn){
-    mepcore1_insn_word insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_clip.f
-    UINT f_rn;
-
-    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
-
-  /* Record the fields for the semantic handler.  */
-  FLD (f_rn) = f_rn;
-  FLD (i_rn) = & current_cpu->hardware.h_gpr[f_rn];
-  if (UNLIKELY(current_cpu->trace_extract_p))
-    {
-      current_cpu->trace_stream 
-        << "0x" << hex << pc << dec << " (sfmt_extub)\t"
-        << " f_rn:0x" << hex << f_rn << dec
-        << endl;
-    }
-
-  /* Record the fields for profiling.  */
-  if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
-    {
-      FLD (in_rn) = f_rn;
-      FLD (out_rn) = f_rn;
-    }
-#undef FLD
-}
-
-void
 mepcore1_extract_sfmt_ssarb (mepcore1_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_word base_insn, mepcore1_insn_word entire_insn){
     mepcore1_insn_word insn = entire_insn;
 #define FLD(f) abuf->fields.sfmt_ssarb.f
@@ -5548,38 +5073,6 @@ mepcore1_extract_sfmt_clip (mepcore1_scache* abuf, mep_ext1_cpu* current_cpu, PC
 }
 
 void
-mepcore1_extract_sfmt_clipu (mepcore1_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_word base_insn, mepcore1_insn_word entire_insn){
-    mepcore1_insn_word insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_clip.f
-    UINT f_rn;
-    UINT f_5u24;
-
-    f_rn = EXTRACT_MSB0_UINT (insn, 32, 4, 4);
-    f_5u24 = EXTRACT_MSB0_UINT (insn, 32, 24, 5);
-
-  /* Record the fields for the semantic handler.  */
-  FLD (f_5u24) = f_5u24;
-  FLD (f_rn) = f_rn;
-  FLD (i_rn) = & current_cpu->hardware.h_gpr[f_rn];
-  if (UNLIKELY(current_cpu->trace_extract_p))
-    {
-      current_cpu->trace_stream 
-        << "0x" << hex << pc << dec << " (sfmt_clipu)\t"
-        << " f_5u24:0x" << hex << f_5u24 << dec
-        << " f_rn:0x" << hex << f_rn << dec
-        << endl;
-    }
-
-  /* Record the fields for profiling.  */
-  if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
-    {
-      FLD (in_rn) = f_rn;
-      FLD (out_rn) = f_rn;
-    }
-#undef FLD
-}
-
-void
 mepcore1_extract_sfmt_swcp (mepcore1_scache* abuf, mep_ext1_cpu* current_cpu, PCADDR pc, mepcore1_insn_word base_insn, mepcore1_insn_word entire_insn){
     mepcore1_insn_word insn = entire_insn;
 #define FLD(f) abuf->fields.sfmt_swcp16.f
index f449e30..a862d75 100644 (file)
@@ -4146,7 +4146,7 @@ mepcore1_sem_btstm (mep_ext1_cpu* current_cpu, mepcore1_scache* sem)
 {
 current_cpu->check_option_bit (pc);
   {
-    SI opval = ZEXTQISI (ANDQI (current_cpu->GETMEMQI (pc, * FLD (i_rma)), SLLSI (1, FLD (f_3u5))));
+    SI opval = ZEXTQISI (ANDQI (current_cpu->GETMEMUQI (pc, * FLD (i_rma)), SLLSI (1, FLD (f_3u5))));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gpr" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
     current_cpu->hardware.h_gpr[((UINT) 0)] = opval;
index b553ce7..dbb2fdb 100644 (file)
@@ -358,10 +358,6 @@ mep_extract_sfmt_lw24 (mep_scache* abuf, mep_basic_cpu* current_cpu, PCADDR pc,
 static void
 mep_extract_sfmt_extb (mep_scache* abuf, mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_insn, mep_insn_word entire_insn);
 static void
-mep_extract_sfmt_exth (mep_scache* abuf, mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_insn, mep_insn_word entire_insn);
-static void
-mep_extract_sfmt_extub (mep_scache* abuf, mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_insn, mep_insn_word entire_insn);
-static void
 mep_extract_sfmt_ssarb (mep_scache* abuf, mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_insn, mep_insn_word entire_insn);
 static void
 mep_extract_sfmt_mov (mep_scache* abuf, mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_insn, mep_insn_word entire_insn);
@@ -484,8 +480,6 @@ mep_extract_sfmt_min (mep_scache* abuf, mep_basic_cpu* current_cpu, PCADDR pc, m
 static void
 mep_extract_sfmt_clip (mep_scache* abuf, mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_insn, mep_insn_word entire_insn);
 static void
-mep_extract_sfmt_clipu (mep_scache* abuf, mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_insn, mep_insn_word entire_insn);
-static void
 mep_extract_sfmt_swcp (mep_scache* abuf, mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_insn, mep_insn_word entire_insn);
 static void
 mep_extract_sfmt_lwcp (mep_scache* abuf, mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_insn, mep_insn_word entire_insn);
@@ -568,144 +562,88 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
       {
       case 0 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x0)
-          { itype = MEP_INSN_MOV; mep_extract_sfmt_mov (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_MOV; mep_extract_sfmt_mov (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1)
-          { itype = MEP_INSN_NEG; mep_extract_sfmt_mov (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_NEG; mep_extract_sfmt_mov (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 2 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2)
-          { itype = MEP_INSN_SLT3; mep_extract_sfmt_advck3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SLT3; mep_extract_sfmt_advck3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 3 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3)
-          { itype = MEP_INSN_SLTU3; mep_extract_sfmt_advck3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SLTU3; mep_extract_sfmt_advck3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 4 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x4)
-          { itype = MEP_INSN_SUB; mep_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SUB; mep_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 5 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x5)
-          { itype = MEP_INSN_SBVCK3; mep_extract_sfmt_advck3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SBVCK3; mep_extract_sfmt_advck3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 6 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6)
-          { itype = MEP_INSN_RI_0; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_0; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 7 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x7)
-          { itype = MEP_INSN_ADVCK3; mep_extract_sfmt_advck3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_ADVCK3; mep_extract_sfmt_advck3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 8 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x8)
-          { itype = MEP_INSN_SB; mep_extract_sfmt_sb (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SB; mep_extract_sfmt_sb (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 9 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x9)
-          { itype = MEP_INSN_SH; mep_extract_sfmt_sh (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SH; mep_extract_sfmt_sh (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 10 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xa)
-          { itype = MEP_INSN_SW; mep_extract_sfmt_sw (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SW; mep_extract_sfmt_sw (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 11 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xb)
-          { itype = MEP_INSN_LBU; mep_extract_sfmt_lbu (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_LBU; mep_extract_sfmt_lbu (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 12 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xc)
-          { itype = MEP_INSN_LB; mep_extract_sfmt_lb (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_LB; mep_extract_sfmt_lb (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 13 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xd)
-          { itype = MEP_INSN_LH; mep_extract_sfmt_lh (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_LH; mep_extract_sfmt_lh (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 14 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xe)
-          { itype = MEP_INSN_LW; mep_extract_sfmt_lw (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_LW; mep_extract_sfmt_lw (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 15 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf)
-          { itype = MEP_INSN_LHU; mep_extract_sfmt_lhu (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_LHU; mep_extract_sfmt_lhu (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 16 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1000)
-          { itype = MEP_INSN_OR; mep_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_OR; mep_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 17 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1001)
-          { itype = MEP_INSN_AND; mep_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_AND; mep_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 18 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1002)
-          { itype = MEP_INSN_XOR; mep_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_XOR; mep_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 19 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1003)
-          { itype = MEP_INSN_NOR; mep_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_NOR; mep_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 20 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1004)
-          { itype = MEP_INSN_MUL; mep_extract_sfmt_mul (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_MUL; mep_extract_sfmt_mul (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 21 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1005)
-          { itype = MEP_INSN_MULU; mep_extract_sfmt_mul (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_MULU; mep_extract_sfmt_mul (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 22 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1006)
-          { itype = MEP_INSN_MULR; mep_extract_sfmt_mulr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_MULR; mep_extract_sfmt_mulr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 23 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1007)
-          { itype = MEP_INSN_MULRU; mep_extract_sfmt_mulr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_MULRU; mep_extract_sfmt_mulr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 24 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1008)
-          { itype = MEP_INSN_DIV; mep_extract_sfmt_div (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_DIV; mep_extract_sfmt_div (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 25 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x1009)
-          { itype = MEP_INSN_DIVU; mep_extract_sfmt_div (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_DIVU; mep_extract_sfmt_div (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 26 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x100a)
-          { itype = MEP_INSN_RI_1; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_1; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 27 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x100b)
-          { itype = MEP_INSN_RI_2; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_2; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 28 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xfc0f) == 0x100c)
@@ -724,17 +662,17 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
           case 1 :
             entire_insn = entire_insn >> 16;
             if ((entire_insn & 0xf0ff) == 0x102d)
-              { itype = MEP_INSN_EXTH; mep_extract_sfmt_exth (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+              { itype = MEP_INSN_EXTH; mep_extract_sfmt_extb (this, current_cpu, pc, base_insn, entire_insn); goto done; }
             itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
             if ((entire_insn & 0xf0ff) == 0x108d)
-              { itype = MEP_INSN_EXTUB; mep_extract_sfmt_extub (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+              { itype = MEP_INSN_EXTUB; mep_extract_sfmt_extb (this, current_cpu, pc, base_insn, entire_insn); goto done; }
             itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
             if ((entire_insn & 0xf0ff) == 0x10ad)
-              { itype = MEP_INSN_EXTUH; mep_extract_sfmt_extub (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+              { itype = MEP_INSN_EXTUH; mep_extract_sfmt_extb (this, current_cpu, pc, base_insn, entire_insn); goto done; }
             itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
@@ -784,144 +722,88 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
         itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 36 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2004)
-          { itype = MEP_INSN_TAS; mep_extract_sfmt_tas (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_TAS; mep_extract_sfmt_tas (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 37 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2005)
-          { itype = MEP_INSN_RI_3; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_3; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 38 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2006)
-          { itype = MEP_INSN_SL1AD3; mep_extract_sfmt_sl1ad3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SL1AD3; mep_extract_sfmt_sl1ad3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 39 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2007)
-          { itype = MEP_INSN_SL2AD3; mep_extract_sfmt_sl1ad3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SL2AD3; mep_extract_sfmt_sl1ad3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 40 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2008)
-          { itype = MEP_INSN_RI_4; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_4; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 41 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2009)
-          { itype = MEP_INSN_RI_5; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_5; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 42 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200a)
-          { itype = MEP_INSN_RI_6; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_6; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 43 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200b)
-          { itype = MEP_INSN_RI_7; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_7; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 44 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200c)
-          { itype = MEP_INSN_SRL; mep_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SRL; mep_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 45 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200d)
-          { itype = MEP_INSN_SRA; mep_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SRA; mep_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 46 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200e)
-          { itype = MEP_INSN_SLL; mep_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SLL; mep_extract_sfmt_sub (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 47 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200f)
-          { itype = MEP_INSN_FSFT; mep_extract_sfmt_fsft (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_FSFT; mep_extract_sfmt_fsft (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 48 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3000)
-          { itype = MEP_INSN_SWCPI; mep_extract_sfmt_swcpi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SWCPI; mep_extract_sfmt_swcpi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 49 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3001)
-          { itype = MEP_INSN_LWCPI; mep_extract_sfmt_lwcpi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_LWCPI; mep_extract_sfmt_lwcpi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 50 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3002)
-          { itype = MEP_INSN_SMCPI; mep_extract_sfmt_smcpi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SMCPI; mep_extract_sfmt_smcpi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 51 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3003)
-          { itype = MEP_INSN_LMCPI; mep_extract_sfmt_lmcpi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_LMCPI; mep_extract_sfmt_lmcpi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 52 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3004)
-          { itype = MEP_INSN_RI_8; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_8; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 53 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3005)
-          { itype = MEP_INSN_RI_9; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_9; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 54 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3006)
-          { itype = MEP_INSN_RI_10; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_10; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 55 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3007)
-          { itype = MEP_INSN_RI_11; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_11; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 56 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3008)
-          { itype = MEP_INSN_SWCP; mep_extract_sfmt_swcp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SWCP; mep_extract_sfmt_swcp (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 57 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3009)
-          { itype = MEP_INSN_LWCP; mep_extract_sfmt_lwcp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_LWCP; mep_extract_sfmt_lwcp (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 58 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300a)
-          { itype = MEP_INSN_SMCP; mep_extract_sfmt_smcp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SMCP; mep_extract_sfmt_smcp (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 59 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300b)
-          { itype = MEP_INSN_LMCP; mep_extract_sfmt_lmcp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_LMCP; mep_extract_sfmt_lmcp (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 60 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300c)
-          { itype = MEP_INSN_RI_12; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_12; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 61 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300d)
-          { itype = MEP_INSN_RI_13; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_13; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 62 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300e)
-          { itype = MEP_INSN_RI_14; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_14; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 63 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300f)
-          { itype = MEP_INSN_RI_15; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_15; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 64 : /* fall through */
       case 68 : /* fall through */
       case 72 : /* fall through */
@@ -932,9 +814,7 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf083) == 0x4000)
-              { itype = MEP_INSN_ADD3I; mep_extract_sfmt_add3i (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_ADD3I; mep_extract_sfmt_add3i (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
             if ((entire_insn & 0xf880) == 0x4880)
@@ -962,19 +842,13 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
           case 0 : /* fall through */
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf083) == 0x4002)
-              { itype = MEP_INSN_SW_SP; mep_extract_sfmt_sw_sp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_SW_SP; mep_extract_sfmt_sw_sp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf883) == 0x4082)
-              { itype = MEP_INSN_SW_TP; mep_extract_sfmt_sw_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_SW_TP; mep_extract_sfmt_sw_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf880) == 0x4880)
-              { itype = MEP_INSN_LBU_TP; mep_extract_sfmt_lbu_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_LBU_TP; mep_extract_sfmt_lbu_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -989,19 +863,13 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
           case 0 : /* fall through */
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf083) == 0x4003)
-              { itype = MEP_INSN_LW_SP; mep_extract_sfmt_lw_sp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_LW_SP; mep_extract_sfmt_lw_sp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf883) == 0x4083)
-              { itype = MEP_INSN_LW_TP; mep_extract_sfmt_lw_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_LW_TP; mep_extract_sfmt_lw_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf880) == 0x4880)
-              { itype = MEP_INSN_LBU_TP; mep_extract_sfmt_lbu_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_LBU_TP; mep_extract_sfmt_lbu_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1022,53 +890,37 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
       case 94 : /* fall through */
       case 95 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x5000)
-          { itype = MEP_INSN_MOVI8; mep_extract_sfmt_movi8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_MOVI8; mep_extract_sfmt_movi8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 96 : /* fall through */
       case 100 : /* fall through */
       case 104 : /* fall through */
       case 108 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf003) == 0x6000)
-          { itype = MEP_INSN_ADD; mep_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_ADD; mep_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 97 : /* fall through */
       case 105 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf007) == 0x6001)
-          { itype = MEP_INSN_SLT3I; mep_extract_sfmt_slt3i (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SLT3I; mep_extract_sfmt_slt3i (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 98 : /* fall through */
       case 106 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf007) == 0x6002)
-          { itype = MEP_INSN_SRLI; mep_extract_sfmt_srai (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SRLI; mep_extract_sfmt_srai (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 99 : /* fall through */
       case 107 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf007) == 0x6003)
-          { itype = MEP_INSN_SRAI; mep_extract_sfmt_srai (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SRAI; mep_extract_sfmt_srai (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 101 : /* fall through */
       case 109 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf007) == 0x6005)
-          { itype = MEP_INSN_SLTU3I; mep_extract_sfmt_slt3i (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SLTU3I; mep_extract_sfmt_slt3i (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 102 : /* fall through */
       case 110 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf007) == 0x6006)
-          { itype = MEP_INSN_SLLI; mep_extract_sfmt_srai (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SLLI; mep_extract_sfmt_srai (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 103 : /* fall through */
       case 111 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf007) == 0x6007)
-          { itype = MEP_INSN_SLL3; mep_extract_sfmt_sll3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_SLL3; mep_extract_sfmt_sll3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 112 :
         {
           unsigned int val = (((insn >> 26) & (1 << 1)) | ((insn >> 20) & (1 << 0)));
@@ -1164,14 +1016,10 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
         }
       case 116 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x7004)
-          { itype = MEP_INSN_CACHE; mep_extract_sfmt_pref (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_CACHE; mep_extract_sfmt_pref (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 117 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x7005)
-          { itype = MEP_INSN_PREF; mep_extract_sfmt_pref (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_PREF; mep_extract_sfmt_pref (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 118 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xffcf) == 0x7006)
@@ -1179,9 +1027,7 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
         itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 119 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x7007)
-          { itype = MEP_INSN_RI_17; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_17; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 120 :
         {
           unsigned int val = (((insn >> 20) & (15 << 0)));
@@ -1201,32 +1047,22 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
           case 14 : /* fall through */
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf00e) == 0x7008)
-              { itype = MEP_INSN_STC; mep_extract_sfmt_stc (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_STC; mep_extract_sfmt_stc (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x7018)
-              { itype = MEP_INSN_STC_LP; mep_extract_sfmt_stc_lp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_STC_LP; mep_extract_sfmt_stc_lp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 7 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x7078)
-              { itype = MEP_INSN_STC_HI; mep_extract_sfmt_stc_hi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_STC_HI; mep_extract_sfmt_stc_hi (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x7088)
-              { itype = MEP_INSN_STC_LO; mep_extract_sfmt_stc_lo (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_STC_LO; mep_extract_sfmt_stc_lo (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 121 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00e) == 0x7008)
-          { itype = MEP_INSN_STC; mep_extract_sfmt_stc (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_STC; mep_extract_sfmt_stc (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 122 :
         {
           unsigned int val = (((insn >> 20) & (15 << 0)));
@@ -1246,52 +1082,34 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
           case 14 : /* fall through */
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf00e) == 0x700a)
-              { itype = MEP_INSN_LDC; mep_extract_sfmt_ldc (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_LDC; mep_extract_sfmt_ldc (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x701a)
-              { itype = MEP_INSN_LDC_LP; mep_extract_sfmt_ldc_lp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_LDC_LP; mep_extract_sfmt_ldc_lp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 7 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x707a)
-              { itype = MEP_INSN_LDC_HI; mep_extract_sfmt_ldc_hi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_LDC_HI; mep_extract_sfmt_ldc_hi (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x708a)
-              { itype = MEP_INSN_LDC_LO; mep_extract_sfmt_ldc_lo (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_LDC_LO; mep_extract_sfmt_ldc_lo (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 123 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00e) == 0x700a)
-          { itype = MEP_INSN_LDC; mep_extract_sfmt_ldc (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_LDC; mep_extract_sfmt_ldc (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 124 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x700c)
-          { itype = MEP_INSN_STCB_R; mep_extract_sfmt_stcb_r (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_STCB_R; mep_extract_sfmt_stcb_r (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 125 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x700d)
-          { itype = MEP_INSN_LDCB_R; mep_extract_sfmt_ldcb_r (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_LDCB_R; mep_extract_sfmt_ldcb_r (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 126 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x700e)
-          { itype = MEP_INSN_RI_20; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_20; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 127 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x700f)
-          { itype = MEP_INSN_RI_21; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_21; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 128 : /* fall through */
       case 130 : /* fall through */
       case 132 : /* fall through */
@@ -1306,24 +1124,16 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf880) == 0x8000)
-              { itype = MEP_INSN_SB_TP; mep_extract_sfmt_sb_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_SB_TP; mep_extract_sfmt_sb_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf881) == 0x8080)
-              { itype = MEP_INSN_SH_TP; mep_extract_sfmt_sh_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_SH_TP; mep_extract_sfmt_sh_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf880) == 0x8800)
-              { itype = MEP_INSN_LB_TP; mep_extract_sfmt_lb_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_LB_TP; mep_extract_sfmt_lb_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf881) == 0x8880)
-              { itype = MEP_INSN_LH_TP; mep_extract_sfmt_lh_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_LH_TP; mep_extract_sfmt_lh_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1341,19 +1151,13 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf880) == 0x8000)
-              { itype = MEP_INSN_SB_TP; mep_extract_sfmt_sb_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_SB_TP; mep_extract_sfmt_sb_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf880) == 0x8800)
-              { itype = MEP_INSN_LB_TP; mep_extract_sfmt_lb_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_LB_TP; mep_extract_sfmt_lb_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf881) == 0x8881)
-              { itype = MEP_INSN_LHU_TP; mep_extract_sfmt_lhu_tp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = MEP_INSN_LHU_TP; mep_extract_sfmt_lhu_tp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1374,9 +1178,7 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
       case 158 : /* fall through */
       case 159 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x9000)
-          { itype = MEP_INSN_ADD3; mep_extract_sfmt_add3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_ADD3; mep_extract_sfmt_add3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 160 : /* fall through */
       case 162 : /* fall through */
       case 164 : /* fall through */
@@ -1386,9 +1188,7 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
       case 172 : /* fall through */
       case 174 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf001) == 0xa000)
-          { itype = MEP_INSN_BEQZ; mep_extract_sfmt_beqz (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_BEQZ; mep_extract_sfmt_beqz (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 161 : /* fall through */
       case 163 : /* fall through */
       case 165 : /* fall through */
@@ -1398,9 +1198,7 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
       case 173 : /* fall through */
       case 175 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf001) == 0xa001)
-          { itype = MEP_INSN_BNEZ; mep_extract_sfmt_beqz (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_BNEZ; mep_extract_sfmt_beqz (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 176 : /* fall through */
       case 178 : /* fall through */
       case 180 : /* fall through */
@@ -1410,9 +1208,7 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
       case 188 : /* fall through */
       case 190 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf001) == 0xb000)
-          { itype = MEP_INSN_BRA; mep_extract_sfmt_bra (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_BRA; mep_extract_sfmt_bra (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 177 : /* fall through */
       case 179 : /* fall through */
       case 181 : /* fall through */
@@ -1422,13 +1218,8 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
       case 189 : /* fall through */
       case 191 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf001) == 0xb001)
-          { itype = MEP_INSN_BSR12; mep_extract_sfmt_bsr12 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 192 :
-        if ((entire_insn & 0xf00f0000) == 0xc0000000)
-          { itype = MEP_INSN_ADD3X; mep_extract_sfmt_add3x (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_BSR12; mep_extract_sfmt_bsr12 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 192 : itype = MEP_INSN_ADD3X; mep_extract_sfmt_add3x (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 193 :
         {
           unsigned int val = (((insn >> 20) & (3 << 0)));
@@ -1449,63 +1240,22 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
           default : itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
-      case 194 :
-        if ((entire_insn & 0xf00f0000) == 0xc0020000)
-          { itype = MEP_INSN_SLT3X; mep_extract_sfmt_slt3x (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 195 :
-        if ((entire_insn & 0xf00f0000) == 0xc0030000)
-          { itype = MEP_INSN_SLTU3X; mep_extract_sfmt_sltu3x (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 196 :
-        if ((entire_insn & 0xf00f0000) == 0xc0040000)
-          { itype = MEP_INSN_OR3; mep_extract_sfmt_or3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 197 :
-        if ((entire_insn & 0xf00f0000) == 0xc0050000)
-          { itype = MEP_INSN_AND3; mep_extract_sfmt_or3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 198 :
-        if ((entire_insn & 0xf00f0000) == 0xc0060000)
-          { itype = MEP_INSN_XOR3; mep_extract_sfmt_or3 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 194 : itype = MEP_INSN_SLT3X; mep_extract_sfmt_slt3x (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 195 : itype = MEP_INSN_SLTU3X; mep_extract_sfmt_sltu3x (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 196 : itype = MEP_INSN_OR3; mep_extract_sfmt_or3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 197 : itype = MEP_INSN_AND3; mep_extract_sfmt_or3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 198 : itype = MEP_INSN_XOR3; mep_extract_sfmt_or3 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 199 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xc007)
-          { itype = MEP_INSN_RI_22; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 200 :
-        if ((entire_insn & 0xf00f0000) == 0xc0080000)
-          { itype = MEP_INSN_SB16; mep_extract_sfmt_sb16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 201 :
-        if ((entire_insn & 0xf00f0000) == 0xc0090000)
-          { itype = MEP_INSN_SH16; mep_extract_sfmt_sh16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 202 :
-        if ((entire_insn & 0xf00f0000) == 0xc00a0000)
-          { itype = MEP_INSN_SW16; mep_extract_sfmt_sw16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 203 :
-        if ((entire_insn & 0xf00f0000) == 0xc00b0000)
-          { itype = MEP_INSN_LBU16; mep_extract_sfmt_lbu16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 204 :
-        if ((entire_insn & 0xf00f0000) == 0xc00c0000)
-          { itype = MEP_INSN_LB16; mep_extract_sfmt_lb16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 205 :
-        if ((entire_insn & 0xf00f0000) == 0xc00d0000)
-          { itype = MEP_INSN_LH16; mep_extract_sfmt_lh16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 206 :
-        if ((entire_insn & 0xf00f0000) == 0xc00e0000)
-          { itype = MEP_INSN_LW16; mep_extract_sfmt_lw16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 207 :
-        if ((entire_insn & 0xf00f0000) == 0xc00f0000)
-          { itype = MEP_INSN_LHU16; mep_extract_sfmt_lhu16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_22; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 200 : itype = MEP_INSN_SB16; mep_extract_sfmt_sb16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 201 : itype = MEP_INSN_SH16; mep_extract_sfmt_sh16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 202 : itype = MEP_INSN_SW16; mep_extract_sfmt_sw16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 203 : itype = MEP_INSN_LBU16; mep_extract_sfmt_lbu16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 204 : itype = MEP_INSN_LB16; mep_extract_sfmt_lb16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 205 : itype = MEP_INSN_LH16; mep_extract_sfmt_lh16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 206 : itype = MEP_INSN_LW16; mep_extract_sfmt_lw16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 207 : itype = MEP_INSN_LHU16; mep_extract_sfmt_lhu16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 208 : /* fall through */
       case 209 : /* fall through */
       case 210 : /* fall through */
@@ -1523,10 +1273,7 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
           unsigned int val = (((insn >> 27) & (1 << 0)));
           switch (val)
           {
-          case 0 :
-            if ((entire_insn & 0xf8000000) == 0xd0000000)
-              { itype = MEP_INSN_MOVU24; mep_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 : itype = MEP_INSN_MOVU24; mep_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             if ((entire_insn & 0xff0f0000) == 0xd8040000)
               { itype = MEP_INSN_BCPEQ; mep_extract_sfmt_bcpeq (this, current_cpu, pc, base_insn, entire_insn); goto done; }
@@ -1539,10 +1286,7 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
           unsigned int val = (((insn >> 27) & (1 << 0)));
           switch (val)
           {
-          case 0 :
-            if ((entire_insn & 0xf8000000) == 0xd0000000)
-              { itype = MEP_INSN_MOVU24; mep_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 : itype = MEP_INSN_MOVU24; mep_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             if ((entire_insn & 0xff0f0000) == 0xd8050000)
               { itype = MEP_INSN_BCPNE; mep_extract_sfmt_bcpeq (this, current_cpu, pc, base_insn, entire_insn); goto done; }
@@ -1555,10 +1299,7 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
           unsigned int val = (((insn >> 27) & (1 << 0)));
           switch (val)
           {
-          case 0 :
-            if ((entire_insn & 0xf8000000) == 0xd0000000)
-              { itype = MEP_INSN_MOVU24; mep_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 : itype = MEP_INSN_MOVU24; mep_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             if ((entire_insn & 0xff0f0000) == 0xd8060000)
               { itype = MEP_INSN_BCPAT; mep_extract_sfmt_bcpeq (this, current_cpu, pc, base_insn, entire_insn); goto done; }
@@ -1571,10 +1312,7 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
           unsigned int val = (((insn >> 27) & (1 << 0)));
           switch (val)
           {
-          case 0 :
-            if ((entire_insn & 0xf8000000) == 0xd0000000)
-              { itype = MEP_INSN_MOVU24; mep_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 : itype = MEP_INSN_MOVU24; mep_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             if ((entire_insn & 0xff0f0000) == 0xd8070000)
               { itype = MEP_INSN_BCPAF; mep_extract_sfmt_bcpeq (this, current_cpu, pc, base_insn, entire_insn); goto done; }
@@ -1587,14 +1325,8 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
           unsigned int val = (((insn >> 27) & (1 << 0)));
           switch (val)
           {
-          case 0 :
-            if ((entire_insn & 0xf8000000) == 0xd0000000)
-              { itype = MEP_INSN_MOVU24; mep_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 :
-            if ((entire_insn & 0xf80f0000) == 0xd8080000)
-              { itype = MEP_INSN_JMP24; mep_extract_sfmt_jmp24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 : itype = MEP_INSN_MOVU24; mep_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 : itype = MEP_INSN_JMP24; mep_extract_sfmt_jmp24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1603,14 +1335,8 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
           unsigned int val = (((insn >> 27) & (1 << 0)));
           switch (val)
           {
-          case 0 :
-            if ((entire_insn & 0xf8000000) == 0xd0000000)
-              { itype = MEP_INSN_MOVU24; mep_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 :
-            if ((entire_insn & 0xf80f0000) == 0xd8090000)
-              { itype = MEP_INSN_BSR24; mep_extract_sfmt_bsr24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 : itype = MEP_INSN_MOVU24; mep_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 : itype = MEP_INSN_BSR24; mep_extract_sfmt_bsr24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1619,51 +1345,24 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
           unsigned int val = (((insn >> 27) & (1 << 0)));
           switch (val)
           {
-          case 0 :
-            if ((entire_insn & 0xf8000000) == 0xd0000000)
-              { itype = MEP_INSN_MOVU24; mep_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 :
-            if ((entire_insn & 0xf80f0000) == 0xd80b0000)
-              { itype = MEP_INSN_BSRV; mep_extract_sfmt_bsr24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 : itype = MEP_INSN_MOVU24; mep_extract_sfmt_movu24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 : itype = MEP_INSN_BSRV; mep_extract_sfmt_bsr24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
-      case 224 :
-        if ((entire_insn & 0xf00f0000) == 0xe0000000)
-          { itype = MEP_INSN_BEQI; mep_extract_sfmt_beqi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 225 :
-        if ((entire_insn & 0xf00f0000) == 0xe0010000)
-          { itype = MEP_INSN_BEQ; mep_extract_sfmt_beq (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 224 : itype = MEP_INSN_BEQI; mep_extract_sfmt_beqi (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 225 : itype = MEP_INSN_BEQ; mep_extract_sfmt_beq (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 226 : /* fall through */
       case 230 : /* fall through */
       case 234 : /* fall through */
-      case 238 :
-        if ((entire_insn & 0xf0030000) == 0xe0020000)
-          { itype = MEP_INSN_SW24; mep_extract_sfmt_sw24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 238 : itype = MEP_INSN_SW24; mep_extract_sfmt_sw24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 227 : /* fall through */
       case 231 : /* fall through */
       case 235 : /* fall through */
-      case 239 :
-        if ((entire_insn & 0xf0030000) == 0xe0030000)
-          { itype = MEP_INSN_LW24; mep_extract_sfmt_lw24 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 228 :
-        if ((entire_insn & 0xf00f0000) == 0xe0040000)
-          { itype = MEP_INSN_BNEI; mep_extract_sfmt_beqi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 229 :
-        if ((entire_insn & 0xf00f0000) == 0xe0050000)
-          { itype = MEP_INSN_BNE; mep_extract_sfmt_beq (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 232 :
-        if ((entire_insn & 0xf00f0000) == 0xe0080000)
-          { itype = MEP_INSN_BGEI; mep_extract_sfmt_beqi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 239 : itype = MEP_INSN_LW24; mep_extract_sfmt_lw24 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 228 : itype = MEP_INSN_BNEI; mep_extract_sfmt_beqi (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 229 : itype = MEP_INSN_BNE; mep_extract_sfmt_beq (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 232 : itype = MEP_INSN_BGEI; mep_extract_sfmt_beqi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 233 :
         {
           unsigned int val = (((insn >> 20) & (1 << 0)));
@@ -1680,19 +1379,11 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
           default : itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
-      case 236 :
-        if ((entire_insn & 0xf00f0000) == 0xe00c0000)
-          { itype = MEP_INSN_BLTI; mep_extract_sfmt_beqi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 236 : itype = MEP_INSN_BLTI; mep_extract_sfmt_beqi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 237 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xe00d)
-          { itype = MEP_INSN_RI_23; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 240 :
-        if ((entire_insn & 0xf00f0000) == 0xf0000000)
-          { itype = MEP_INSN_DSP; mep_extract_sfmt_uci (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_23; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 240 : itype = MEP_INSN_DSP; mep_extract_sfmt_uci (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 241 :
         {
           unsigned int val = (((insn >> 8) & (3 << 4)) | ((insn >> 0) & (15 << 0)));
@@ -1750,7 +1441,7 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
           case 17 : /* fall through */
           case 25 :
             if ((entire_insn & 0xf0ffff07) == 0xf0011001)
-              { itype = MEP_INSN_CLIPU; mep_extract_sfmt_clipu (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+              { itype = MEP_INSN_CLIPU; mep_extract_sfmt_clip (this, current_cpu, pc, base_insn, entire_insn); goto done; }
             itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 32 :
             if ((entire_insn & 0xf00ff0ff) == 0xf0012000)
@@ -1783,14 +1474,8 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
           default : itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
-      case 242 :
-        if ((entire_insn & 0xf00f0000) == 0xf0020000)
-          { itype = MEP_INSN_UCI; mep_extract_sfmt_uci (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 243 :
-        if ((entire_insn & 0xf00f0000) == 0xf0030000)
-          { itype = MEP_INSN_PREFD; mep_extract_sfmt_prefd (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 242 : itype = MEP_INSN_UCI; mep_extract_sfmt_uci (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 243 : itype = MEP_INSN_PREFD; mep_extract_sfmt_prefd (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 244 :
         {
           unsigned int val = (((insn >> 20) & (1 << 0)));
@@ -1812,126 +1497,36 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
           unsigned int val = (((insn >> 10) & (63 << 0)));
           switch (val)
           {
-          case 0 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0050000)
-              { itype = MEP_INSN_SBCPA; mep_extract_sfmt_sbcpa (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 2 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0050800)
-              { itype = MEP_INSN_SBCPM0; mep_extract_sfmt_sbcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 3 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0050c00)
-              { itype = MEP_INSN_SBCPM1; mep_extract_sfmt_sbcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 4 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0051000)
-              { itype = MEP_INSN_SHCPA; mep_extract_sfmt_shcpa (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 6 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0051800)
-              { itype = MEP_INSN_SHCPM0; mep_extract_sfmt_shcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 7 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0051c00)
-              { itype = MEP_INSN_SHCPM1; mep_extract_sfmt_shcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 8 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0052000)
-              { itype = MEP_INSN_SWCPA; mep_extract_sfmt_swcpa (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 10 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0052800)
-              { itype = MEP_INSN_SWCPM0; mep_extract_sfmt_swcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 11 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0052c00)
-              { itype = MEP_INSN_SWCPM1; mep_extract_sfmt_swcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 12 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0053000)
-              { itype = MEP_INSN_SMCPA; mep_extract_sfmt_smcpa (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 14 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0053800)
-              { itype = MEP_INSN_SMCPM0; mep_extract_sfmt_smcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 15 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0053c00)
-              { itype = MEP_INSN_SMCPM1; mep_extract_sfmt_smcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 16 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0054000)
-              { itype = MEP_INSN_LBCPA; mep_extract_sfmt_lbucpa (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 18 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0054800)
-              { itype = MEP_INSN_LBCPM0; mep_extract_sfmt_lbucpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 19 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0054c00)
-              { itype = MEP_INSN_LBCPM1; mep_extract_sfmt_lbucpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 20 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0055000)
-              { itype = MEP_INSN_LHCPA; mep_extract_sfmt_lhucpa (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 22 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0055800)
-              { itype = MEP_INSN_LHCPM0; mep_extract_sfmt_lhucpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 23 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0055c00)
-              { itype = MEP_INSN_LHCPM1; mep_extract_sfmt_lhucpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 24 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0056000)
-              { itype = MEP_INSN_LWCPA; mep_extract_sfmt_lwcpa (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 26 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0056800)
-              { itype = MEP_INSN_LWCPM0; mep_extract_sfmt_lwcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 27 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0056c00)
-              { itype = MEP_INSN_LWCPM1; mep_extract_sfmt_lwcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 28 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0057000)
-              { itype = MEP_INSN_LMCPA; mep_extract_sfmt_lmcpa (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 30 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0057800)
-              { itype = MEP_INSN_LMCPM0; mep_extract_sfmt_lmcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 31 :
-            if ((entire_insn & 0xf00ffc00) == 0xf0057c00)
-              { itype = MEP_INSN_LMCPM1; mep_extract_sfmt_lmcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 48 :
-            if ((entire_insn & 0xf00ffc00) == 0xf005c000)
-              { itype = MEP_INSN_LBUCPA; mep_extract_sfmt_lbucpa (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 50 :
-            if ((entire_insn & 0xf00ffc00) == 0xf005c800)
-              { itype = MEP_INSN_LBUCPM0; mep_extract_sfmt_lbucpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 51 :
-            if ((entire_insn & 0xf00ffc00) == 0xf005cc00)
-              { itype = MEP_INSN_LBUCPM1; mep_extract_sfmt_lbucpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 52 :
-            if ((entire_insn & 0xf00ffc00) == 0xf005d000)
-              { itype = MEP_INSN_LHUCPA; mep_extract_sfmt_lhucpa (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 54 :
-            if ((entire_insn & 0xf00ffc00) == 0xf005d800)
-              { itype = MEP_INSN_LHUCPM0; mep_extract_sfmt_lhucpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 55 :
-            if ((entire_insn & 0xf00ffc00) == 0xf005dc00)
-              { itype = MEP_INSN_LHUCPM1; mep_extract_sfmt_lhucpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 : itype = MEP_INSN_SBCPA; mep_extract_sfmt_sbcpa (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 2 : itype = MEP_INSN_SBCPM0; mep_extract_sfmt_sbcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 3 : itype = MEP_INSN_SBCPM1; mep_extract_sfmt_sbcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 4 : itype = MEP_INSN_SHCPA; mep_extract_sfmt_shcpa (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 6 : itype = MEP_INSN_SHCPM0; mep_extract_sfmt_shcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 7 : itype = MEP_INSN_SHCPM1; mep_extract_sfmt_shcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 8 : itype = MEP_INSN_SWCPA; mep_extract_sfmt_swcpa (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 10 : itype = MEP_INSN_SWCPM0; mep_extract_sfmt_swcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 11 : itype = MEP_INSN_SWCPM1; mep_extract_sfmt_swcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 12 : itype = MEP_INSN_SMCPA; mep_extract_sfmt_smcpa (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 14 : itype = MEP_INSN_SMCPM0; mep_extract_sfmt_smcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 15 : itype = MEP_INSN_SMCPM1; mep_extract_sfmt_smcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 16 : itype = MEP_INSN_LBCPA; mep_extract_sfmt_lbucpa (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 18 : itype = MEP_INSN_LBCPM0; mep_extract_sfmt_lbucpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 19 : itype = MEP_INSN_LBCPM1; mep_extract_sfmt_lbucpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 20 : itype = MEP_INSN_LHCPA; mep_extract_sfmt_lhucpa (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 22 : itype = MEP_INSN_LHCPM0; mep_extract_sfmt_lhucpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 23 : itype = MEP_INSN_LHCPM1; mep_extract_sfmt_lhucpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 24 : itype = MEP_INSN_LWCPA; mep_extract_sfmt_lwcpa (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 26 : itype = MEP_INSN_LWCPM0; mep_extract_sfmt_lwcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 27 : itype = MEP_INSN_LWCPM1; mep_extract_sfmt_lwcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 28 : itype = MEP_INSN_LMCPA; mep_extract_sfmt_lmcpa (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 30 : itype = MEP_INSN_LMCPM0; mep_extract_sfmt_lmcpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 31 : itype = MEP_INSN_LMCPM1; mep_extract_sfmt_lmcpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 48 : itype = MEP_INSN_LBUCPA; mep_extract_sfmt_lbucpa (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 50 : itype = MEP_INSN_LBUCPM0; mep_extract_sfmt_lbucpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 51 : itype = MEP_INSN_LBUCPM1; mep_extract_sfmt_lbucpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 52 : itype = MEP_INSN_LHUCPA; mep_extract_sfmt_lhucpa (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 54 : itype = MEP_INSN_LHUCPM0; mep_extract_sfmt_lhucpm0 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 55 : itype = MEP_INSN_LHUCPM1; mep_extract_sfmt_lhucpm1 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1969,25 +1564,11 @@ mep_scache::decode (mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_in
         }
       case 248 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf008)
-          { itype = MEP_INSN_RI_26; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 252 :
-        if ((entire_insn & 0xf00f0000) == 0xf00c0000)
-          { itype = MEP_INSN_SWCP16; mep_extract_sfmt_swcp16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 253 :
-        if ((entire_insn & 0xf00f0000) == 0xf00d0000)
-          { itype = MEP_INSN_LWCP16; mep_extract_sfmt_lwcp16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 254 :
-        if ((entire_insn & 0xf00f0000) == 0xf00e0000)
-          { itype = MEP_INSN_SMCP16; mep_extract_sfmt_smcp16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 255 :
-        if ((entire_insn & 0xf00f0000) == 0xf00f0000)
-          { itype = MEP_INSN_LMCP16; mep_extract_sfmt_lmcp16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = MEP_INSN_RI_26; mep_extract_sfmt_break (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 252 : itype = MEP_INSN_SWCP16; mep_extract_sfmt_swcp16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 253 : itype = MEP_INSN_LWCP16; mep_extract_sfmt_lwcp16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 254 : itype = MEP_INSN_SMCP16; mep_extract_sfmt_smcp16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 255 : itype = MEP_INSN_LMCP16; mep_extract_sfmt_lmcp16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       default : itype = MEP_INSN_X_INVALID; mep_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       }
     }
@@ -3574,62 +3155,6 @@ mep_extract_sfmt_extb (mep_scache* abuf, mep_basic_cpu* current_cpu, PCADDR pc,
 }
 
 void
-mep_extract_sfmt_exth (mep_scache* abuf, mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_insn, mep_insn_word entire_insn){
-    mep_insn_word insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_clip.f
-    UINT f_rn;
-
-    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
-
-  /* Record the fields for the semantic handler.  */
-  FLD (f_rn) = f_rn;
-  FLD (i_rn) = & current_cpu->hardware.h_gpr[f_rn];
-  if (UNLIKELY(current_cpu->trace_extract_p))
-    {
-      current_cpu->trace_stream 
-        << "0x" << hex << pc << dec << " (sfmt_exth)\t"
-        << " f_rn:0x" << hex << f_rn << dec
-        << endl;
-    }
-
-  /* Record the fields for profiling.  */
-  if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
-    {
-      FLD (in_rn) = f_rn;
-      FLD (out_rn) = f_rn;
-    }
-#undef FLD
-}
-
-void
-mep_extract_sfmt_extub (mep_scache* abuf, mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_insn, mep_insn_word entire_insn){
-    mep_insn_word insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_clip.f
-    UINT f_rn;
-
-    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
-
-  /* Record the fields for the semantic handler.  */
-  FLD (f_rn) = f_rn;
-  FLD (i_rn) = & current_cpu->hardware.h_gpr[f_rn];
-  if (UNLIKELY(current_cpu->trace_extract_p))
-    {
-      current_cpu->trace_stream 
-        << "0x" << hex << pc << dec << " (sfmt_extub)\t"
-        << " f_rn:0x" << hex << f_rn << dec
-        << endl;
-    }
-
-  /* Record the fields for profiling.  */
-  if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
-    {
-      FLD (in_rn) = f_rn;
-      FLD (out_rn) = f_rn;
-    }
-#undef FLD
-}
-
-void
 mep_extract_sfmt_ssarb (mep_scache* abuf, mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_insn, mep_insn_word entire_insn){
     mep_insn_word insn = entire_insn;
 #define FLD(f) abuf->fields.sfmt_ssarb.f
@@ -5548,38 +5073,6 @@ mep_extract_sfmt_clip (mep_scache* abuf, mep_basic_cpu* current_cpu, PCADDR pc,
 }
 
 void
-mep_extract_sfmt_clipu (mep_scache* abuf, mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_insn, mep_insn_word entire_insn){
-    mep_insn_word insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_clip.f
-    UINT f_rn;
-    UINT f_5u24;
-
-    f_rn = EXTRACT_MSB0_UINT (insn, 32, 4, 4);
-    f_5u24 = EXTRACT_MSB0_UINT (insn, 32, 24, 5);
-
-  /* Record the fields for the semantic handler.  */
-  FLD (f_5u24) = f_5u24;
-  FLD (f_rn) = f_rn;
-  FLD (i_rn) = & current_cpu->hardware.h_gpr[f_rn];
-  if (UNLIKELY(current_cpu->trace_extract_p))
-    {
-      current_cpu->trace_stream 
-        << "0x" << hex << pc << dec << " (sfmt_clipu)\t"
-        << " f_5u24:0x" << hex << f_5u24 << dec
-        << " f_rn:0x" << hex << f_rn << dec
-        << endl;
-    }
-
-  /* Record the fields for profiling.  */
-  if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
-    {
-      FLD (in_rn) = f_rn;
-      FLD (out_rn) = f_rn;
-    }
-#undef FLD
-}
-
-void
 mep_extract_sfmt_swcp (mep_scache* abuf, mep_basic_cpu* current_cpu, PCADDR pc, mep_insn_word base_insn, mep_insn_word entire_insn){
     mep_insn_word insn = entire_insn;
 #define FLD(f) abuf->fields.sfmt_swcp16.f
index 25feff3..b6fc796 100644 (file)
@@ -12,7 +12,7 @@ This file is part of the Red Hat simulators.
 #ifndef DESC_MEP_H
 #define DESC_MEP_H
 
-#include "opcode/cgen-bitset.h"
+#include "cgen/bitset.h"
 
 namespace mep {
 
index f791698..c43e4ee 100644 (file)
@@ -4146,7 +4146,7 @@ mep_sem_btstm (mep_basic_cpu* current_cpu, mep_scache* sem)
 {
 current_cpu->check_option_bit (pc);
   {
-    SI opval = ZEXTQISI (ANDQI (current_cpu->GETMEMQI (pc, * FLD (i_rma)), SLLSI (1, FLD (f_3u5))));
+    SI opval = ZEXTQISI (ANDQI (current_cpu->GETMEMUQI (pc, * FLD (i_rma)), SLLSI (1, FLD (f_3u5))));
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gpr" << '[' << ((UINT) 0) << ']' << ":=0x" << hex << opval << dec << "  ";
     current_cpu->hardware.h_gpr[((UINT) 0)] = opval;
index dd726a5..18b0f13 100644 (file)
@@ -1,3 +1,8 @@
+2009-10-23  Doug Evans  <dje@sebabeach.org>
+
+       * mt-desc.h: Regenerate.
+       * mt-decode.cxx: Regenerate.
+
 2006-06-26  Dave Brolley  <brolley@redhat.com>
 
        * mt.h (get_pc): New member of mt_cpu.
index e3b393b..1c9feaf 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 16624b9..7605f26 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -121,20 +121,14 @@ mt_extract_sfmt_empty (mt_scache* abuf, mt_cpu* current_cpu, PCADDR pc, mt_insn_
 static void
 mt_extract_sfmt_add (mt_scache* abuf, mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_insn_word entire_insn);
 static void
-mt_extract_sfmt_addu (mt_scache* abuf, mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_insn_word entire_insn);
-static void
 mt_extract_sfmt_addi (mt_scache* abuf, mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_insn_word entire_insn);
 static void
 mt_extract_sfmt_addui (mt_scache* abuf, mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_insn_word entire_insn);
 static void
-mt_extract_sfmt_andi (mt_scache* abuf, mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_insn_word entire_insn);
-static void
 mt_extract_sfmt_nop (mt_scache* abuf, mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_insn_word entire_insn);
 static void
 mt_extract_sfmt_ldui (mt_scache* abuf, mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_insn_word entire_insn);
 static void
-mt_extract_sfmt_lsl (mt_scache* abuf, mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_insn_word entire_insn);
-static void
 mt_extract_sfmt_brlt (mt_scache* abuf, mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_insn_word entire_insn);
 static void
 mt_extract_sfmt_jmp (mt_scache* abuf, mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_insn_word entire_insn);
@@ -171,50 +165,32 @@ mt_scache::decode (mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_in
         if ((entire_insn & 0xff000fff) == 0x0)
           { itype = MT_INSN_ADD; mt_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 1 :
-        if ((entire_insn & 0xff000000) == 0x1000000)
-          { itype = MT_INSN_ADDI; mt_extract_sfmt_addi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 1 : itype = MT_INSN_ADDI; mt_extract_sfmt_addi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 2 :
         if ((entire_insn & 0xff000fff) == 0x2000000)
-          { itype = MT_INSN_ADDU; mt_extract_sfmt_addu (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 3 :
-        if ((entire_insn & 0xff000000) == 0x3000000)
-          { itype = MT_INSN_ADDUI; mt_extract_sfmt_addui (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+          { itype = MT_INSN_ADDU; mt_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 3 : itype = MT_INSN_ADDUI; mt_extract_sfmt_addui (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 4 :
         if ((entire_insn & 0xff000fff) == 0x4000000)
           { itype = MT_INSN_SUB; mt_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 5 :
-        if ((entire_insn & 0xff000000) == 0x5000000)
-          { itype = MT_INSN_SUBI; mt_extract_sfmt_addi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 5 : itype = MT_INSN_SUBI; mt_extract_sfmt_addi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 6 :
         if ((entire_insn & 0xff000fff) == 0x6000000)
-          { itype = MT_INSN_SUBU; mt_extract_sfmt_addu (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 7 :
-        if ((entire_insn & 0xff000000) == 0x7000000)
-          { itype = MT_INSN_SUBUI; mt_extract_sfmt_addui (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+          { itype = MT_INSN_SUBU; mt_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 7 : itype = MT_INSN_SUBUI; mt_extract_sfmt_addui (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 8 :
         if ((entire_insn & 0xff000fff) == 0x8000000)
           { itype = MT_INSN_MUL; mt_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 9 :
-        if ((entire_insn & 0xff000000) == 0x9000000)
-          { itype = MT_INSN_MULI; mt_extract_sfmt_addi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 9 : itype = MT_INSN_MULI; mt_extract_sfmt_addi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 16 :
         if ((entire_insn & 0xff000fff) == 0x10000000)
           { itype = MT_INSN_AND; mt_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 17 :
-        if ((entire_insn & 0xff000000) == 0x11000000)
-          { itype = MT_INSN_ANDI; mt_extract_sfmt_andi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 17 : itype = MT_INSN_ANDI; mt_extract_sfmt_addui (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 18 :
         {
           unsigned int val = (((insn >> 12) & (127 << 0)));
@@ -399,82 +375,49 @@ mt_scache::decode (mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_in
           default : itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
-      case 19 :
-        if ((entire_insn & 0xff000000) == 0x13000000)
-          { itype = MT_INSN_ORI; mt_extract_sfmt_andi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 19 : itype = MT_INSN_ORI; mt_extract_sfmt_addui (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 20 :
         if ((entire_insn & 0xff000fff) == 0x14000000)
           { itype = MT_INSN_XOR; mt_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 21 :
-        if ((entire_insn & 0xff000000) == 0x15000000)
-          { itype = MT_INSN_XORI; mt_extract_sfmt_andi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 21 : itype = MT_INSN_XORI; mt_extract_sfmt_addui (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 22 :
         if ((entire_insn & 0xff000fff) == 0x16000000)
           { itype = MT_INSN_NAND; mt_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 23 :
-        if ((entire_insn & 0xff000000) == 0x17000000)
-          { itype = MT_INSN_NANDI; mt_extract_sfmt_andi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 23 : itype = MT_INSN_NANDI; mt_extract_sfmt_addui (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 24 :
         if ((entire_insn & 0xff000fff) == 0x18000000)
           { itype = MT_INSN_NOR; mt_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 25 :
-        if ((entire_insn & 0xff000000) == 0x19000000)
-          { itype = MT_INSN_NORI; mt_extract_sfmt_andi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 25 : itype = MT_INSN_NORI; mt_extract_sfmt_addui (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 26 :
         if ((entire_insn & 0xff000fff) == 0x1a000000)
           { itype = MT_INSN_XNOR; mt_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 27 :
-        if ((entire_insn & 0xff000000) == 0x1b000000)
-          { itype = MT_INSN_XNORI; mt_extract_sfmt_andi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 27 : itype = MT_INSN_XNORI; mt_extract_sfmt_addui (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 29 :
         if ((entire_insn & 0xfff00000) == 0x1d000000)
           { itype = MT_INSN_LDUI; mt_extract_sfmt_ldui (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 32 :
         if ((entire_insn & 0xff000fff) == 0x20000000)
-          { itype = MT_INSN_LSL; mt_extract_sfmt_lsl (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 33 :
-        if ((entire_insn & 0xff000000) == 0x21000000)
-          { itype = MT_INSN_LSLI; mt_extract_sfmt_addi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+          { itype = MT_INSN_LSL; mt_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 33 : itype = MT_INSN_LSLI; mt_extract_sfmt_addi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 34 :
         if ((entire_insn & 0xff000fff) == 0x22000000)
-          { itype = MT_INSN_LSR; mt_extract_sfmt_lsl (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 35 :
-        if ((entire_insn & 0xff000000) == 0x23000000)
-          { itype = MT_INSN_LSRI; mt_extract_sfmt_addi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+          { itype = MT_INSN_LSR; mt_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 35 : itype = MT_INSN_LSRI; mt_extract_sfmt_addi (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 36 :
         if ((entire_insn & 0xff000fff) == 0x24000000)
-          { itype = MT_INSN_ASR; mt_extract_sfmt_lsl (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 37 :
-        if ((entire_insn & 0xff000000) == 0x25000000)
-          { itype = MT_INSN_ASRI; mt_extract_sfmt_addi (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 49 :
-        if ((entire_insn & 0xff000000) == 0x31000000)
-          { itype = MT_INSN_BRLT; mt_extract_sfmt_brlt (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 51 :
-        if ((entire_insn & 0xff000000) == 0x33000000)
-          { itype = MT_INSN_BRLE; mt_extract_sfmt_brlt (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 53 :
-        if ((entire_insn & 0xff000000) == 0x35000000)
-          { itype = MT_INSN_BREQ; mt_extract_sfmt_brlt (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+          { itype = MT_INSN_ASR; mt_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 37 : itype = MT_INSN_ASRI; mt_extract_sfmt_addi (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 49 : itype = MT_INSN_BRLT; mt_extract_sfmt_brlt (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 51 : itype = MT_INSN_BRLE; mt_extract_sfmt_brlt (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 53 : itype = MT_INSN_BREQ; mt_extract_sfmt_brlt (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 55 :
         if ((entire_insn & 0xffff0000) == 0x37000000)
           { itype = MT_INSN_JMP; mt_extract_sfmt_jmp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
@@ -483,22 +426,13 @@ mt_scache::decode (mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_in
         if ((entire_insn & 0xff0f0fff) == 0x38000000)
           { itype = MT_INSN_JAL; mt_extract_sfmt_jal (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 59 :
-        if ((entire_insn & 0xff000000) == 0x3b000000)
-          { itype = MT_INSN_BRNE; mt_extract_sfmt_brlt (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 59 : itype = MT_INSN_BRNE; mt_extract_sfmt_brlt (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 61 :
         if ((entire_insn & 0xff0f0000) == 0x3d000000)
           { itype = MT_INSN_DBNZ; mt_extract_sfmt_dbnz (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 65 :
-        if ((entire_insn & 0xff000000) == 0x41000000)
-          { itype = MT_INSN_LDW; mt_extract_sfmt_ldw (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-      case 67 :
-        if ((entire_insn & 0xff000000) == 0x43000000)
-          { itype = MT_INSN_STW; mt_extract_sfmt_stw (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 65 : itype = MT_INSN_LDW; mt_extract_sfmt_ldw (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 67 : itype = MT_INSN_STW; mt_extract_sfmt_stw (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 96 :
         if ((entire_insn & 0xffffffff) == 0x60000000)
           { itype = MT_INSN_EI; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done; }
@@ -540,66 +474,39 @@ mt_scache::decode (mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_in
       case 148 : /* fall through */
       case 149 : /* fall through */
       case 150 : /* fall through */
-      case 151 :
-        if ((entire_insn & 0xfc000000) == 0x94000000)
-          { itype = MT_INSN_FBCCI; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 151 : itype = MT_INSN_FBCCI; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 152 : /* fall through */
       case 153 : /* fall through */
       case 154 : /* fall through */
-      case 155 :
-        if ((entire_insn & 0xfc000000) == 0x98000000)
-          { itype = MT_INSN_FBRCI; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 155 : itype = MT_INSN_FBRCI; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 156 : /* fall through */
       case 157 : /* fall through */
       case 158 : /* fall through */
-      case 159 :
-        if ((entire_insn & 0xfc000000) == 0x9c000000)
-          { itype = MT_INSN_FBCRI; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 159 : itype = MT_INSN_FBCRI; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 160 : /* fall through */
       case 161 : /* fall through */
       case 162 : /* fall through */
-      case 163 :
-        if ((entire_insn & 0xfc000000) == 0xa0000000)
-          { itype = MT_INSN_FBRRI; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 163 : itype = MT_INSN_FBRRI; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 164 : /* fall through */
       case 165 : /* fall through */
       case 166 : /* fall through */
-      case 167 :
-        if ((entire_insn & 0xfc000000) == 0xa4000000)
-          { itype = MT_INSN_MFBCCI; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 167 : itype = MT_INSN_MFBCCI; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 168 : /* fall through */
       case 169 : /* fall through */
       case 170 : /* fall through */
-      case 171 :
-        if ((entire_insn & 0xfc000000) == 0xa8000000)
-          { itype = MT_INSN_MFBRCI; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 171 : itype = MT_INSN_MFBRCI; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 172 : /* fall through */
       case 173 : /* fall through */
       case 174 : /* fall through */
-      case 175 :
-        if ((entire_insn & 0xfc000000) == 0xac000000)
-          { itype = MT_INSN_MFBCRI; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 175 : itype = MT_INSN_MFBCRI; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 176 : /* fall through */
       case 177 : /* fall through */
       case 178 : /* fall through */
-      case 179 :
-        if ((entire_insn & 0xfc000000) == 0xb0000000)
-          { itype = MT_INSN_MFBRRI; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 179 : itype = MT_INSN_MFBRRI; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 180 : /* fall through */
       case 181 : /* fall through */
       case 182 : /* fall through */
-      case 183 :
-        if ((entire_insn & 0xfc000000) == 0xb4000000)
-          { itype = MT_INSN_FBCBDR; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 183 : itype = MT_INSN_FBCBDR; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 184 : /* fall through */
       case 185 : /* fall through */
       case 186 : /* fall through */
@@ -624,17 +531,11 @@ mt_scache::decode (mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_in
       case 196 : /* fall through */
       case 197 : /* fall through */
       case 198 : /* fall through */
-      case 199 :
-        if ((entire_insn & 0xfc000000) == 0xc4000000)
-          { itype = MT_INSN_DUPCBCAST; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 199 : itype = MT_INSN_DUPCBCAST; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 200 : /* fall through */
       case 201 : /* fall through */
       case 202 : /* fall through */
-      case 203 :
-        if ((entire_insn & 0xfc000000) == 0xc8000000)
-          { itype = MT_INSN_WFBI; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 203 : itype = MT_INSN_WFBI; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 204 :
         if ((entire_insn & 0xff000040) == 0xcc000000)
           { itype = MT_INSN_WFB; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done; }
@@ -649,17 +550,11 @@ mt_scache::decode (mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_in
       case 212 : /* fall through */
       case 213 : /* fall through */
       case 214 : /* fall through */
-      case 215 :
-        if ((entire_insn & 0xfc000000) == 0xd4000000)
-          { itype = MT_INSN_FBCBINC; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 215 : itype = MT_INSN_FBCBINC; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 216 : /* fall through */
       case 217 : /* fall through */
       case 218 : /* fall through */
-      case 219 :
-        if ((entire_insn & 0xfc000000) == 0xd8000000)
-          { itype = MT_INSN_RCXMODE; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 219 : itype = MT_INSN_RCXMODE; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 220 : /* fall through */
       case 221 : /* fall through */
       case 222 : /* fall through */
@@ -670,45 +565,27 @@ mt_scache::decode (mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_in
       case 224 : /* fall through */
       case 225 : /* fall through */
       case 226 : /* fall through */
-      case 227 :
-        if ((entire_insn & 0xfc000000) == 0xe0000000)
-          { itype = MT_INSN_WFBINC; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 227 : itype = MT_INSN_WFBINC; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 228 : /* fall through */
       case 229 : /* fall through */
       case 230 : /* fall through */
-      case 231 :
-        if ((entire_insn & 0xfc000000) == 0xe4000000)
-          { itype = MT_INSN_MWFBINC; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 231 : itype = MT_INSN_MWFBINC; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 232 : /* fall through */
       case 233 : /* fall through */
       case 234 : /* fall through */
-      case 235 :
-        if ((entire_insn & 0xfc000000) == 0xe8000000)
-          { itype = MT_INSN_WFBINCR; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 235 : itype = MT_INSN_WFBINCR; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 236 : /* fall through */
       case 237 : /* fall through */
       case 238 : /* fall through */
-      case 239 :
-        if ((entire_insn & 0xfc000000) == 0xec000000)
-          { itype = MT_INSN_MWFBINCR; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 239 : itype = MT_INSN_MWFBINCR; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 240 : /* fall through */
       case 241 : /* fall through */
       case 242 : /* fall through */
-      case 243 :
-        if ((entire_insn & 0xfc000000) == 0xf0000000)
-          { itype = MT_INSN_FBCBINCS; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 243 : itype = MT_INSN_FBCBINCS; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 244 : /* fall through */
       case 245 : /* fall through */
       case 246 : /* fall through */
-      case 247 :
-        if ((entire_insn & 0xfc000000) == 0xf4000000)
-          { itype = MT_INSN_MFBCBINCS; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = MT_INSN_X_INVALID; mt_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 247 : itype = MT_INSN_MFBCBINCS; mt_extract_sfmt_nop (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 248 : /* fall through */
       case 249 : /* fall through */
       case 250 : /* fall through */
@@ -786,35 +663,6 @@ mt_extract_sfmt_add (mt_scache* abuf, mt_cpu* current_cpu, PCADDR pc, mt_insn_wo
 }
 
 void
-mt_extract_sfmt_addu (mt_scache* abuf, mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_insn_word entire_insn){
-    mt_insn_word insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_add.f
-    UINT f_sr1;
-    UINT f_sr2;
-    UINT f_drrr;
-
-    f_sr1 = EXTRACT_LSB0_UINT (insn, 32, 23, 4);
-    f_sr2 = EXTRACT_LSB0_UINT (insn, 32, 19, 4);
-    f_drrr = EXTRACT_LSB0_UINT (insn, 32, 15, 4);
-
-  /* Record the fields for the semantic handler.  */
-  FLD (f_sr1) = f_sr1;
-  FLD (f_sr2) = f_sr2;
-  FLD (f_drrr) = f_drrr;
-  if (UNLIKELY(current_cpu->trace_extract_p))
-    {
-      current_cpu->trace_stream 
-        << "0x" << hex << pc << dec << " (sfmt_addu)\t"
-        << " f_sr1:0x" << hex << f_sr1 << dec
-        << " f_sr2:0x" << hex << f_sr2 << dec
-        << " f_drrr:0x" << hex << f_drrr << dec
-        << endl;
-    }
-
-#undef FLD
-}
-
-void
 mt_extract_sfmt_addi (mt_scache* abuf, mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_insn_word entire_insn){
     mt_insn_word insn = entire_insn;
 #define FLD(f) abuf->fields.sfmt_addi.f
@@ -873,35 +721,6 @@ mt_extract_sfmt_addui (mt_scache* abuf, mt_cpu* current_cpu, PCADDR pc, mt_insn_
 }
 
 void
-mt_extract_sfmt_andi (mt_scache* abuf, mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_insn_word entire_insn){
-    mt_insn_word insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_addui.f
-    UINT f_sr1;
-    UINT f_dr;
-    UINT f_imm16u;
-
-    f_sr1 = EXTRACT_LSB0_UINT (insn, 32, 23, 4);
-    f_dr = EXTRACT_LSB0_UINT (insn, 32, 19, 4);
-    f_imm16u = EXTRACT_LSB0_UINT (insn, 32, 15, 16);
-
-  /* Record the fields for the semantic handler.  */
-  FLD (f_sr1) = f_sr1;
-  FLD (f_imm16u) = f_imm16u;
-  FLD (f_dr) = f_dr;
-  if (UNLIKELY(current_cpu->trace_extract_p))
-    {
-      current_cpu->trace_stream 
-        << "0x" << hex << pc << dec << " (sfmt_andi)\t"
-        << " f_sr1:0x" << hex << f_sr1 << dec
-        << " f_imm16u:0x" << hex << f_imm16u << dec
-        << " f_dr:0x" << hex << f_dr << dec
-        << endl;
-    }
-
-#undef FLD
-}
-
-void
 mt_extract_sfmt_nop (mt_scache* abuf, mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_insn_word entire_insn){
     mt_insn_word insn = entire_insn;
 #define FLD(f) abuf->fields.fmt_empty.f
@@ -944,35 +763,6 @@ mt_extract_sfmt_ldui (mt_scache* abuf, mt_cpu* current_cpu, PCADDR pc, mt_insn_w
 }
 
 void
-mt_extract_sfmt_lsl (mt_scache* abuf, mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_insn_word entire_insn){
-    mt_insn_word insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_add.f
-    UINT f_sr1;
-    UINT f_sr2;
-    UINT f_drrr;
-
-    f_sr1 = EXTRACT_LSB0_UINT (insn, 32, 23, 4);
-    f_sr2 = EXTRACT_LSB0_UINT (insn, 32, 19, 4);
-    f_drrr = EXTRACT_LSB0_UINT (insn, 32, 15, 4);
-
-  /* Record the fields for the semantic handler.  */
-  FLD (f_sr1) = f_sr1;
-  FLD (f_sr2) = f_sr2;
-  FLD (f_drrr) = f_drrr;
-  if (UNLIKELY(current_cpu->trace_extract_p))
-    {
-      current_cpu->trace_stream 
-        << "0x" << hex << pc << dec << " (sfmt_lsl)\t"
-        << " f_sr1:0x" << hex << f_sr1 << dec
-        << " f_sr2:0x" << hex << f_sr2 << dec
-        << " f_drrr:0x" << hex << f_drrr << dec
-        << endl;
-    }
-
-#undef FLD
-}
-
-void
 mt_extract_sfmt_brlt (mt_scache* abuf, mt_cpu* current_cpu, PCADDR pc, mt_insn_word base_insn, mt_insn_word entire_insn){
     mt_insn_word insn = entire_insn;
 #define FLD(f) abuf->fields.sfmt_brlt.f
index b8b32ea..7df0638 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 7a3c96b..1c41cf0 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 170ca3f..15578e2 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -12,7 +12,7 @@ This file is part of the Red Hat simulators.
 #ifndef DESC_MT_H
 #define DESC_MT_H
 
-#include "opcode/cgen-bitset.h"
+#include "cgen/bitset.h"
 
 namespace mt {
 
index 25edbb4..674ea8c 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -807,7 +807,7 @@ mt_sem_brlt (mt_cpu* current_cpu, mt_scache* sem, const int tick,
   PCADDR npc = pc + 4;
 
 {
-if (LTSI (current_cpu->hardware.h_spr[FLD (f_sr1)], current_cpu->hardware.h_spr[FLD (f_sr2)])) {
+if (LTUSI (current_cpu->hardware.h_spr[FLD (f_sr1)], current_cpu->hardware.h_spr[FLD (f_sr2)])) {
   {
     USI opval = ADDSI (pc, EXTSISI (FLD (f_imm16s)));
     buf.h_pc_writes [(tick + 1) % mt::pipe_sz].push (mt::write<USI>(pc, opval));
@@ -835,7 +835,7 @@ mt_sem_brle (mt_cpu* current_cpu, mt_scache* sem, const int tick,
   PCADDR npc = pc + 4;
 
 {
-if (LESI (current_cpu->hardware.h_spr[FLD (f_sr1)], current_cpu->hardware.h_spr[FLD (f_sr2)])) {
+if (LEUSI (current_cpu->hardware.h_spr[FLD (f_sr1)], current_cpu->hardware.h_spr[FLD (f_sr2)])) {
   {
     USI opval = ADDSI (pc, EXTSISI (FLD (f_imm16s)));
     buf.h_pc_writes [(tick + 1) % mt::pipe_sz].push (mt::write<USI>(pc, opval));
index a964dfe..1e9717f 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 258e056..308c354 100644 (file)
@@ -1,3 +1,19 @@
+2009-10-23  Doug Evans  <dje@sebabeach.org>
+
+       * sh-desc.h: Regenerate.
+       * sh2-decode.cxx: Regenerate.
+       * sh2a-fpu-decode.cxx: Regenerate.
+       * sh2a-nofpu-decode.cxx: Regenerate.
+       * sh2e-decode.cxx: Regenerate.
+       * sh3-decode.cxx: Regenerate.
+       * sh3e-decode.cxx: Regenerate.
+       * sh4-decode.cxx: Regenerate.
+       * sh4-nofpu-decode.cxx: Regenerate.
+       * sh4a-decode.cxx: Regenerate.
+       * sh4a-nofpu-decode.cxx: Regenerate.
+       * sh4al-decode.cxx: Regenerate.
+       * sh5-compact-decode.cxx: Regenerate.
+
 2007-08-13  Frank Ch. Eigler  <fche@redhat.com>
 
        * sh.h: Protect CGEN_CPU_FPU macro against multiple definitions.
index 453c5e2..a956d69 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -12,7 +12,7 @@ This file is part of the Red Hat simulators.
 #ifndef DESC_SH_H
 #define DESC_SH_H
 
-#include "opcode/cgen-bitset.h"
+#include "cgen/bitset.h"
 
 namespace sh {
 
index ef670d3..176039e 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -103,7 +103,7 @@ current_cpu->hardware.h_pc = ANDDI (newval, INVDI (1));
 }
  }
 
-  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (0) : (current_cpu->hardware.h_gr[regno])); }
+  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (MAKEDI (0, 0)) : (current_cpu->hardware.h_gr[regno])); }
   inline void h_gr_set (UINT regno, DI newval) { if (((regno) != (63))) {
 current_cpu->hardware.h_gr[regno] = newval;
 } else {
index 509c2ef..d248aaa 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -398,33 +398,25 @@ sh2_scache::decode (sh2_cpu* current_cpu, PCADDR pc, sh2_insn_word base_insn, sh
       case 36 : /* fall through */
       case 52 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x4)
-          { itype = SH2_INSN_MOVB3_COMPACT; sh2_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVB3_COMPACT; sh2_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 5 : /* fall through */
       case 21 : /* fall through */
       case 37 : /* fall through */
       case 53 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x5)
-          { itype = SH2_INSN_MOVW3_COMPACT; sh2_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVW3_COMPACT; sh2_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 6 : /* fall through */
       case 22 : /* fall through */
       case 38 : /* fall through */
       case 54 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6)
-          { itype = SH2_INSN_MOVL3_COMPACT; sh2_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVL3_COMPACT; sh2_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 7 : /* fall through */
       case 23 : /* fall through */
       case 39 : /* fall through */
       case 55 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x7)
-          { itype = SH2_INSN_MULL_COMPACT; sh2_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MULL_COMPACT; sh2_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 8 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xffff) == 0x8)
@@ -450,33 +442,25 @@ sh2_scache::decode (sh2_cpu* current_cpu, PCADDR pc, sh2_insn_word base_insn, sh
       case 44 : /* fall through */
       case 60 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xc)
-          { itype = SH2_INSN_MOVB8_COMPACT; sh2_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVB8_COMPACT; sh2_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 13 : /* fall through */
       case 29 : /* fall through */
       case 45 : /* fall through */
       case 61 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xd)
-          { itype = SH2_INSN_MOVW8_COMPACT; sh2_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVW8_COMPACT; sh2_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 14 : /* fall through */
       case 30 : /* fall through */
       case 46 : /* fall through */
       case 62 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xe)
-          { itype = SH2_INSN_MOVL8_COMPACT; sh2_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVL8_COMPACT; sh2_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 15 : /* fall through */
       case 31 : /* fall through */
       case 47 : /* fall through */
       case 63 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf)
-          { itype = SH2_INSN_MACL_COMPACT; sh2_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MACL_COMPACT; sh2_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 18 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x12)
@@ -587,241 +571,181 @@ sh2_scache::decode (sh2_cpu* current_cpu, PCADDR pc, sh2_insn_word base_insn, sh
       case 126 : /* fall through */
       case 127 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x1000)
-          { itype = SH2_INSN_MOVL5_COMPACT; sh2_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVL5_COMPACT; sh2_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 128 : /* fall through */
       case 144 : /* fall through */
       case 160 : /* fall through */
       case 176 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2000)
-          { itype = SH2_INSN_MOVB1_COMPACT; sh2_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVB1_COMPACT; sh2_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 129 : /* fall through */
       case 145 : /* fall through */
       case 161 : /* fall through */
       case 177 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2001)
-          { itype = SH2_INSN_MOVW1_COMPACT; sh2_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVW1_COMPACT; sh2_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 130 : /* fall through */
       case 146 : /* fall through */
       case 162 : /* fall through */
       case 178 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2002)
-          { itype = SH2_INSN_MOVL1_COMPACT; sh2_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVL1_COMPACT; sh2_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 132 : /* fall through */
       case 148 : /* fall through */
       case 164 : /* fall through */
       case 180 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2004)
-          { itype = SH2_INSN_MOVB2_COMPACT; sh2_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVB2_COMPACT; sh2_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 133 : /* fall through */
       case 149 : /* fall through */
       case 165 : /* fall through */
       case 181 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2005)
-          { itype = SH2_INSN_MOVW2_COMPACT; sh2_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVW2_COMPACT; sh2_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 134 : /* fall through */
       case 150 : /* fall through */
       case 166 : /* fall through */
       case 182 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2006)
-          { itype = SH2_INSN_MOVL2_COMPACT; sh2_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVL2_COMPACT; sh2_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 135 : /* fall through */
       case 151 : /* fall through */
       case 167 : /* fall through */
       case 183 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2007)
-          { itype = SH2_INSN_DIV0S_COMPACT; sh2_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_DIV0S_COMPACT; sh2_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 136 : /* fall through */
       case 152 : /* fall through */
       case 168 : /* fall through */
       case 184 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2008)
-          { itype = SH2_INSN_TST_COMPACT; sh2_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_TST_COMPACT; sh2_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 137 : /* fall through */
       case 153 : /* fall through */
       case 169 : /* fall through */
       case 185 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2009)
-          { itype = SH2_INSN_AND_COMPACT; sh2_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_AND_COMPACT; sh2_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 138 : /* fall through */
       case 154 : /* fall through */
       case 170 : /* fall through */
       case 186 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200a)
-          { itype = SH2_INSN_XOR_COMPACT; sh2_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_XOR_COMPACT; sh2_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 139 : /* fall through */
       case 155 : /* fall through */
       case 171 : /* fall through */
       case 187 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200b)
-          { itype = SH2_INSN_OR_COMPACT; sh2_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_OR_COMPACT; sh2_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 140 : /* fall through */
       case 156 : /* fall through */
       case 172 : /* fall through */
       case 188 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200c)
-          { itype = SH2_INSN_CMPSTR_COMPACT; sh2_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_CMPSTR_COMPACT; sh2_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 141 : /* fall through */
       case 157 : /* fall through */
       case 173 : /* fall through */
       case 189 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200d)
-          { itype = SH2_INSN_XTRCT_COMPACT; sh2_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_XTRCT_COMPACT; sh2_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 142 : /* fall through */
       case 158 : /* fall through */
       case 174 : /* fall through */
       case 190 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200e)
-          { itype = SH2_INSN_MULUW_COMPACT; sh2_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MULUW_COMPACT; sh2_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 143 : /* fall through */
       case 159 : /* fall through */
       case 175 : /* fall through */
       case 191 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200f)
-          { itype = SH2_INSN_MULSW_COMPACT; sh2_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MULSW_COMPACT; sh2_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 192 : /* fall through */
       case 208 : /* fall through */
       case 224 : /* fall through */
       case 240 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3000)
-          { itype = SH2_INSN_CMPEQ_COMPACT; sh2_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_CMPEQ_COMPACT; sh2_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 194 : /* fall through */
       case 210 : /* fall through */
       case 226 : /* fall through */
       case 242 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3002)
-          { itype = SH2_INSN_CMPHS_COMPACT; sh2_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_CMPHS_COMPACT; sh2_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 195 : /* fall through */
       case 211 : /* fall through */
       case 227 : /* fall through */
       case 243 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3003)
-          { itype = SH2_INSN_CMPGE_COMPACT; sh2_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_CMPGE_COMPACT; sh2_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 196 : /* fall through */
       case 212 : /* fall through */
       case 228 : /* fall through */
       case 244 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3004)
-          { itype = SH2_INSN_DIV1_COMPACT; sh2_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_DIV1_COMPACT; sh2_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 197 : /* fall through */
       case 213 : /* fall through */
       case 229 : /* fall through */
       case 245 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3005)
-          { itype = SH2_INSN_DMULUL_COMPACT; sh2_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_DMULUL_COMPACT; sh2_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 198 : /* fall through */
       case 214 : /* fall through */
       case 230 : /* fall through */
       case 246 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3006)
-          { itype = SH2_INSN_CMPHI_COMPACT; sh2_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_CMPHI_COMPACT; sh2_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 199 : /* fall through */
       case 215 : /* fall through */
       case 231 : /* fall through */
       case 247 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3007)
-          { itype = SH2_INSN_CMPGT_COMPACT; sh2_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_CMPGT_COMPACT; sh2_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 200 : /* fall through */
       case 216 : /* fall through */
       case 232 : /* fall through */
       case 248 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3008)
-          { itype = SH2_INSN_SUB_COMPACT; sh2_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_SUB_COMPACT; sh2_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 202 : /* fall through */
       case 218 : /* fall through */
       case 234 : /* fall through */
       case 250 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300a)
-          { itype = SH2_INSN_SUBC_COMPACT; sh2_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_SUBC_COMPACT; sh2_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 203 : /* fall through */
       case 219 : /* fall through */
       case 235 : /* fall through */
       case 251 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300b)
-          { itype = SH2_INSN_SUBV_COMPACT; sh2_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_SUBV_COMPACT; sh2_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 204 : /* fall through */
       case 220 : /* fall through */
       case 236 : /* fall through */
       case 252 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300c)
-          { itype = SH2_INSN_ADD_COMPACT; sh2_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_ADD_COMPACT; sh2_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 205 : /* fall through */
       case 221 : /* fall through */
       case 237 : /* fall through */
       case 253 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300d)
-          { itype = SH2_INSN_DMULSL_COMPACT; sh2_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_DMULSL_COMPACT; sh2_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 206 : /* fall through */
       case 222 : /* fall through */
       case 238 : /* fall through */
       case 254 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300e)
-          { itype = SH2_INSN_ADDC_COMPACT; sh2_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_ADDC_COMPACT; sh2_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 207 : /* fall through */
       case 223 : /* fall through */
       case 239 : /* fall through */
       case 255 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300f)
-          { itype = SH2_INSN_ADDV_COMPACT; sh2_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_ADDV_COMPACT; sh2_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 256 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x4000)
@@ -882,9 +806,7 @@ sh2_scache::decode (sh2_cpu* current_cpu, PCADDR pc, sh2_insn_word base_insn, sh
       case 303 : /* fall through */
       case 319 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400f)
-          { itype = SH2_INSN_MACW_COMPACT; sh2_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MACW_COMPACT; sh2_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 272 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x4010)
@@ -1075,137 +997,103 @@ sh2_scache::decode (sh2_cpu* current_cpu, PCADDR pc, sh2_insn_word base_insn, sh
       case 382 : /* fall through */
       case 383 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x5000)
-          { itype = SH2_INSN_MOVL11_COMPACT; sh2_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVL11_COMPACT; sh2_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 384 : /* fall through */
       case 400 : /* fall through */
       case 416 : /* fall through */
       case 432 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6000)
-          { itype = SH2_INSN_MOVB6_COMPACT; sh2_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVB6_COMPACT; sh2_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 385 : /* fall through */
       case 401 : /* fall through */
       case 417 : /* fall through */
       case 433 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6001)
-          { itype = SH2_INSN_MOVW6_COMPACT; sh2_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVW6_COMPACT; sh2_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 386 : /* fall through */
       case 402 : /* fall through */
       case 418 : /* fall through */
       case 434 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6002)
-          { itype = SH2_INSN_MOVL6_COMPACT; sh2_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVL6_COMPACT; sh2_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 387 : /* fall through */
       case 403 : /* fall through */
       case 419 : /* fall through */
       case 435 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6003)
-          { itype = SH2_INSN_MOV_COMPACT; sh2_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOV_COMPACT; sh2_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 388 : /* fall through */
       case 404 : /* fall through */
       case 420 : /* fall through */
       case 436 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6004)
-          { itype = SH2_INSN_MOVB7_COMPACT; sh2_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVB7_COMPACT; sh2_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 389 : /* fall through */
       case 405 : /* fall through */
       case 421 : /* fall through */
       case 437 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6005)
-          { itype = SH2_INSN_MOVW7_COMPACT; sh2_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVW7_COMPACT; sh2_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 390 : /* fall through */
       case 406 : /* fall through */
       case 422 : /* fall through */
       case 438 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6006)
-          { itype = SH2_INSN_MOVL7_COMPACT; sh2_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVL7_COMPACT; sh2_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 391 : /* fall through */
       case 407 : /* fall through */
       case 423 : /* fall through */
       case 439 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6007)
-          { itype = SH2_INSN_NOT_COMPACT; sh2_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_NOT_COMPACT; sh2_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 392 : /* fall through */
       case 408 : /* fall through */
       case 424 : /* fall through */
       case 440 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6008)
-          { itype = SH2_INSN_SWAPB_COMPACT; sh2_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_SWAPB_COMPACT; sh2_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 393 : /* fall through */
       case 409 : /* fall through */
       case 425 : /* fall through */
       case 441 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6009)
-          { itype = SH2_INSN_SWAPW_COMPACT; sh2_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_SWAPW_COMPACT; sh2_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 394 : /* fall through */
       case 410 : /* fall through */
       case 426 : /* fall through */
       case 442 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600a)
-          { itype = SH2_INSN_NEGC_COMPACT; sh2_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_NEGC_COMPACT; sh2_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 395 : /* fall through */
       case 411 : /* fall through */
       case 427 : /* fall through */
       case 443 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600b)
-          { itype = SH2_INSN_NEG_COMPACT; sh2_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_NEG_COMPACT; sh2_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 396 : /* fall through */
       case 412 : /* fall through */
       case 428 : /* fall through */
       case 444 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600c)
-          { itype = SH2_INSN_EXTUB_COMPACT; sh2_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_EXTUB_COMPACT; sh2_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 397 : /* fall through */
       case 413 : /* fall through */
       case 429 : /* fall through */
       case 445 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600d)
-          { itype = SH2_INSN_EXTUW_COMPACT; sh2_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_EXTUW_COMPACT; sh2_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 398 : /* fall through */
       case 414 : /* fall through */
       case 430 : /* fall through */
       case 446 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600e)
-          { itype = SH2_INSN_EXTSB_COMPACT; sh2_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_EXTSB_COMPACT; sh2_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 399 : /* fall through */
       case 415 : /* fall through */
       case 431 : /* fall through */
       case 447 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600f)
-          { itype = SH2_INSN_EXTSW_COMPACT; sh2_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_EXTSW_COMPACT; sh2_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 448 : /* fall through */
       case 449 : /* fall through */
       case 450 : /* fall through */
@@ -1271,9 +1159,7 @@ sh2_scache::decode (sh2_cpu* current_cpu, PCADDR pc, sh2_insn_word base_insn, sh
       case 510 : /* fall through */
       case 511 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x7000)
-          { itype = SH2_INSN_ADDI_COMPACT; sh2_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_ADDI_COMPACT; sh2_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 512 : /* fall through */
       case 513 : /* fall through */
       case 514 : /* fall through */
@@ -1344,49 +1230,31 @@ sh2_scache::decode (sh2_cpu* current_cpu, PCADDR pc, sh2_insn_word base_insn, sh
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8000)
-              { itype = SH2_INSN_MOVB5_COMPACT; sh2_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_MOVB5_COMPACT; sh2_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8100)
-              { itype = SH2_INSN_MOVW5_COMPACT; sh2_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_MOVW5_COMPACT; sh2_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8400)
-              { itype = SH2_INSN_MOVB10_COMPACT; sh2_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_MOVB10_COMPACT; sh2_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8500)
-              { itype = SH2_INSN_MOVW11_COMPACT; sh2_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_MOVW11_COMPACT; sh2_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8800)
-              { itype = SH2_INSN_CMPEQI_COMPACT; sh2_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_CMPEQI_COMPACT; sh2_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8900)
-              { itype = SH2_INSN_BT_COMPACT; sh2_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_BT_COMPACT; sh2_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8b00)
-              { itype = SH2_INSN_BF_COMPACT; sh2_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_BF_COMPACT; sh2_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8d00)
-              { itype = SH2_INSN_BTS_COMPACT; sh2_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_BTS_COMPACT; sh2_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8f00)
-              { itype = SH2_INSN_BFS_COMPACT; sh2_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_BFS_COMPACT; sh2_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1455,9 +1323,7 @@ sh2_scache::decode (sh2_cpu* current_cpu, PCADDR pc, sh2_insn_word base_insn, sh
       case 638 : /* fall through */
       case 639 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x9000)
-          { itype = SH2_INSN_MOVW10_COMPACT; sh2_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVW10_COMPACT; sh2_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 640 : /* fall through */
       case 641 : /* fall through */
       case 642 : /* fall through */
@@ -1523,9 +1389,7 @@ sh2_scache::decode (sh2_cpu* current_cpu, PCADDR pc, sh2_insn_word base_insn, sh
       case 702 : /* fall through */
       case 703 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xa000)
-          { itype = SH2_INSN_BRA_COMPACT; sh2_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_BRA_COMPACT; sh2_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 704 : /* fall through */
       case 705 : /* fall through */
       case 706 : /* fall through */
@@ -1591,9 +1455,7 @@ sh2_scache::decode (sh2_cpu* current_cpu, PCADDR pc, sh2_insn_word base_insn, sh
       case 766 : /* fall through */
       case 767 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xb000)
-          { itype = SH2_INSN_BSR_COMPACT; sh2_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_BSR_COMPACT; sh2_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 768 : /* fall through */
       case 769 : /* fall through */
       case 770 : /* fall through */
@@ -1664,84 +1526,52 @@ sh2_scache::decode (sh2_cpu* current_cpu, PCADDR pc, sh2_insn_word base_insn, sh
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc000)
-              { itype = SH2_INSN_MOVB4_COMPACT; sh2_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_MOVB4_COMPACT; sh2_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc100)
-              { itype = SH2_INSN_MOVW4_COMPACT; sh2_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_MOVW4_COMPACT; sh2_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc200)
-              { itype = SH2_INSN_MOVL4_COMPACT; sh2_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_MOVL4_COMPACT; sh2_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc300)
-              { itype = SH2_INSN_TRAPA_COMPACT; sh2_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_TRAPA_COMPACT; sh2_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc400)
-              { itype = SH2_INSN_MOVB9_COMPACT; sh2_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_MOVB9_COMPACT; sh2_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc500)
-              { itype = SH2_INSN_MOVW9_COMPACT; sh2_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_MOVW9_COMPACT; sh2_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 6 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc600)
-              { itype = SH2_INSN_MOVL9_COMPACT; sh2_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_MOVL9_COMPACT; sh2_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 7 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc700)
-              { itype = SH2_INSN_MOVA_COMPACT; sh2_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_MOVA_COMPACT; sh2_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc800)
-              { itype = SH2_INSN_TSTI_COMPACT; sh2_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_TSTI_COMPACT; sh2_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc900)
-              { itype = SH2_INSN_ANDI_COMPACT; sh2_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_ANDI_COMPACT; sh2_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 10 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xca00)
-              { itype = SH2_INSN_XORI_COMPACT; sh2_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_XORI_COMPACT; sh2_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcb00)
-              { itype = SH2_INSN_ORI_COMPACT; sh2_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_ORI_COMPACT; sh2_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 12 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcc00)
-              { itype = SH2_INSN_TSTB_COMPACT; sh2_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_TSTB_COMPACT; sh2_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcd00)
-              { itype = SH2_INSN_ANDB_COMPACT; sh2_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_ANDB_COMPACT; sh2_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 14 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xce00)
-              { itype = SH2_INSN_XORB_COMPACT; sh2_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_XORB_COMPACT; sh2_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcf00)
-              { itype = SH2_INSN_ORB_COMPACT; sh2_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2_INSN_ORB_COMPACT; sh2_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1810,9 +1640,7 @@ sh2_scache::decode (sh2_cpu* current_cpu, PCADDR pc, sh2_insn_word base_insn, sh
       case 894 : /* fall through */
       case 895 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xd000)
-          { itype = SH2_INSN_MOVL10_COMPACT; sh2_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVL10_COMPACT; sh2_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 896 : /* fall through */
       case 897 : /* fall through */
       case 898 : /* fall through */
@@ -1878,9 +1706,7 @@ sh2_scache::decode (sh2_cpu* current_cpu, PCADDR pc, sh2_insn_word base_insn, sh
       case 958 : /* fall through */
       case 959 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xe000)
-          { itype = SH2_INSN_MOVI_COMPACT; sh2_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2_INSN_X_INVALID; sh2_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2_INSN_MOVI_COMPACT; sh2_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1021 :
         {
           unsigned int val = (((insn >> 27) & (1 << 0)));
index 274dcb6..eecaad6 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 5821465..0f4f68e 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index c8b9a62..403dd2b 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index caee431..f6e29a0 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index d59810c..9093a53 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 6b6637b..bfb469d 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 146a3c6..c19b54a 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -115,7 +115,7 @@ current_cpu->hardware.h_pc = ANDDI (newval, INVDI (1));
 }
  }
 
-  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (0) : (current_cpu->hardware.h_gr[regno])); }
+  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (MAKEDI (0, 0)) : (current_cpu->hardware.h_gr[regno])); }
   inline void h_gr_set (UINT regno, DI newval) { if (((regno) != (63))) {
 current_cpu->hardware.h_gr[regno] = newval;
 } else {
index 6864623..310846f 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -502,10 +502,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 64 : /* fall through */
       case 80 : /* fall through */
       case 96 : /* fall through */
-      case 112 :
-        if ((entire_insn & 0xf00f0000) == 0x0)
-          { itype = SH2A_FPU_INSN_MOVI20_COMPACT; sh2a_fpu_extract_sfmt_movi20_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 112 : itype = SH2A_FPU_INSN_MOVI20_COMPACT; sh2a_fpu_extract_sfmt_movi20_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 3 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x3)
@@ -520,9 +517,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 100 : /* fall through */
       case 116 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x4)
-          { itype = SH2A_FPU_INSN_MOVB3_COMPACT; sh2a_fpu_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVB3_COMPACT; sh2a_fpu_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 5 : /* fall through */
       case 21 : /* fall through */
       case 37 : /* fall through */
@@ -532,9 +527,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 101 : /* fall through */
       case 117 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x5)
-          { itype = SH2A_FPU_INSN_MOVW3_COMPACT; sh2a_fpu_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVW3_COMPACT; sh2a_fpu_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 6 : /* fall through */
       case 22 : /* fall through */
       case 38 : /* fall through */
@@ -544,9 +537,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 102 : /* fall through */
       case 118 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6)
-          { itype = SH2A_FPU_INSN_MOVL3_COMPACT; sh2a_fpu_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVL3_COMPACT; sh2a_fpu_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 7 : /* fall through */
       case 23 : /* fall through */
       case 39 : /* fall through */
@@ -556,9 +547,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 103 : /* fall through */
       case 119 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x7)
-          { itype = SH2A_FPU_INSN_MULL_COMPACT; sh2a_fpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MULL_COMPACT; sh2a_fpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 8 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xffff) == 0x8)
@@ -588,9 +577,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 108 : /* fall through */
       case 124 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xc)
-          { itype = SH2A_FPU_INSN_MOVB8_COMPACT; sh2a_fpu_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVB8_COMPACT; sh2a_fpu_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 13 : /* fall through */
       case 29 : /* fall through */
       case 45 : /* fall through */
@@ -600,9 +587,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 109 : /* fall through */
       case 125 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xd)
-          { itype = SH2A_FPU_INSN_MOVW8_COMPACT; sh2a_fpu_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVW8_COMPACT; sh2a_fpu_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 14 : /* fall through */
       case 30 : /* fall through */
       case 46 : /* fall through */
@@ -612,9 +597,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 110 : /* fall through */
       case 126 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xe)
-          { itype = SH2A_FPU_INSN_MOVL8_COMPACT; sh2a_fpu_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVL8_COMPACT; sh2a_fpu_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 15 : /* fall through */
       case 31 : /* fall through */
       case 47 : /* fall through */
@@ -624,9 +607,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 111 : /* fall through */
       case 127 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf)
-          { itype = SH2A_FPU_INSN_MACL_COMPACT; sh2a_fpu_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MACL_COMPACT; sh2a_fpu_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 18 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x12)
@@ -811,9 +792,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 254 : /* fall through */
       case 255 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x1000)
-          { itype = SH2A_FPU_INSN_MOVL5_COMPACT; sh2a_fpu_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVL5_COMPACT; sh2a_fpu_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 256 : /* fall through */
       case 272 : /* fall through */
       case 288 : /* fall through */
@@ -823,9 +802,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 352 : /* fall through */
       case 368 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2000)
-          { itype = SH2A_FPU_INSN_MOVB1_COMPACT; sh2a_fpu_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVB1_COMPACT; sh2a_fpu_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 257 : /* fall through */
       case 273 : /* fall through */
       case 289 : /* fall through */
@@ -835,9 +812,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 353 : /* fall through */
       case 369 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2001)
-          { itype = SH2A_FPU_INSN_MOVW1_COMPACT; sh2a_fpu_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVW1_COMPACT; sh2a_fpu_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 258 : /* fall through */
       case 274 : /* fall through */
       case 290 : /* fall through */
@@ -847,9 +822,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 354 : /* fall through */
       case 370 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2002)
-          { itype = SH2A_FPU_INSN_MOVL1_COMPACT; sh2a_fpu_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVL1_COMPACT; sh2a_fpu_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 260 : /* fall through */
       case 276 : /* fall through */
       case 292 : /* fall through */
@@ -859,9 +832,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 356 : /* fall through */
       case 372 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2004)
-          { itype = SH2A_FPU_INSN_MOVB2_COMPACT; sh2a_fpu_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVB2_COMPACT; sh2a_fpu_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 261 : /* fall through */
       case 277 : /* fall through */
       case 293 : /* fall through */
@@ -871,9 +842,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 357 : /* fall through */
       case 373 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2005)
-          { itype = SH2A_FPU_INSN_MOVW2_COMPACT; sh2a_fpu_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVW2_COMPACT; sh2a_fpu_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 262 : /* fall through */
       case 278 : /* fall through */
       case 294 : /* fall through */
@@ -883,9 +852,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 358 : /* fall through */
       case 374 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2006)
-          { itype = SH2A_FPU_INSN_MOVL2_COMPACT; sh2a_fpu_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVL2_COMPACT; sh2a_fpu_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 263 : /* fall through */
       case 279 : /* fall through */
       case 295 : /* fall through */
@@ -895,9 +862,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 359 : /* fall through */
       case 375 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2007)
-          { itype = SH2A_FPU_INSN_DIV0S_COMPACT; sh2a_fpu_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_DIV0S_COMPACT; sh2a_fpu_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 264 : /* fall through */
       case 280 : /* fall through */
       case 296 : /* fall through */
@@ -907,9 +872,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 360 : /* fall through */
       case 376 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2008)
-          { itype = SH2A_FPU_INSN_TST_COMPACT; sh2a_fpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_TST_COMPACT; sh2a_fpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 265 : /* fall through */
       case 281 : /* fall through */
       case 297 : /* fall through */
@@ -919,9 +882,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 361 : /* fall through */
       case 377 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2009)
-          { itype = SH2A_FPU_INSN_AND_COMPACT; sh2a_fpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_AND_COMPACT; sh2a_fpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 266 : /* fall through */
       case 282 : /* fall through */
       case 298 : /* fall through */
@@ -931,9 +892,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 362 : /* fall through */
       case 378 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200a)
-          { itype = SH2A_FPU_INSN_XOR_COMPACT; sh2a_fpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_XOR_COMPACT; sh2a_fpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 267 : /* fall through */
       case 283 : /* fall through */
       case 299 : /* fall through */
@@ -943,9 +902,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 363 : /* fall through */
       case 379 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200b)
-          { itype = SH2A_FPU_INSN_OR_COMPACT; sh2a_fpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_OR_COMPACT; sh2a_fpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 268 : /* fall through */
       case 284 : /* fall through */
       case 300 : /* fall through */
@@ -955,9 +912,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 364 : /* fall through */
       case 380 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200c)
-          { itype = SH2A_FPU_INSN_CMPSTR_COMPACT; sh2a_fpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_CMPSTR_COMPACT; sh2a_fpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 269 : /* fall through */
       case 285 : /* fall through */
       case 301 : /* fall through */
@@ -967,9 +922,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 365 : /* fall through */
       case 381 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200d)
-          { itype = SH2A_FPU_INSN_XTRCT_COMPACT; sh2a_fpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_XTRCT_COMPACT; sh2a_fpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 270 : /* fall through */
       case 286 : /* fall through */
       case 302 : /* fall through */
@@ -979,9 +932,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 366 : /* fall through */
       case 382 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200e)
-          { itype = SH2A_FPU_INSN_MULUW_COMPACT; sh2a_fpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MULUW_COMPACT; sh2a_fpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 271 : /* fall through */
       case 287 : /* fall through */
       case 303 : /* fall through */
@@ -991,9 +942,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 367 : /* fall through */
       case 383 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200f)
-          { itype = SH2A_FPU_INSN_MULSW_COMPACT; sh2a_fpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MULSW_COMPACT; sh2a_fpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 384 : /* fall through */
       case 400 : /* fall through */
       case 416 : /* fall through */
@@ -1003,9 +952,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 480 : /* fall through */
       case 496 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3000)
-          { itype = SH2A_FPU_INSN_CMPEQ_COMPACT; sh2a_fpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_CMPEQ_COMPACT; sh2a_fpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 385 : /* fall through */
       case 417 : /* fall through */
       case 449 : /* fall through */
@@ -1042,9 +989,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 482 : /* fall through */
       case 498 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3002)
-          { itype = SH2A_FPU_INSN_CMPHS_COMPACT; sh2a_fpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_CMPHS_COMPACT; sh2a_fpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 387 : /* fall through */
       case 403 : /* fall through */
       case 419 : /* fall through */
@@ -1054,9 +999,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 483 : /* fall through */
       case 499 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3003)
-          { itype = SH2A_FPU_INSN_CMPGE_COMPACT; sh2a_fpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_CMPGE_COMPACT; sh2a_fpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 388 : /* fall through */
       case 404 : /* fall through */
       case 420 : /* fall through */
@@ -1066,9 +1009,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 484 : /* fall through */
       case 500 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3004)
-          { itype = SH2A_FPU_INSN_DIV1_COMPACT; sh2a_fpu_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_DIV1_COMPACT; sh2a_fpu_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 389 : /* fall through */
       case 405 : /* fall through */
       case 421 : /* fall through */
@@ -1078,9 +1019,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 485 : /* fall through */
       case 501 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3005)
-          { itype = SH2A_FPU_INSN_DMULUL_COMPACT; sh2a_fpu_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_DMULUL_COMPACT; sh2a_fpu_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 390 : /* fall through */
       case 406 : /* fall through */
       case 422 : /* fall through */
@@ -1090,9 +1029,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 486 : /* fall through */
       case 502 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3006)
-          { itype = SH2A_FPU_INSN_CMPHI_COMPACT; sh2a_fpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_CMPHI_COMPACT; sh2a_fpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 391 : /* fall through */
       case 407 : /* fall through */
       case 423 : /* fall through */
@@ -1102,9 +1039,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 487 : /* fall through */
       case 503 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3007)
-          { itype = SH2A_FPU_INSN_CMPGT_COMPACT; sh2a_fpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_CMPGT_COMPACT; sh2a_fpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 392 : /* fall through */
       case 408 : /* fall through */
       case 424 : /* fall through */
@@ -1114,9 +1049,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 488 : /* fall through */
       case 504 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3008)
-          { itype = SH2A_FPU_INSN_SUB_COMPACT; sh2a_fpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_SUB_COMPACT; sh2a_fpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 394 : /* fall through */
       case 410 : /* fall through */
       case 426 : /* fall through */
@@ -1126,9 +1059,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 490 : /* fall through */
       case 506 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300a)
-          { itype = SH2A_FPU_INSN_SUBC_COMPACT; sh2a_fpu_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_SUBC_COMPACT; sh2a_fpu_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 395 : /* fall through */
       case 411 : /* fall through */
       case 427 : /* fall through */
@@ -1138,9 +1069,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 491 : /* fall through */
       case 507 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300b)
-          { itype = SH2A_FPU_INSN_SUBV_COMPACT; sh2a_fpu_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_SUBV_COMPACT; sh2a_fpu_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 396 : /* fall through */
       case 412 : /* fall through */
       case 428 : /* fall through */
@@ -1150,9 +1079,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 492 : /* fall through */
       case 508 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300c)
-          { itype = SH2A_FPU_INSN_ADD_COMPACT; sh2a_fpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_ADD_COMPACT; sh2a_fpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 397 : /* fall through */
       case 413 : /* fall through */
       case 429 : /* fall through */
@@ -1162,9 +1089,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 493 : /* fall through */
       case 509 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300d)
-          { itype = SH2A_FPU_INSN_DMULSL_COMPACT; sh2a_fpu_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_DMULSL_COMPACT; sh2a_fpu_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 398 : /* fall through */
       case 414 : /* fall through */
       case 430 : /* fall through */
@@ -1174,9 +1099,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 494 : /* fall through */
       case 510 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300e)
-          { itype = SH2A_FPU_INSN_ADDC_COMPACT; sh2a_fpu_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_ADDC_COMPACT; sh2a_fpu_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 399 : /* fall through */
       case 415 : /* fall through */
       case 431 : /* fall through */
@@ -1186,9 +1109,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 495 : /* fall through */
       case 511 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300f)
-          { itype = SH2A_FPU_INSN_ADDV_COMPACT; sh2a_fpu_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_ADDV_COMPACT; sh2a_fpu_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 401 : /* fall through */
       case 433 : /* fall through */
       case 465 : /* fall through */
@@ -1219,14 +1140,10 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x4000)
-              { itype = SH2A_FPU_INSN_SHLL_COMPACT; sh2a_fpu_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_SHLL_COMPACT; sh2a_fpu_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x4080)
-              { itype = SH2A_FPU_INSN_MULR_COMPACT; sh2a_fpu_extract_sfmt_divu_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_MULR_COMPACT; sh2a_fpu_extract_sfmt_divu_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1247,14 +1164,10 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x4004)
-              { itype = SH2A_FPU_INSN_ROTL_COMPACT; sh2a_fpu_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_ROTL_COMPACT; sh2a_fpu_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x4084)
-              { itype = SH2A_FPU_INSN_DIVU_COMPACT; sh2a_fpu_extract_sfmt_divu_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_DIVU_COMPACT; sh2a_fpu_extract_sfmt_divu_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1297,9 +1210,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 620 : /* fall through */
       case 636 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400c)
-          { itype = SH2A_FPU_INSN_SHAD_COMPACT; sh2a_fpu_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_SHAD_COMPACT; sh2a_fpu_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 526 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x400e)
@@ -1314,9 +1225,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 623 : /* fall through */
       case 639 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400f)
-          { itype = SH2A_FPU_INSN_MACW_COMPACT; sh2a_fpu_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MACW_COMPACT; sh2a_fpu_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 528 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x4010)
@@ -1601,9 +1510,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 766 : /* fall through */
       case 767 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x5000)
-          { itype = SH2A_FPU_INSN_MOVL11_COMPACT; sh2a_fpu_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVL11_COMPACT; sh2a_fpu_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 768 : /* fall through */
       case 784 : /* fall through */
       case 800 : /* fall through */
@@ -1613,9 +1520,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 864 : /* fall through */
       case 880 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6000)
-          { itype = SH2A_FPU_INSN_MOVB6_COMPACT; sh2a_fpu_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVB6_COMPACT; sh2a_fpu_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 769 : /* fall through */
       case 785 : /* fall through */
       case 801 : /* fall through */
@@ -1625,9 +1530,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 865 : /* fall through */
       case 881 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6001)
-          { itype = SH2A_FPU_INSN_MOVW6_COMPACT; sh2a_fpu_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVW6_COMPACT; sh2a_fpu_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 770 : /* fall through */
       case 786 : /* fall through */
       case 802 : /* fall through */
@@ -1637,9 +1540,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 866 : /* fall through */
       case 882 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6002)
-          { itype = SH2A_FPU_INSN_MOVL6_COMPACT; sh2a_fpu_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVL6_COMPACT; sh2a_fpu_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 771 : /* fall through */
       case 787 : /* fall through */
       case 803 : /* fall through */
@@ -1649,9 +1550,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 867 : /* fall through */
       case 883 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6003)
-          { itype = SH2A_FPU_INSN_MOV_COMPACT; sh2a_fpu_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOV_COMPACT; sh2a_fpu_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 772 : /* fall through */
       case 788 : /* fall through */
       case 804 : /* fall through */
@@ -1661,9 +1560,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 868 : /* fall through */
       case 884 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6004)
-          { itype = SH2A_FPU_INSN_MOVB7_COMPACT; sh2a_fpu_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVB7_COMPACT; sh2a_fpu_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 773 : /* fall through */
       case 789 : /* fall through */
       case 805 : /* fall through */
@@ -1673,9 +1570,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 869 : /* fall through */
       case 885 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6005)
-          { itype = SH2A_FPU_INSN_MOVW7_COMPACT; sh2a_fpu_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVW7_COMPACT; sh2a_fpu_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 774 : /* fall through */
       case 790 : /* fall through */
       case 806 : /* fall through */
@@ -1685,9 +1580,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 870 : /* fall through */
       case 886 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6006)
-          { itype = SH2A_FPU_INSN_MOVL7_COMPACT; sh2a_fpu_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVL7_COMPACT; sh2a_fpu_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 775 : /* fall through */
       case 791 : /* fall through */
       case 807 : /* fall through */
@@ -1697,9 +1590,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 871 : /* fall through */
       case 887 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6007)
-          { itype = SH2A_FPU_INSN_NOT_COMPACT; sh2a_fpu_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_NOT_COMPACT; sh2a_fpu_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 776 : /* fall through */
       case 792 : /* fall through */
       case 808 : /* fall through */
@@ -1709,9 +1600,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 872 : /* fall through */
       case 888 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6008)
-          { itype = SH2A_FPU_INSN_SWAPB_COMPACT; sh2a_fpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_SWAPB_COMPACT; sh2a_fpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 777 : /* fall through */
       case 793 : /* fall through */
       case 809 : /* fall through */
@@ -1721,9 +1610,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 873 : /* fall through */
       case 889 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6009)
-          { itype = SH2A_FPU_INSN_SWAPW_COMPACT; sh2a_fpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_SWAPW_COMPACT; sh2a_fpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 778 : /* fall through */
       case 794 : /* fall through */
       case 810 : /* fall through */
@@ -1733,9 +1620,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 874 : /* fall through */
       case 890 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600a)
-          { itype = SH2A_FPU_INSN_NEGC_COMPACT; sh2a_fpu_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_NEGC_COMPACT; sh2a_fpu_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 779 : /* fall through */
       case 795 : /* fall through */
       case 811 : /* fall through */
@@ -1745,9 +1630,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 875 : /* fall through */
       case 891 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600b)
-          { itype = SH2A_FPU_INSN_NEG_COMPACT; sh2a_fpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_NEG_COMPACT; sh2a_fpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 780 : /* fall through */
       case 796 : /* fall through */
       case 812 : /* fall through */
@@ -1757,9 +1640,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 876 : /* fall through */
       case 892 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600c)
-          { itype = SH2A_FPU_INSN_EXTUB_COMPACT; sh2a_fpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_EXTUB_COMPACT; sh2a_fpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 781 : /* fall through */
       case 797 : /* fall through */
       case 813 : /* fall through */
@@ -1769,9 +1650,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 877 : /* fall through */
       case 893 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600d)
-          { itype = SH2A_FPU_INSN_EXTUW_COMPACT; sh2a_fpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_EXTUW_COMPACT; sh2a_fpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 782 : /* fall through */
       case 798 : /* fall through */
       case 814 : /* fall through */
@@ -1781,9 +1660,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 878 : /* fall through */
       case 894 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600e)
-          { itype = SH2A_FPU_INSN_EXTSB_COMPACT; sh2a_fpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_EXTSB_COMPACT; sh2a_fpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 783 : /* fall through */
       case 799 : /* fall through */
       case 815 : /* fall through */
@@ -1793,9 +1670,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 879 : /* fall through */
       case 895 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600f)
-          { itype = SH2A_FPU_INSN_EXTSW_COMPACT; sh2a_fpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_EXTSW_COMPACT; sh2a_fpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 896 : /* fall through */
       case 897 : /* fall through */
       case 898 : /* fall through */
@@ -1925,9 +1800,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 1022 : /* fall through */
       case 1023 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x7000)
-          { itype = SH2A_FPU_INSN_ADDI_COMPACT; sh2a_fpu_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_ADDI_COMPACT; sh2a_fpu_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1024 : /* fall through */
       case 1025 : /* fall through */
       case 1026 : /* fall through */
@@ -2062,49 +1935,31 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8000)
-              { itype = SH2A_FPU_INSN_MOVB5_COMPACT; sh2a_fpu_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_MOVB5_COMPACT; sh2a_fpu_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8100)
-              { itype = SH2A_FPU_INSN_MOVW5_COMPACT; sh2a_fpu_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_MOVW5_COMPACT; sh2a_fpu_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8400)
-              { itype = SH2A_FPU_INSN_MOVB10_COMPACT; sh2a_fpu_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_MOVB10_COMPACT; sh2a_fpu_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8500)
-              { itype = SH2A_FPU_INSN_MOVW11_COMPACT; sh2a_fpu_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_MOVW11_COMPACT; sh2a_fpu_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8800)
-              { itype = SH2A_FPU_INSN_CMPEQI_COMPACT; sh2a_fpu_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_CMPEQI_COMPACT; sh2a_fpu_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8900)
-              { itype = SH2A_FPU_INSN_BT_COMPACT; sh2a_fpu_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_BT_COMPACT; sh2a_fpu_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8b00)
-              { itype = SH2A_FPU_INSN_BF_COMPACT; sh2a_fpu_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_BF_COMPACT; sh2a_fpu_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8d00)
-              { itype = SH2A_FPU_INSN_BTS_COMPACT; sh2a_fpu_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_BTS_COMPACT; sh2a_fpu_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8f00)
-              { itype = SH2A_FPU_INSN_BFS_COMPACT; sh2a_fpu_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_BFS_COMPACT; sh2a_fpu_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -2237,9 +2092,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 1278 : /* fall through */
       case 1279 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x9000)
-          { itype = SH2A_FPU_INSN_MOVW10_COMPACT; sh2a_fpu_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVW10_COMPACT; sh2a_fpu_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1280 : /* fall through */
       case 1281 : /* fall through */
       case 1282 : /* fall through */
@@ -2369,9 +2222,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 1406 : /* fall through */
       case 1407 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xa000)
-          { itype = SH2A_FPU_INSN_BRA_COMPACT; sh2a_fpu_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_BRA_COMPACT; sh2a_fpu_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1408 : /* fall through */
       case 1409 : /* fall through */
       case 1410 : /* fall through */
@@ -2501,9 +2352,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 1534 : /* fall through */
       case 1535 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xb000)
-          { itype = SH2A_FPU_INSN_BSR_COMPACT; sh2a_fpu_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_BSR_COMPACT; sh2a_fpu_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1536 : /* fall through */
       case 1537 : /* fall through */
       case 1538 : /* fall through */
@@ -2638,84 +2487,52 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc000)
-              { itype = SH2A_FPU_INSN_MOVB4_COMPACT; sh2a_fpu_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_MOVB4_COMPACT; sh2a_fpu_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc100)
-              { itype = SH2A_FPU_INSN_MOVW4_COMPACT; sh2a_fpu_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_MOVW4_COMPACT; sh2a_fpu_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc200)
-              { itype = SH2A_FPU_INSN_MOVL4_COMPACT; sh2a_fpu_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_MOVL4_COMPACT; sh2a_fpu_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc300)
-              { itype = SH2A_FPU_INSN_TRAPA_COMPACT; sh2a_fpu_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_TRAPA_COMPACT; sh2a_fpu_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc400)
-              { itype = SH2A_FPU_INSN_MOVB9_COMPACT; sh2a_fpu_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_MOVB9_COMPACT; sh2a_fpu_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc500)
-              { itype = SH2A_FPU_INSN_MOVW9_COMPACT; sh2a_fpu_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_MOVW9_COMPACT; sh2a_fpu_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 6 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc600)
-              { itype = SH2A_FPU_INSN_MOVL9_COMPACT; sh2a_fpu_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_MOVL9_COMPACT; sh2a_fpu_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 7 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc700)
-              { itype = SH2A_FPU_INSN_MOVA_COMPACT; sh2a_fpu_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_MOVA_COMPACT; sh2a_fpu_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc800)
-              { itype = SH2A_FPU_INSN_TSTI_COMPACT; sh2a_fpu_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_TSTI_COMPACT; sh2a_fpu_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc900)
-              { itype = SH2A_FPU_INSN_ANDI_COMPACT; sh2a_fpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_ANDI_COMPACT; sh2a_fpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 10 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xca00)
-              { itype = SH2A_FPU_INSN_XORI_COMPACT; sh2a_fpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_XORI_COMPACT; sh2a_fpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcb00)
-              { itype = SH2A_FPU_INSN_ORI_COMPACT; sh2a_fpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_ORI_COMPACT; sh2a_fpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 12 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcc00)
-              { itype = SH2A_FPU_INSN_TSTB_COMPACT; sh2a_fpu_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_TSTB_COMPACT; sh2a_fpu_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcd00)
-              { itype = SH2A_FPU_INSN_ANDB_COMPACT; sh2a_fpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_ANDB_COMPACT; sh2a_fpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 14 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xce00)
-              { itype = SH2A_FPU_INSN_XORB_COMPACT; sh2a_fpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_XORB_COMPACT; sh2a_fpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcf00)
-              { itype = SH2A_FPU_INSN_ORB_COMPACT; sh2a_fpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_ORB_COMPACT; sh2a_fpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -2848,9 +2665,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 1790 : /* fall through */
       case 1791 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xd000)
-          { itype = SH2A_FPU_INSN_MOVL10_COMPACT; sh2a_fpu_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVL10_COMPACT; sh2a_fpu_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1792 : /* fall through */
       case 1793 : /* fall through */
       case 1794 : /* fall through */
@@ -2980,9 +2795,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 1918 : /* fall through */
       case 1919 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xe000)
-          { itype = SH2A_FPU_INSN_MOVI_COMPACT; sh2a_fpu_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_MOVI_COMPACT; sh2a_fpu_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1920 : /* fall through */
       case 1936 : /* fall through */
       case 1952 : /* fall through */
@@ -2992,9 +2805,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 2016 : /* fall through */
       case 2032 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf000)
-          { itype = SH2A_FPU_INSN_FADD_COMPACT; sh2a_fpu_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_FADD_COMPACT; sh2a_fpu_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1921 : /* fall through */
       case 1937 : /* fall through */
       case 1953 : /* fall through */
@@ -3004,9 +2815,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 2017 : /* fall through */
       case 2033 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf001)
-          { itype = SH2A_FPU_INSN_FSUB_COMPACT; sh2a_fpu_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_FSUB_COMPACT; sh2a_fpu_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1922 : /* fall through */
       case 1938 : /* fall through */
       case 1954 : /* fall through */
@@ -3016,9 +2825,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 2018 : /* fall through */
       case 2034 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf002)
-          { itype = SH2A_FPU_INSN_FMUL_COMPACT; sh2a_fpu_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_FMUL_COMPACT; sh2a_fpu_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1923 : /* fall through */
       case 1939 : /* fall through */
       case 1955 : /* fall through */
@@ -3028,9 +2835,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 2019 : /* fall through */
       case 2035 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf003)
-          { itype = SH2A_FPU_INSN_FDIV_COMPACT; sh2a_fpu_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_FDIV_COMPACT; sh2a_fpu_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1924 : /* fall through */
       case 1940 : /* fall through */
       case 1956 : /* fall through */
@@ -3040,9 +2845,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 2020 : /* fall through */
       case 2036 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf004)
-          { itype = SH2A_FPU_INSN_FCMPEQ_COMPACT; sh2a_fpu_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_FCMPEQ_COMPACT; sh2a_fpu_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1925 : /* fall through */
       case 1941 : /* fall through */
       case 1957 : /* fall through */
@@ -3052,9 +2855,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 2021 : /* fall through */
       case 2037 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf005)
-          { itype = SH2A_FPU_INSN_FCMPGT_COMPACT; sh2a_fpu_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_FCMPGT_COMPACT; sh2a_fpu_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1926 : /* fall through */
       case 1942 : /* fall through */
       case 1958 : /* fall through */
@@ -3064,9 +2865,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 2022 : /* fall through */
       case 2038 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf006)
-          { itype = SH2A_FPU_INSN_FMOV4_COMPACT; sh2a_fpu_extract_sfmt_fmov4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_FMOV4_COMPACT; sh2a_fpu_extract_sfmt_fmov4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1927 : /* fall through */
       case 1943 : /* fall through */
       case 1959 : /* fall through */
@@ -3076,9 +2875,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 2023 : /* fall through */
       case 2039 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf007)
-          { itype = SH2A_FPU_INSN_FMOV7_COMPACT; sh2a_fpu_extract_sfmt_fmov7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_FMOV7_COMPACT; sh2a_fpu_extract_sfmt_fmov7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1928 : /* fall through */
       case 1944 : /* fall through */
       case 1960 : /* fall through */
@@ -3088,9 +2885,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 2024 : /* fall through */
       case 2040 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf008)
-          { itype = SH2A_FPU_INSN_FMOV2_COMPACT; sh2a_fpu_extract_sfmt_fmov2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_FMOV2_COMPACT; sh2a_fpu_extract_sfmt_fmov2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1929 : /* fall through */
       case 1945 : /* fall through */
       case 1961 : /* fall through */
@@ -3100,9 +2895,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 2025 : /* fall through */
       case 2041 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf009)
-          { itype = SH2A_FPU_INSN_FMOV3_COMPACT; sh2a_fpu_extract_sfmt_fmov3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_FMOV3_COMPACT; sh2a_fpu_extract_sfmt_fmov3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1930 : /* fall through */
       case 1946 : /* fall through */
       case 1962 : /* fall through */
@@ -3112,9 +2905,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 2026 : /* fall through */
       case 2042 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00a)
-          { itype = SH2A_FPU_INSN_FMOV5_COMPACT; sh2a_fpu_extract_sfmt_fmov5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_FMOV5_COMPACT; sh2a_fpu_extract_sfmt_fmov5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1931 : /* fall through */
       case 1947 : /* fall through */
       case 1963 : /* fall through */
@@ -3124,9 +2915,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 2027 : /* fall through */
       case 2043 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00b)
-          { itype = SH2A_FPU_INSN_FMOV6_COMPACT; sh2a_fpu_extract_sfmt_fmov6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_FMOV6_COMPACT; sh2a_fpu_extract_sfmt_fmov6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1932 : /* fall through */
       case 1948 : /* fall through */
       case 1964 : /* fall through */
@@ -3136,9 +2925,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 2028 : /* fall through */
       case 2044 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00c)
-          { itype = SH2A_FPU_INSN_FMOV1_COMPACT; sh2a_fpu_extract_sfmt_fmov1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_FMOV1_COMPACT; sh2a_fpu_extract_sfmt_fmov1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1933 :
         {
           unsigned int val = (((insn >> 23) & (1 << 0)));
@@ -3146,14 +2933,10 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf00d)
-              { itype = SH2A_FPU_INSN_FSTS_COMPACT; sh2a_fpu_extract_sfmt_fsts_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_FSTS_COMPACT; sh2a_fpu_extract_sfmt_fsts_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf08d)
-              { itype = SH2A_FPU_INSN_FLDI0_COMPACT; sh2a_fpu_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_FLDI0_COMPACT; sh2a_fpu_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -3166,9 +2949,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
       case 2030 : /* fall through */
       case 2046 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00e)
-          { itype = SH2A_FPU_INSN_FMAC_COMPACT; sh2a_fpu_extract_sfmt_fmac_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_FPU_INSN_FMAC_COMPACT; sh2a_fpu_extract_sfmt_fmac_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1949 :
         {
           unsigned int val = (((insn >> 23) & (1 << 0)));
@@ -3176,14 +2957,10 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf01d)
-              { itype = SH2A_FPU_INSN_FLDS_COMPACT; sh2a_fpu_extract_sfmt_flds_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_FLDS_COMPACT; sh2a_fpu_extract_sfmt_flds_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf09d)
-              { itype = SH2A_FPU_INSN_FLDI1_COMPACT; sh2a_fpu_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_FLDI1_COMPACT; sh2a_fpu_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -3194,9 +2971,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf02d)
-              { itype = SH2A_FPU_INSN_FLOAT_COMPACT; sh2a_fpu_extract_sfmt_float_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_FLOAT_COMPACT; sh2a_fpu_extract_sfmt_float_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
             if ((entire_insn & 0xf1ff) == 0xf0ad)
@@ -3212,9 +2987,7 @@ sh2a_fpu_scache::decode (sh2a_fpu_cpu* current_cpu, PCADDR pc, sh2a_fpu_insn_wor
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf03d)
-              { itype = SH2A_FPU_INSN_FTRC_COMPACT; sh2a_fpu_extract_sfmt_ftrc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_FPU_INSN_X_INVALID; sh2a_fpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_FPU_INSN_FTRC_COMPACT; sh2a_fpu_extract_sfmt_ftrc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
             if ((entire_insn & 0xf1ff) == 0xf0bd)
index af10f2a..e47c08e 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index de5b14d..ccf3a1c 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index b227ff8..da318ea 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 1dbadd7..1e88d23 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 107f6f4..c3af25a 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index c9f9f23..11fa739 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 3bbc708..29b3dbb 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -103,7 +103,7 @@ current_cpu->hardware.h_pc = ANDDI (newval, INVDI (1));
 }
  }
 
-  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (0) : (current_cpu->hardware.h_gr[regno])); }
+  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (MAKEDI (0, 0)) : (current_cpu->hardware.h_gr[regno])); }
   inline void h_gr_set (UINT regno, DI newval) { if (((regno) != (63))) {
 current_cpu->hardware.h_gr[regno] = newval;
 } else {
index 1791e88..fadcef0 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -407,10 +407,7 @@ sh2a_nofpu_scache::decode (sh2a_nofpu_cpu* current_cpu, PCADDR pc, sh2a_nofpu_in
       case 0 : /* fall through */
       case 16 : /* fall through */
       case 32 : /* fall through */
-      case 48 :
-        if ((entire_insn & 0xf00f0000) == 0x0)
-          { itype = SH2A_NOFPU_INSN_MOVI20_COMPACT; sh2a_nofpu_extract_sfmt_movi20_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 48 : itype = SH2A_NOFPU_INSN_MOVI20_COMPACT; sh2a_nofpu_extract_sfmt_movi20_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 3 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x3)
@@ -421,33 +418,25 @@ sh2a_nofpu_scache::decode (sh2a_nofpu_cpu* current_cpu, PCADDR pc, sh2a_nofpu_in
       case 36 : /* fall through */
       case 52 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x4)
-          { itype = SH2A_NOFPU_INSN_MOVB3_COMPACT; sh2a_nofpu_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVB3_COMPACT; sh2a_nofpu_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 5 : /* fall through */
       case 21 : /* fall through */
       case 37 : /* fall through */
       case 53 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x5)
-          { itype = SH2A_NOFPU_INSN_MOVW3_COMPACT; sh2a_nofpu_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVW3_COMPACT; sh2a_nofpu_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 6 : /* fall through */
       case 22 : /* fall through */
       case 38 : /* fall through */
       case 54 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6)
-          { itype = SH2A_NOFPU_INSN_MOVL3_COMPACT; sh2a_nofpu_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVL3_COMPACT; sh2a_nofpu_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 7 : /* fall through */
       case 23 : /* fall through */
       case 39 : /* fall through */
       case 55 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x7)
-          { itype = SH2A_NOFPU_INSN_MULL_COMPACT; sh2a_nofpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MULL_COMPACT; sh2a_nofpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 8 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xffff) == 0x8)
@@ -473,33 +462,25 @@ sh2a_nofpu_scache::decode (sh2a_nofpu_cpu* current_cpu, PCADDR pc, sh2a_nofpu_in
       case 44 : /* fall through */
       case 60 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xc)
-          { itype = SH2A_NOFPU_INSN_MOVB8_COMPACT; sh2a_nofpu_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVB8_COMPACT; sh2a_nofpu_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 13 : /* fall through */
       case 29 : /* fall through */
       case 45 : /* fall through */
       case 61 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xd)
-          { itype = SH2A_NOFPU_INSN_MOVW8_COMPACT; sh2a_nofpu_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVW8_COMPACT; sh2a_nofpu_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 14 : /* fall through */
       case 30 : /* fall through */
       case 46 : /* fall through */
       case 62 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xe)
-          { itype = SH2A_NOFPU_INSN_MOVL8_COMPACT; sh2a_nofpu_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVL8_COMPACT; sh2a_nofpu_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 15 : /* fall through */
       case 31 : /* fall through */
       case 47 : /* fall through */
       case 63 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf)
-          { itype = SH2A_NOFPU_INSN_MACL_COMPACT; sh2a_nofpu_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MACL_COMPACT; sh2a_nofpu_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 18 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x12)
@@ -610,137 +591,103 @@ sh2a_nofpu_scache::decode (sh2a_nofpu_cpu* current_cpu, PCADDR pc, sh2a_nofpu_in
       case 126 : /* fall through */
       case 127 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x1000)
-          { itype = SH2A_NOFPU_INSN_MOVL5_COMPACT; sh2a_nofpu_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVL5_COMPACT; sh2a_nofpu_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 128 : /* fall through */
       case 144 : /* fall through */
       case 160 : /* fall through */
       case 176 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2000)
-          { itype = SH2A_NOFPU_INSN_MOVB1_COMPACT; sh2a_nofpu_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVB1_COMPACT; sh2a_nofpu_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 129 : /* fall through */
       case 145 : /* fall through */
       case 161 : /* fall through */
       case 177 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2001)
-          { itype = SH2A_NOFPU_INSN_MOVW1_COMPACT; sh2a_nofpu_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVW1_COMPACT; sh2a_nofpu_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 130 : /* fall through */
       case 146 : /* fall through */
       case 162 : /* fall through */
       case 178 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2002)
-          { itype = SH2A_NOFPU_INSN_MOVL1_COMPACT; sh2a_nofpu_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVL1_COMPACT; sh2a_nofpu_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 132 : /* fall through */
       case 148 : /* fall through */
       case 164 : /* fall through */
       case 180 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2004)
-          { itype = SH2A_NOFPU_INSN_MOVB2_COMPACT; sh2a_nofpu_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVB2_COMPACT; sh2a_nofpu_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 133 : /* fall through */
       case 149 : /* fall through */
       case 165 : /* fall through */
       case 181 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2005)
-          { itype = SH2A_NOFPU_INSN_MOVW2_COMPACT; sh2a_nofpu_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVW2_COMPACT; sh2a_nofpu_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 134 : /* fall through */
       case 150 : /* fall through */
       case 166 : /* fall through */
       case 182 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2006)
-          { itype = SH2A_NOFPU_INSN_MOVL2_COMPACT; sh2a_nofpu_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVL2_COMPACT; sh2a_nofpu_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 135 : /* fall through */
       case 151 : /* fall through */
       case 167 : /* fall through */
       case 183 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2007)
-          { itype = SH2A_NOFPU_INSN_DIV0S_COMPACT; sh2a_nofpu_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_DIV0S_COMPACT; sh2a_nofpu_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 136 : /* fall through */
       case 152 : /* fall through */
       case 168 : /* fall through */
       case 184 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2008)
-          { itype = SH2A_NOFPU_INSN_TST_COMPACT; sh2a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_TST_COMPACT; sh2a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 137 : /* fall through */
       case 153 : /* fall through */
       case 169 : /* fall through */
       case 185 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2009)
-          { itype = SH2A_NOFPU_INSN_AND_COMPACT; sh2a_nofpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_AND_COMPACT; sh2a_nofpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 138 : /* fall through */
       case 154 : /* fall through */
       case 170 : /* fall through */
       case 186 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200a)
-          { itype = SH2A_NOFPU_INSN_XOR_COMPACT; sh2a_nofpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_XOR_COMPACT; sh2a_nofpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 139 : /* fall through */
       case 155 : /* fall through */
       case 171 : /* fall through */
       case 187 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200b)
-          { itype = SH2A_NOFPU_INSN_OR_COMPACT; sh2a_nofpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_OR_COMPACT; sh2a_nofpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 140 : /* fall through */
       case 156 : /* fall through */
       case 172 : /* fall through */
       case 188 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200c)
-          { itype = SH2A_NOFPU_INSN_CMPSTR_COMPACT; sh2a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_CMPSTR_COMPACT; sh2a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 141 : /* fall through */
       case 157 : /* fall through */
       case 173 : /* fall through */
       case 189 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200d)
-          { itype = SH2A_NOFPU_INSN_XTRCT_COMPACT; sh2a_nofpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_XTRCT_COMPACT; sh2a_nofpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 142 : /* fall through */
       case 158 : /* fall through */
       case 174 : /* fall through */
       case 190 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200e)
-          { itype = SH2A_NOFPU_INSN_MULUW_COMPACT; sh2a_nofpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MULUW_COMPACT; sh2a_nofpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 143 : /* fall through */
       case 159 : /* fall through */
       case 175 : /* fall through */
       case 191 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200f)
-          { itype = SH2A_NOFPU_INSN_MULSW_COMPACT; sh2a_nofpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MULSW_COMPACT; sh2a_nofpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 192 : /* fall through */
       case 208 : /* fall through */
       case 224 : /* fall through */
       case 240 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3000)
-          { itype = SH2A_NOFPU_INSN_CMPEQ_COMPACT; sh2a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_CMPEQ_COMPACT; sh2a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 193 : /* fall through */
       case 209 : /* fall through */
       case 225 : /* fall through */
@@ -765,105 +712,79 @@ sh2a_nofpu_scache::decode (sh2a_nofpu_cpu* current_cpu, PCADDR pc, sh2a_nofpu_in
       case 226 : /* fall through */
       case 242 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3002)
-          { itype = SH2A_NOFPU_INSN_CMPHS_COMPACT; sh2a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_CMPHS_COMPACT; sh2a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 195 : /* fall through */
       case 211 : /* fall through */
       case 227 : /* fall through */
       case 243 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3003)
-          { itype = SH2A_NOFPU_INSN_CMPGE_COMPACT; sh2a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_CMPGE_COMPACT; sh2a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 196 : /* fall through */
       case 212 : /* fall through */
       case 228 : /* fall through */
       case 244 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3004)
-          { itype = SH2A_NOFPU_INSN_DIV1_COMPACT; sh2a_nofpu_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_DIV1_COMPACT; sh2a_nofpu_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 197 : /* fall through */
       case 213 : /* fall through */
       case 229 : /* fall through */
       case 245 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3005)
-          { itype = SH2A_NOFPU_INSN_DMULUL_COMPACT; sh2a_nofpu_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_DMULUL_COMPACT; sh2a_nofpu_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 198 : /* fall through */
       case 214 : /* fall through */
       case 230 : /* fall through */
       case 246 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3006)
-          { itype = SH2A_NOFPU_INSN_CMPHI_COMPACT; sh2a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_CMPHI_COMPACT; sh2a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 199 : /* fall through */
       case 215 : /* fall through */
       case 231 : /* fall through */
       case 247 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3007)
-          { itype = SH2A_NOFPU_INSN_CMPGT_COMPACT; sh2a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_CMPGT_COMPACT; sh2a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 200 : /* fall through */
       case 216 : /* fall through */
       case 232 : /* fall through */
       case 248 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3008)
-          { itype = SH2A_NOFPU_INSN_SUB_COMPACT; sh2a_nofpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_SUB_COMPACT; sh2a_nofpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 202 : /* fall through */
       case 218 : /* fall through */
       case 234 : /* fall through */
       case 250 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300a)
-          { itype = SH2A_NOFPU_INSN_SUBC_COMPACT; sh2a_nofpu_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_SUBC_COMPACT; sh2a_nofpu_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 203 : /* fall through */
       case 219 : /* fall through */
       case 235 : /* fall through */
       case 251 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300b)
-          { itype = SH2A_NOFPU_INSN_SUBV_COMPACT; sh2a_nofpu_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_SUBV_COMPACT; sh2a_nofpu_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 204 : /* fall through */
       case 220 : /* fall through */
       case 236 : /* fall through */
       case 252 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300c)
-          { itype = SH2A_NOFPU_INSN_ADD_COMPACT; sh2a_nofpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_ADD_COMPACT; sh2a_nofpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 205 : /* fall through */
       case 221 : /* fall through */
       case 237 : /* fall through */
       case 253 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300d)
-          { itype = SH2A_NOFPU_INSN_DMULSL_COMPACT; sh2a_nofpu_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_DMULSL_COMPACT; sh2a_nofpu_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 206 : /* fall through */
       case 222 : /* fall through */
       case 238 : /* fall through */
       case 254 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300e)
-          { itype = SH2A_NOFPU_INSN_ADDC_COMPACT; sh2a_nofpu_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_ADDC_COMPACT; sh2a_nofpu_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 207 : /* fall through */
       case 223 : /* fall through */
       case 239 : /* fall through */
       case 255 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300f)
-          { itype = SH2A_NOFPU_INSN_ADDV_COMPACT; sh2a_nofpu_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_ADDV_COMPACT; sh2a_nofpu_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 256 :
         {
           unsigned int val = (((insn >> 23) & (1 << 0)));
@@ -945,9 +866,7 @@ sh2a_nofpu_scache::decode (sh2a_nofpu_cpu* current_cpu, PCADDR pc, sh2a_nofpu_in
       case 300 : /* fall through */
       case 316 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400c)
-          { itype = SH2A_NOFPU_INSN_SHAD_COMPACT; sh2a_nofpu_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_SHAD_COMPACT; sh2a_nofpu_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 270 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x400e)
@@ -958,9 +877,7 @@ sh2a_nofpu_scache::decode (sh2a_nofpu_cpu* current_cpu, PCADDR pc, sh2a_nofpu_in
       case 303 : /* fall through */
       case 319 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400f)
-          { itype = SH2A_NOFPU_INSN_MACW_COMPACT; sh2a_nofpu_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MACW_COMPACT; sh2a_nofpu_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 272 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x4010)
@@ -1151,137 +1068,103 @@ sh2a_nofpu_scache::decode (sh2a_nofpu_cpu* current_cpu, PCADDR pc, sh2a_nofpu_in
       case 382 : /* fall through */
       case 383 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x5000)
-          { itype = SH2A_NOFPU_INSN_MOVL11_COMPACT; sh2a_nofpu_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVL11_COMPACT; sh2a_nofpu_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 384 : /* fall through */
       case 400 : /* fall through */
       case 416 : /* fall through */
       case 432 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6000)
-          { itype = SH2A_NOFPU_INSN_MOVB6_COMPACT; sh2a_nofpu_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVB6_COMPACT; sh2a_nofpu_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 385 : /* fall through */
       case 401 : /* fall through */
       case 417 : /* fall through */
       case 433 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6001)
-          { itype = SH2A_NOFPU_INSN_MOVW6_COMPACT; sh2a_nofpu_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVW6_COMPACT; sh2a_nofpu_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 386 : /* fall through */
       case 402 : /* fall through */
       case 418 : /* fall through */
       case 434 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6002)
-          { itype = SH2A_NOFPU_INSN_MOVL6_COMPACT; sh2a_nofpu_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVL6_COMPACT; sh2a_nofpu_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 387 : /* fall through */
       case 403 : /* fall through */
       case 419 : /* fall through */
       case 435 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6003)
-          { itype = SH2A_NOFPU_INSN_MOV_COMPACT; sh2a_nofpu_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOV_COMPACT; sh2a_nofpu_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 388 : /* fall through */
       case 404 : /* fall through */
       case 420 : /* fall through */
       case 436 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6004)
-          { itype = SH2A_NOFPU_INSN_MOVB7_COMPACT; sh2a_nofpu_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVB7_COMPACT; sh2a_nofpu_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 389 : /* fall through */
       case 405 : /* fall through */
       case 421 : /* fall through */
       case 437 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6005)
-          { itype = SH2A_NOFPU_INSN_MOVW7_COMPACT; sh2a_nofpu_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVW7_COMPACT; sh2a_nofpu_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 390 : /* fall through */
       case 406 : /* fall through */
       case 422 : /* fall through */
       case 438 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6006)
-          { itype = SH2A_NOFPU_INSN_MOVL7_COMPACT; sh2a_nofpu_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVL7_COMPACT; sh2a_nofpu_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 391 : /* fall through */
       case 407 : /* fall through */
       case 423 : /* fall through */
       case 439 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6007)
-          { itype = SH2A_NOFPU_INSN_NOT_COMPACT; sh2a_nofpu_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_NOT_COMPACT; sh2a_nofpu_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 392 : /* fall through */
       case 408 : /* fall through */
       case 424 : /* fall through */
       case 440 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6008)
-          { itype = SH2A_NOFPU_INSN_SWAPB_COMPACT; sh2a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_SWAPB_COMPACT; sh2a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 393 : /* fall through */
       case 409 : /* fall through */
       case 425 : /* fall through */
       case 441 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6009)
-          { itype = SH2A_NOFPU_INSN_SWAPW_COMPACT; sh2a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_SWAPW_COMPACT; sh2a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 394 : /* fall through */
       case 410 : /* fall through */
       case 426 : /* fall through */
       case 442 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600a)
-          { itype = SH2A_NOFPU_INSN_NEGC_COMPACT; sh2a_nofpu_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_NEGC_COMPACT; sh2a_nofpu_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 395 : /* fall through */
       case 411 : /* fall through */
       case 427 : /* fall through */
       case 443 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600b)
-          { itype = SH2A_NOFPU_INSN_NEG_COMPACT; sh2a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_NEG_COMPACT; sh2a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 396 : /* fall through */
       case 412 : /* fall through */
       case 428 : /* fall through */
       case 444 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600c)
-          { itype = SH2A_NOFPU_INSN_EXTUB_COMPACT; sh2a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_EXTUB_COMPACT; sh2a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 397 : /* fall through */
       case 413 : /* fall through */
       case 429 : /* fall through */
       case 445 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600d)
-          { itype = SH2A_NOFPU_INSN_EXTUW_COMPACT; sh2a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_EXTUW_COMPACT; sh2a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 398 : /* fall through */
       case 414 : /* fall through */
       case 430 : /* fall through */
       case 446 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600e)
-          { itype = SH2A_NOFPU_INSN_EXTSB_COMPACT; sh2a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_EXTSB_COMPACT; sh2a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 399 : /* fall through */
       case 415 : /* fall through */
       case 431 : /* fall through */
       case 447 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600f)
-          { itype = SH2A_NOFPU_INSN_EXTSW_COMPACT; sh2a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_EXTSW_COMPACT; sh2a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 448 : /* fall through */
       case 449 : /* fall through */
       case 450 : /* fall through */
@@ -1347,9 +1230,7 @@ sh2a_nofpu_scache::decode (sh2a_nofpu_cpu* current_cpu, PCADDR pc, sh2a_nofpu_in
       case 510 : /* fall through */
       case 511 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x7000)
-          { itype = SH2A_NOFPU_INSN_ADDI_COMPACT; sh2a_nofpu_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_ADDI_COMPACT; sh2a_nofpu_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 512 : /* fall through */
       case 513 : /* fall through */
       case 514 : /* fall through */
@@ -1420,49 +1301,31 @@ sh2a_nofpu_scache::decode (sh2a_nofpu_cpu* current_cpu, PCADDR pc, sh2a_nofpu_in
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8000)
-              { itype = SH2A_NOFPU_INSN_MOVB5_COMPACT; sh2a_nofpu_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_MOVB5_COMPACT; sh2a_nofpu_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8100)
-              { itype = SH2A_NOFPU_INSN_MOVW5_COMPACT; sh2a_nofpu_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_MOVW5_COMPACT; sh2a_nofpu_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8400)
-              { itype = SH2A_NOFPU_INSN_MOVB10_COMPACT; sh2a_nofpu_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_MOVB10_COMPACT; sh2a_nofpu_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8500)
-              { itype = SH2A_NOFPU_INSN_MOVW11_COMPACT; sh2a_nofpu_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_MOVW11_COMPACT; sh2a_nofpu_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8800)
-              { itype = SH2A_NOFPU_INSN_CMPEQI_COMPACT; sh2a_nofpu_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_CMPEQI_COMPACT; sh2a_nofpu_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8900)
-              { itype = SH2A_NOFPU_INSN_BT_COMPACT; sh2a_nofpu_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_BT_COMPACT; sh2a_nofpu_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8b00)
-              { itype = SH2A_NOFPU_INSN_BF_COMPACT; sh2a_nofpu_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_BF_COMPACT; sh2a_nofpu_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8d00)
-              { itype = SH2A_NOFPU_INSN_BTS_COMPACT; sh2a_nofpu_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_BTS_COMPACT; sh2a_nofpu_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8f00)
-              { itype = SH2A_NOFPU_INSN_BFS_COMPACT; sh2a_nofpu_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_BFS_COMPACT; sh2a_nofpu_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1531,9 +1394,7 @@ sh2a_nofpu_scache::decode (sh2a_nofpu_cpu* current_cpu, PCADDR pc, sh2a_nofpu_in
       case 638 : /* fall through */
       case 639 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x9000)
-          { itype = SH2A_NOFPU_INSN_MOVW10_COMPACT; sh2a_nofpu_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVW10_COMPACT; sh2a_nofpu_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 640 : /* fall through */
       case 641 : /* fall through */
       case 642 : /* fall through */
@@ -1599,9 +1460,7 @@ sh2a_nofpu_scache::decode (sh2a_nofpu_cpu* current_cpu, PCADDR pc, sh2a_nofpu_in
       case 702 : /* fall through */
       case 703 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xa000)
-          { itype = SH2A_NOFPU_INSN_BRA_COMPACT; sh2a_nofpu_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_BRA_COMPACT; sh2a_nofpu_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 704 : /* fall through */
       case 705 : /* fall through */
       case 706 : /* fall through */
@@ -1667,9 +1526,7 @@ sh2a_nofpu_scache::decode (sh2a_nofpu_cpu* current_cpu, PCADDR pc, sh2a_nofpu_in
       case 766 : /* fall through */
       case 767 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xb000)
-          { itype = SH2A_NOFPU_INSN_BSR_COMPACT; sh2a_nofpu_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_BSR_COMPACT; sh2a_nofpu_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 768 : /* fall through */
       case 769 : /* fall through */
       case 770 : /* fall through */
@@ -1740,84 +1597,52 @@ sh2a_nofpu_scache::decode (sh2a_nofpu_cpu* current_cpu, PCADDR pc, sh2a_nofpu_in
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc000)
-              { itype = SH2A_NOFPU_INSN_MOVB4_COMPACT; sh2a_nofpu_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_MOVB4_COMPACT; sh2a_nofpu_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc100)
-              { itype = SH2A_NOFPU_INSN_MOVW4_COMPACT; sh2a_nofpu_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_MOVW4_COMPACT; sh2a_nofpu_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc200)
-              { itype = SH2A_NOFPU_INSN_MOVL4_COMPACT; sh2a_nofpu_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_MOVL4_COMPACT; sh2a_nofpu_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc300)
-              { itype = SH2A_NOFPU_INSN_TRAPA_COMPACT; sh2a_nofpu_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_TRAPA_COMPACT; sh2a_nofpu_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc400)
-              { itype = SH2A_NOFPU_INSN_MOVB9_COMPACT; sh2a_nofpu_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_MOVB9_COMPACT; sh2a_nofpu_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc500)
-              { itype = SH2A_NOFPU_INSN_MOVW9_COMPACT; sh2a_nofpu_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_MOVW9_COMPACT; sh2a_nofpu_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 6 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc600)
-              { itype = SH2A_NOFPU_INSN_MOVL9_COMPACT; sh2a_nofpu_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_MOVL9_COMPACT; sh2a_nofpu_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 7 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc700)
-              { itype = SH2A_NOFPU_INSN_MOVA_COMPACT; sh2a_nofpu_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_MOVA_COMPACT; sh2a_nofpu_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc800)
-              { itype = SH2A_NOFPU_INSN_TSTI_COMPACT; sh2a_nofpu_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_TSTI_COMPACT; sh2a_nofpu_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc900)
-              { itype = SH2A_NOFPU_INSN_ANDI_COMPACT; sh2a_nofpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_ANDI_COMPACT; sh2a_nofpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 10 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xca00)
-              { itype = SH2A_NOFPU_INSN_XORI_COMPACT; sh2a_nofpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_XORI_COMPACT; sh2a_nofpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcb00)
-              { itype = SH2A_NOFPU_INSN_ORI_COMPACT; sh2a_nofpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_ORI_COMPACT; sh2a_nofpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 12 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcc00)
-              { itype = SH2A_NOFPU_INSN_TSTB_COMPACT; sh2a_nofpu_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_TSTB_COMPACT; sh2a_nofpu_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcd00)
-              { itype = SH2A_NOFPU_INSN_ANDB_COMPACT; sh2a_nofpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_ANDB_COMPACT; sh2a_nofpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 14 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xce00)
-              { itype = SH2A_NOFPU_INSN_XORB_COMPACT; sh2a_nofpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_XORB_COMPACT; sh2a_nofpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcf00)
-              { itype = SH2A_NOFPU_INSN_ORB_COMPACT; sh2a_nofpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2A_NOFPU_INSN_ORB_COMPACT; sh2a_nofpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1886,9 +1711,7 @@ sh2a_nofpu_scache::decode (sh2a_nofpu_cpu* current_cpu, PCADDR pc, sh2a_nofpu_in
       case 894 : /* fall through */
       case 895 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xd000)
-          { itype = SH2A_NOFPU_INSN_MOVL10_COMPACT; sh2a_nofpu_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVL10_COMPACT; sh2a_nofpu_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 896 : /* fall through */
       case 897 : /* fall through */
       case 898 : /* fall through */
@@ -1954,9 +1777,7 @@ sh2a_nofpu_scache::decode (sh2a_nofpu_cpu* current_cpu, PCADDR pc, sh2a_nofpu_in
       case 958 : /* fall through */
       case 959 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xe000)
-          { itype = SH2A_NOFPU_INSN_MOVI_COMPACT; sh2a_nofpu_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2A_NOFPU_INSN_X_INVALID; sh2a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2A_NOFPU_INSN_MOVI_COMPACT; sh2a_nofpu_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1021 :
         {
           unsigned int val = (((insn >> 27) & (1 << 0)));
index 30d189f..31b2190 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 1337930..bd524e4 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 5570d78..43a7337 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 5d58111..db66d43 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index fe6cd17..daa3077 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 7ae43a8..ac35b86 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index f21562d..b6a6276 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -115,7 +115,7 @@ current_cpu->hardware.h_pc = ANDDI (newval, INVDI (1));
 }
  }
 
-  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (0) : (current_cpu->hardware.h_gr[regno])); }
+  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (MAKEDI (0, 0)) : (current_cpu->hardware.h_gr[regno])); }
   inline void h_gr_set (UINT regno, DI newval) { if (((regno) != (63))) {
 current_cpu->hardware.h_gr[regno] = newval;
 } else {
index 372e3f1..79e3a00 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -480,9 +480,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 100 : /* fall through */
       case 116 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x4)
-          { itype = SH2E_INSN_MOVB3_COMPACT; sh2e_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVB3_COMPACT; sh2e_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 5 : /* fall through */
       case 21 : /* fall through */
       case 37 : /* fall through */
@@ -492,9 +490,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 101 : /* fall through */
       case 117 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x5)
-          { itype = SH2E_INSN_MOVW3_COMPACT; sh2e_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVW3_COMPACT; sh2e_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 6 : /* fall through */
       case 22 : /* fall through */
       case 38 : /* fall through */
@@ -504,9 +500,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 102 : /* fall through */
       case 118 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6)
-          { itype = SH2E_INSN_MOVL3_COMPACT; sh2e_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVL3_COMPACT; sh2e_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 7 : /* fall through */
       case 23 : /* fall through */
       case 39 : /* fall through */
@@ -516,9 +510,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 103 : /* fall through */
       case 119 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x7)
-          { itype = SH2E_INSN_MULL_COMPACT; sh2e_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MULL_COMPACT; sh2e_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 8 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xffff) == 0x8)
@@ -548,9 +540,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 108 : /* fall through */
       case 124 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xc)
-          { itype = SH2E_INSN_MOVB8_COMPACT; sh2e_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVB8_COMPACT; sh2e_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 13 : /* fall through */
       case 29 : /* fall through */
       case 45 : /* fall through */
@@ -560,9 +550,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 109 : /* fall through */
       case 125 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xd)
-          { itype = SH2E_INSN_MOVW8_COMPACT; sh2e_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVW8_COMPACT; sh2e_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 14 : /* fall through */
       case 30 : /* fall through */
       case 46 : /* fall through */
@@ -572,9 +560,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 110 : /* fall through */
       case 126 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xe)
-          { itype = SH2E_INSN_MOVL8_COMPACT; sh2e_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVL8_COMPACT; sh2e_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 15 : /* fall through */
       case 31 : /* fall through */
       case 47 : /* fall through */
@@ -584,9 +570,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 111 : /* fall through */
       case 127 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf)
-          { itype = SH2E_INSN_MACL_COMPACT; sh2e_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MACL_COMPACT; sh2e_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 18 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x12)
@@ -771,9 +755,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 254 : /* fall through */
       case 255 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x1000)
-          { itype = SH2E_INSN_MOVL5_COMPACT; sh2e_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVL5_COMPACT; sh2e_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 256 : /* fall through */
       case 272 : /* fall through */
       case 288 : /* fall through */
@@ -783,9 +765,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 352 : /* fall through */
       case 368 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2000)
-          { itype = SH2E_INSN_MOVB1_COMPACT; sh2e_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVB1_COMPACT; sh2e_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 257 : /* fall through */
       case 273 : /* fall through */
       case 289 : /* fall through */
@@ -795,9 +775,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 353 : /* fall through */
       case 369 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2001)
-          { itype = SH2E_INSN_MOVW1_COMPACT; sh2e_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVW1_COMPACT; sh2e_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 258 : /* fall through */
       case 274 : /* fall through */
       case 290 : /* fall through */
@@ -807,9 +785,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 354 : /* fall through */
       case 370 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2002)
-          { itype = SH2E_INSN_MOVL1_COMPACT; sh2e_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVL1_COMPACT; sh2e_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 260 : /* fall through */
       case 276 : /* fall through */
       case 292 : /* fall through */
@@ -819,9 +795,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 356 : /* fall through */
       case 372 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2004)
-          { itype = SH2E_INSN_MOVB2_COMPACT; sh2e_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVB2_COMPACT; sh2e_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 261 : /* fall through */
       case 277 : /* fall through */
       case 293 : /* fall through */
@@ -831,9 +805,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 357 : /* fall through */
       case 373 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2005)
-          { itype = SH2E_INSN_MOVW2_COMPACT; sh2e_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVW2_COMPACT; sh2e_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 262 : /* fall through */
       case 278 : /* fall through */
       case 294 : /* fall through */
@@ -843,9 +815,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 358 : /* fall through */
       case 374 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2006)
-          { itype = SH2E_INSN_MOVL2_COMPACT; sh2e_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVL2_COMPACT; sh2e_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 263 : /* fall through */
       case 279 : /* fall through */
       case 295 : /* fall through */
@@ -855,9 +825,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 359 : /* fall through */
       case 375 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2007)
-          { itype = SH2E_INSN_DIV0S_COMPACT; sh2e_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_DIV0S_COMPACT; sh2e_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 264 : /* fall through */
       case 280 : /* fall through */
       case 296 : /* fall through */
@@ -867,9 +835,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 360 : /* fall through */
       case 376 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2008)
-          { itype = SH2E_INSN_TST_COMPACT; sh2e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_TST_COMPACT; sh2e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 265 : /* fall through */
       case 281 : /* fall through */
       case 297 : /* fall through */
@@ -879,9 +845,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 361 : /* fall through */
       case 377 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2009)
-          { itype = SH2E_INSN_AND_COMPACT; sh2e_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_AND_COMPACT; sh2e_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 266 : /* fall through */
       case 282 : /* fall through */
       case 298 : /* fall through */
@@ -891,9 +855,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 362 : /* fall through */
       case 378 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200a)
-          { itype = SH2E_INSN_XOR_COMPACT; sh2e_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_XOR_COMPACT; sh2e_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 267 : /* fall through */
       case 283 : /* fall through */
       case 299 : /* fall through */
@@ -903,9 +865,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 363 : /* fall through */
       case 379 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200b)
-          { itype = SH2E_INSN_OR_COMPACT; sh2e_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_OR_COMPACT; sh2e_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 268 : /* fall through */
       case 284 : /* fall through */
       case 300 : /* fall through */
@@ -915,9 +875,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 364 : /* fall through */
       case 380 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200c)
-          { itype = SH2E_INSN_CMPSTR_COMPACT; sh2e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_CMPSTR_COMPACT; sh2e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 269 : /* fall through */
       case 285 : /* fall through */
       case 301 : /* fall through */
@@ -927,9 +885,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 365 : /* fall through */
       case 381 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200d)
-          { itype = SH2E_INSN_XTRCT_COMPACT; sh2e_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_XTRCT_COMPACT; sh2e_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 270 : /* fall through */
       case 286 : /* fall through */
       case 302 : /* fall through */
@@ -939,9 +895,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 366 : /* fall through */
       case 382 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200e)
-          { itype = SH2E_INSN_MULUW_COMPACT; sh2e_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MULUW_COMPACT; sh2e_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 271 : /* fall through */
       case 287 : /* fall through */
       case 303 : /* fall through */
@@ -951,9 +905,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 367 : /* fall through */
       case 383 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200f)
-          { itype = SH2E_INSN_MULSW_COMPACT; sh2e_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MULSW_COMPACT; sh2e_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 384 : /* fall through */
       case 400 : /* fall through */
       case 416 : /* fall through */
@@ -963,9 +915,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 480 : /* fall through */
       case 496 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3000)
-          { itype = SH2E_INSN_CMPEQ_COMPACT; sh2e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_CMPEQ_COMPACT; sh2e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 386 : /* fall through */
       case 402 : /* fall through */
       case 418 : /* fall through */
@@ -975,9 +925,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 482 : /* fall through */
       case 498 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3002)
-          { itype = SH2E_INSN_CMPHS_COMPACT; sh2e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_CMPHS_COMPACT; sh2e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 387 : /* fall through */
       case 403 : /* fall through */
       case 419 : /* fall through */
@@ -987,9 +935,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 483 : /* fall through */
       case 499 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3003)
-          { itype = SH2E_INSN_CMPGE_COMPACT; sh2e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_CMPGE_COMPACT; sh2e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 388 : /* fall through */
       case 404 : /* fall through */
       case 420 : /* fall through */
@@ -999,9 +945,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 484 : /* fall through */
       case 500 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3004)
-          { itype = SH2E_INSN_DIV1_COMPACT; sh2e_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_DIV1_COMPACT; sh2e_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 389 : /* fall through */
       case 405 : /* fall through */
       case 421 : /* fall through */
@@ -1011,9 +955,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 485 : /* fall through */
       case 501 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3005)
-          { itype = SH2E_INSN_DMULUL_COMPACT; sh2e_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_DMULUL_COMPACT; sh2e_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 390 : /* fall through */
       case 406 : /* fall through */
       case 422 : /* fall through */
@@ -1023,9 +965,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 486 : /* fall through */
       case 502 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3006)
-          { itype = SH2E_INSN_CMPHI_COMPACT; sh2e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_CMPHI_COMPACT; sh2e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 391 : /* fall through */
       case 407 : /* fall through */
       case 423 : /* fall through */
@@ -1035,9 +975,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 487 : /* fall through */
       case 503 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3007)
-          { itype = SH2E_INSN_CMPGT_COMPACT; sh2e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_CMPGT_COMPACT; sh2e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 392 : /* fall through */
       case 408 : /* fall through */
       case 424 : /* fall through */
@@ -1047,9 +985,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 488 : /* fall through */
       case 504 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3008)
-          { itype = SH2E_INSN_SUB_COMPACT; sh2e_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_SUB_COMPACT; sh2e_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 394 : /* fall through */
       case 410 : /* fall through */
       case 426 : /* fall through */
@@ -1059,9 +995,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 490 : /* fall through */
       case 506 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300a)
-          { itype = SH2E_INSN_SUBC_COMPACT; sh2e_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_SUBC_COMPACT; sh2e_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 395 : /* fall through */
       case 411 : /* fall through */
       case 427 : /* fall through */
@@ -1071,9 +1005,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 491 : /* fall through */
       case 507 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300b)
-          { itype = SH2E_INSN_SUBV_COMPACT; sh2e_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_SUBV_COMPACT; sh2e_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 396 : /* fall through */
       case 412 : /* fall through */
       case 428 : /* fall through */
@@ -1083,9 +1015,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 492 : /* fall through */
       case 508 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300c)
-          { itype = SH2E_INSN_ADD_COMPACT; sh2e_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_ADD_COMPACT; sh2e_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 397 : /* fall through */
       case 413 : /* fall through */
       case 429 : /* fall through */
@@ -1095,9 +1025,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 493 : /* fall through */
       case 509 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300d)
-          { itype = SH2E_INSN_DMULSL_COMPACT; sh2e_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_DMULSL_COMPACT; sh2e_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 398 : /* fall through */
       case 414 : /* fall through */
       case 430 : /* fall through */
@@ -1107,9 +1035,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 494 : /* fall through */
       case 510 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300e)
-          { itype = SH2E_INSN_ADDC_COMPACT; sh2e_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_ADDC_COMPACT; sh2e_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 399 : /* fall through */
       case 415 : /* fall through */
       case 431 : /* fall through */
@@ -1119,9 +1045,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 495 : /* fall through */
       case 511 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300f)
-          { itype = SH2E_INSN_ADDV_COMPACT; sh2e_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_ADDV_COMPACT; sh2e_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 512 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x4000)
@@ -1186,9 +1110,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 623 : /* fall through */
       case 639 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400f)
-          { itype = SH2E_INSN_MACW_COMPACT; sh2e_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MACW_COMPACT; sh2e_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 528 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x4010)
@@ -1473,9 +1395,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 766 : /* fall through */
       case 767 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x5000)
-          { itype = SH2E_INSN_MOVL11_COMPACT; sh2e_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVL11_COMPACT; sh2e_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 768 : /* fall through */
       case 784 : /* fall through */
       case 800 : /* fall through */
@@ -1485,9 +1405,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 864 : /* fall through */
       case 880 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6000)
-          { itype = SH2E_INSN_MOVB6_COMPACT; sh2e_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVB6_COMPACT; sh2e_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 769 : /* fall through */
       case 785 : /* fall through */
       case 801 : /* fall through */
@@ -1497,9 +1415,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 865 : /* fall through */
       case 881 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6001)
-          { itype = SH2E_INSN_MOVW6_COMPACT; sh2e_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVW6_COMPACT; sh2e_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 770 : /* fall through */
       case 786 : /* fall through */
       case 802 : /* fall through */
@@ -1509,9 +1425,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 866 : /* fall through */
       case 882 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6002)
-          { itype = SH2E_INSN_MOVL6_COMPACT; sh2e_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVL6_COMPACT; sh2e_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 771 : /* fall through */
       case 787 : /* fall through */
       case 803 : /* fall through */
@@ -1521,9 +1435,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 867 : /* fall through */
       case 883 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6003)
-          { itype = SH2E_INSN_MOV_COMPACT; sh2e_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOV_COMPACT; sh2e_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 772 : /* fall through */
       case 788 : /* fall through */
       case 804 : /* fall through */
@@ -1533,9 +1445,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 868 : /* fall through */
       case 884 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6004)
-          { itype = SH2E_INSN_MOVB7_COMPACT; sh2e_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVB7_COMPACT; sh2e_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 773 : /* fall through */
       case 789 : /* fall through */
       case 805 : /* fall through */
@@ -1545,9 +1455,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 869 : /* fall through */
       case 885 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6005)
-          { itype = SH2E_INSN_MOVW7_COMPACT; sh2e_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVW7_COMPACT; sh2e_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 774 : /* fall through */
       case 790 : /* fall through */
       case 806 : /* fall through */
@@ -1557,9 +1465,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 870 : /* fall through */
       case 886 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6006)
-          { itype = SH2E_INSN_MOVL7_COMPACT; sh2e_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVL7_COMPACT; sh2e_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 775 : /* fall through */
       case 791 : /* fall through */
       case 807 : /* fall through */
@@ -1569,9 +1475,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 871 : /* fall through */
       case 887 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6007)
-          { itype = SH2E_INSN_NOT_COMPACT; sh2e_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_NOT_COMPACT; sh2e_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 776 : /* fall through */
       case 792 : /* fall through */
       case 808 : /* fall through */
@@ -1581,9 +1485,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 872 : /* fall through */
       case 888 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6008)
-          { itype = SH2E_INSN_SWAPB_COMPACT; sh2e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_SWAPB_COMPACT; sh2e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 777 : /* fall through */
       case 793 : /* fall through */
       case 809 : /* fall through */
@@ -1593,9 +1495,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 873 : /* fall through */
       case 889 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6009)
-          { itype = SH2E_INSN_SWAPW_COMPACT; sh2e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_SWAPW_COMPACT; sh2e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 778 : /* fall through */
       case 794 : /* fall through */
       case 810 : /* fall through */
@@ -1605,9 +1505,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 874 : /* fall through */
       case 890 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600a)
-          { itype = SH2E_INSN_NEGC_COMPACT; sh2e_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_NEGC_COMPACT; sh2e_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 779 : /* fall through */
       case 795 : /* fall through */
       case 811 : /* fall through */
@@ -1617,9 +1515,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 875 : /* fall through */
       case 891 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600b)
-          { itype = SH2E_INSN_NEG_COMPACT; sh2e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_NEG_COMPACT; sh2e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 780 : /* fall through */
       case 796 : /* fall through */
       case 812 : /* fall through */
@@ -1629,9 +1525,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 876 : /* fall through */
       case 892 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600c)
-          { itype = SH2E_INSN_EXTUB_COMPACT; sh2e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_EXTUB_COMPACT; sh2e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 781 : /* fall through */
       case 797 : /* fall through */
       case 813 : /* fall through */
@@ -1641,9 +1535,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 877 : /* fall through */
       case 893 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600d)
-          { itype = SH2E_INSN_EXTUW_COMPACT; sh2e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_EXTUW_COMPACT; sh2e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 782 : /* fall through */
       case 798 : /* fall through */
       case 814 : /* fall through */
@@ -1653,9 +1545,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 878 : /* fall through */
       case 894 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600e)
-          { itype = SH2E_INSN_EXTSB_COMPACT; sh2e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_EXTSB_COMPACT; sh2e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 783 : /* fall through */
       case 799 : /* fall through */
       case 815 : /* fall through */
@@ -1665,9 +1555,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 879 : /* fall through */
       case 895 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600f)
-          { itype = SH2E_INSN_EXTSW_COMPACT; sh2e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_EXTSW_COMPACT; sh2e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 896 : /* fall through */
       case 897 : /* fall through */
       case 898 : /* fall through */
@@ -1797,9 +1685,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 1022 : /* fall through */
       case 1023 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x7000)
-          { itype = SH2E_INSN_ADDI_COMPACT; sh2e_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_ADDI_COMPACT; sh2e_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1024 : /* fall through */
       case 1025 : /* fall through */
       case 1026 : /* fall through */
@@ -1934,49 +1820,31 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8000)
-              { itype = SH2E_INSN_MOVB5_COMPACT; sh2e_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_MOVB5_COMPACT; sh2e_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8100)
-              { itype = SH2E_INSN_MOVW5_COMPACT; sh2e_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_MOVW5_COMPACT; sh2e_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8400)
-              { itype = SH2E_INSN_MOVB10_COMPACT; sh2e_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_MOVB10_COMPACT; sh2e_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8500)
-              { itype = SH2E_INSN_MOVW11_COMPACT; sh2e_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_MOVW11_COMPACT; sh2e_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8800)
-              { itype = SH2E_INSN_CMPEQI_COMPACT; sh2e_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_CMPEQI_COMPACT; sh2e_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8900)
-              { itype = SH2E_INSN_BT_COMPACT; sh2e_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_BT_COMPACT; sh2e_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8b00)
-              { itype = SH2E_INSN_BF_COMPACT; sh2e_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_BF_COMPACT; sh2e_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8d00)
-              { itype = SH2E_INSN_BTS_COMPACT; sh2e_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_BTS_COMPACT; sh2e_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8f00)
-              { itype = SH2E_INSN_BFS_COMPACT; sh2e_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_BFS_COMPACT; sh2e_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -2109,9 +1977,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 1278 : /* fall through */
       case 1279 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x9000)
-          { itype = SH2E_INSN_MOVW10_COMPACT; sh2e_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVW10_COMPACT; sh2e_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1280 : /* fall through */
       case 1281 : /* fall through */
       case 1282 : /* fall through */
@@ -2241,9 +2107,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 1406 : /* fall through */
       case 1407 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xa000)
-          { itype = SH2E_INSN_BRA_COMPACT; sh2e_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_BRA_COMPACT; sh2e_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1408 : /* fall through */
       case 1409 : /* fall through */
       case 1410 : /* fall through */
@@ -2373,9 +2237,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 1534 : /* fall through */
       case 1535 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xb000)
-          { itype = SH2E_INSN_BSR_COMPACT; sh2e_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_BSR_COMPACT; sh2e_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1536 : /* fall through */
       case 1537 : /* fall through */
       case 1538 : /* fall through */
@@ -2510,84 +2372,52 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc000)
-              { itype = SH2E_INSN_MOVB4_COMPACT; sh2e_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_MOVB4_COMPACT; sh2e_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc100)
-              { itype = SH2E_INSN_MOVW4_COMPACT; sh2e_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_MOVW4_COMPACT; sh2e_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc200)
-              { itype = SH2E_INSN_MOVL4_COMPACT; sh2e_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_MOVL4_COMPACT; sh2e_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc300)
-              { itype = SH2E_INSN_TRAPA_COMPACT; sh2e_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_TRAPA_COMPACT; sh2e_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc400)
-              { itype = SH2E_INSN_MOVB9_COMPACT; sh2e_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_MOVB9_COMPACT; sh2e_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc500)
-              { itype = SH2E_INSN_MOVW9_COMPACT; sh2e_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_MOVW9_COMPACT; sh2e_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 6 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc600)
-              { itype = SH2E_INSN_MOVL9_COMPACT; sh2e_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_MOVL9_COMPACT; sh2e_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 7 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc700)
-              { itype = SH2E_INSN_MOVA_COMPACT; sh2e_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_MOVA_COMPACT; sh2e_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc800)
-              { itype = SH2E_INSN_TSTI_COMPACT; sh2e_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_TSTI_COMPACT; sh2e_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc900)
-              { itype = SH2E_INSN_ANDI_COMPACT; sh2e_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_ANDI_COMPACT; sh2e_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 10 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xca00)
-              { itype = SH2E_INSN_XORI_COMPACT; sh2e_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_XORI_COMPACT; sh2e_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcb00)
-              { itype = SH2E_INSN_ORI_COMPACT; sh2e_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_ORI_COMPACT; sh2e_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 12 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcc00)
-              { itype = SH2E_INSN_TSTB_COMPACT; sh2e_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_TSTB_COMPACT; sh2e_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcd00)
-              { itype = SH2E_INSN_ANDB_COMPACT; sh2e_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_ANDB_COMPACT; sh2e_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 14 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xce00)
-              { itype = SH2E_INSN_XORB_COMPACT; sh2e_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_XORB_COMPACT; sh2e_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcf00)
-              { itype = SH2E_INSN_ORB_COMPACT; sh2e_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_ORB_COMPACT; sh2e_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -2720,9 +2550,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 1790 : /* fall through */
       case 1791 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xd000)
-          { itype = SH2E_INSN_MOVL10_COMPACT; sh2e_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVL10_COMPACT; sh2e_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1792 : /* fall through */
       case 1793 : /* fall through */
       case 1794 : /* fall through */
@@ -2852,9 +2680,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 1918 : /* fall through */
       case 1919 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xe000)
-          { itype = SH2E_INSN_MOVI_COMPACT; sh2e_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_MOVI_COMPACT; sh2e_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1920 : /* fall through */
       case 1936 : /* fall through */
       case 1952 : /* fall through */
@@ -2864,9 +2690,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 2016 : /* fall through */
       case 2032 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf000)
-          { itype = SH2E_INSN_FADD_COMPACT; sh2e_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_FADD_COMPACT; sh2e_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1921 : /* fall through */
       case 1937 : /* fall through */
       case 1953 : /* fall through */
@@ -2876,9 +2700,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 2017 : /* fall through */
       case 2033 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf001)
-          { itype = SH2E_INSN_FSUB_COMPACT; sh2e_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_FSUB_COMPACT; sh2e_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1922 : /* fall through */
       case 1938 : /* fall through */
       case 1954 : /* fall through */
@@ -2888,9 +2710,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 2018 : /* fall through */
       case 2034 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf002)
-          { itype = SH2E_INSN_FMUL_COMPACT; sh2e_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_FMUL_COMPACT; sh2e_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1923 : /* fall through */
       case 1939 : /* fall through */
       case 1955 : /* fall through */
@@ -2900,9 +2720,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 2019 : /* fall through */
       case 2035 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf003)
-          { itype = SH2E_INSN_FDIV_COMPACT; sh2e_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_FDIV_COMPACT; sh2e_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1924 : /* fall through */
       case 1940 : /* fall through */
       case 1956 : /* fall through */
@@ -2912,9 +2730,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 2020 : /* fall through */
       case 2036 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf004)
-          { itype = SH2E_INSN_FCMPEQ_COMPACT; sh2e_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_FCMPEQ_COMPACT; sh2e_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1925 : /* fall through */
       case 1941 : /* fall through */
       case 1957 : /* fall through */
@@ -2924,9 +2740,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 2021 : /* fall through */
       case 2037 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf005)
-          { itype = SH2E_INSN_FCMPGT_COMPACT; sh2e_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_FCMPGT_COMPACT; sh2e_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1926 : /* fall through */
       case 1942 : /* fall through */
       case 1958 : /* fall through */
@@ -2936,9 +2750,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 2022 : /* fall through */
       case 2038 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf006)
-          { itype = SH2E_INSN_FMOV4_COMPACT; sh2e_extract_sfmt_fmov4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_FMOV4_COMPACT; sh2e_extract_sfmt_fmov4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1927 : /* fall through */
       case 1943 : /* fall through */
       case 1959 : /* fall through */
@@ -2948,9 +2760,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 2023 : /* fall through */
       case 2039 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf007)
-          { itype = SH2E_INSN_FMOV7_COMPACT; sh2e_extract_sfmt_fmov7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_FMOV7_COMPACT; sh2e_extract_sfmt_fmov7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1928 : /* fall through */
       case 1944 : /* fall through */
       case 1960 : /* fall through */
@@ -2960,9 +2770,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 2024 : /* fall through */
       case 2040 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf008)
-          { itype = SH2E_INSN_FMOV2_COMPACT; sh2e_extract_sfmt_fmov2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_FMOV2_COMPACT; sh2e_extract_sfmt_fmov2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1929 : /* fall through */
       case 1945 : /* fall through */
       case 1961 : /* fall through */
@@ -2972,9 +2780,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 2025 : /* fall through */
       case 2041 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf009)
-          { itype = SH2E_INSN_FMOV3_COMPACT; sh2e_extract_sfmt_fmov3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_FMOV3_COMPACT; sh2e_extract_sfmt_fmov3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1930 : /* fall through */
       case 1946 : /* fall through */
       case 1962 : /* fall through */
@@ -2984,9 +2790,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 2026 : /* fall through */
       case 2042 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00a)
-          { itype = SH2E_INSN_FMOV5_COMPACT; sh2e_extract_sfmt_fmov5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_FMOV5_COMPACT; sh2e_extract_sfmt_fmov5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1931 : /* fall through */
       case 1947 : /* fall through */
       case 1963 : /* fall through */
@@ -2996,9 +2800,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 2027 : /* fall through */
       case 2043 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00b)
-          { itype = SH2E_INSN_FMOV6_COMPACT; sh2e_extract_sfmt_fmov6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_FMOV6_COMPACT; sh2e_extract_sfmt_fmov6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1932 : /* fall through */
       case 1948 : /* fall through */
       case 1964 : /* fall through */
@@ -3008,9 +2810,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 2028 : /* fall through */
       case 2044 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00c)
-          { itype = SH2E_INSN_FMOV1_COMPACT; sh2e_extract_sfmt_fmov1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_FMOV1_COMPACT; sh2e_extract_sfmt_fmov1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1933 :
         {
           unsigned int val = (((insn >> 23) & (1 << 0)));
@@ -3018,14 +2818,10 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf00d)
-              { itype = SH2E_INSN_FSTS_COMPACT; sh2e_extract_sfmt_fsts_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_FSTS_COMPACT; sh2e_extract_sfmt_fsts_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf08d)
-              { itype = SH2E_INSN_FLDI0_COMPACT; sh2e_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_FLDI0_COMPACT; sh2e_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -3038,9 +2834,7 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
       case 2030 : /* fall through */
       case 2046 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00e)
-          { itype = SH2E_INSN_FMAC_COMPACT; sh2e_extract_sfmt_fmac_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH2E_INSN_FMAC_COMPACT; sh2e_extract_sfmt_fmac_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1949 :
         {
           unsigned int val = (((insn >> 23) & (1 << 0)));
@@ -3048,14 +2842,10 @@ sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn,
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf01d)
-              { itype = SH2E_INSN_FLDS_COMPACT; sh2e_extract_sfmt_flds_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_FLDS_COMPACT; sh2e_extract_sfmt_flds_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf09d)
-              { itype = SH2E_INSN_FLDI1_COMPACT; sh2e_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH2E_INSN_FLDI1_COMPACT; sh2e_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
index 1424253..f13aa14 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index e7bb3cf..035b158 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 96087ce..d837e1d 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 148bd78..c8fc2cb 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 22ffbca..2944448 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 7699b84..ee84ee3 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index c272307..150fb64 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -103,7 +103,7 @@ current_cpu->hardware.h_pc = ANDDI (newval, INVDI (1));
 }
  }
 
-  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (0) : (current_cpu->hardware.h_gr[regno])); }
+  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (MAKEDI (0, 0)) : (current_cpu->hardware.h_gr[regno])); }
   inline void h_gr_set (UINT regno, DI newval) { if (((regno) != (63))) {
 current_cpu->hardware.h_gr[regno] = newval;
 } else {
index 2b0e41b..3f1e268 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -422,33 +422,25 @@ sh3_scache::decode (sh3_cpu* current_cpu, PCADDR pc, sh3_insn_word base_insn, sh
       case 36 : /* fall through */
       case 52 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x4)
-          { itype = SH3_INSN_MOVB3_COMPACT; sh3_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVB3_COMPACT; sh3_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 5 : /* fall through */
       case 21 : /* fall through */
       case 37 : /* fall through */
       case 53 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x5)
-          { itype = SH3_INSN_MOVW3_COMPACT; sh3_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVW3_COMPACT; sh3_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 6 : /* fall through */
       case 22 : /* fall through */
       case 38 : /* fall through */
       case 54 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6)
-          { itype = SH3_INSN_MOVL3_COMPACT; sh3_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVL3_COMPACT; sh3_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 7 : /* fall through */
       case 23 : /* fall through */
       case 39 : /* fall through */
       case 55 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x7)
-          { itype = SH3_INSN_MULL_COMPACT; sh3_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MULL_COMPACT; sh3_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 8 :
         {
           unsigned int val = (((insn >> 22) & (1 << 0)));
@@ -487,33 +479,25 @@ sh3_scache::decode (sh3_cpu* current_cpu, PCADDR pc, sh3_insn_word base_insn, sh
       case 44 : /* fall through */
       case 60 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xc)
-          { itype = SH3_INSN_MOVB8_COMPACT; sh3_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVB8_COMPACT; sh3_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 13 : /* fall through */
       case 29 : /* fall through */
       case 45 : /* fall through */
       case 61 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xd)
-          { itype = SH3_INSN_MOVW8_COMPACT; sh3_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVW8_COMPACT; sh3_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 14 : /* fall through */
       case 30 : /* fall through */
       case 46 : /* fall through */
       case 62 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xe)
-          { itype = SH3_INSN_MOVL8_COMPACT; sh3_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVL8_COMPACT; sh3_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 15 : /* fall through */
       case 31 : /* fall through */
       case 47 : /* fall through */
       case 63 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf)
-          { itype = SH3_INSN_MACL_COMPACT; sh3_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MACL_COMPACT; sh3_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 18 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x12)
@@ -637,241 +621,181 @@ sh3_scache::decode (sh3_cpu* current_cpu, PCADDR pc, sh3_insn_word base_insn, sh
       case 126 : /* fall through */
       case 127 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x1000)
-          { itype = SH3_INSN_MOVL5_COMPACT; sh3_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVL5_COMPACT; sh3_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 128 : /* fall through */
       case 144 : /* fall through */
       case 160 : /* fall through */
       case 176 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2000)
-          { itype = SH3_INSN_MOVB1_COMPACT; sh3_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVB1_COMPACT; sh3_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 129 : /* fall through */
       case 145 : /* fall through */
       case 161 : /* fall through */
       case 177 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2001)
-          { itype = SH3_INSN_MOVW1_COMPACT; sh3_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVW1_COMPACT; sh3_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 130 : /* fall through */
       case 146 : /* fall through */
       case 162 : /* fall through */
       case 178 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2002)
-          { itype = SH3_INSN_MOVL1_COMPACT; sh3_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVL1_COMPACT; sh3_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 132 : /* fall through */
       case 148 : /* fall through */
       case 164 : /* fall through */
       case 180 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2004)
-          { itype = SH3_INSN_MOVB2_COMPACT; sh3_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVB2_COMPACT; sh3_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 133 : /* fall through */
       case 149 : /* fall through */
       case 165 : /* fall through */
       case 181 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2005)
-          { itype = SH3_INSN_MOVW2_COMPACT; sh3_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVW2_COMPACT; sh3_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 134 : /* fall through */
       case 150 : /* fall through */
       case 166 : /* fall through */
       case 182 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2006)
-          { itype = SH3_INSN_MOVL2_COMPACT; sh3_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVL2_COMPACT; sh3_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 135 : /* fall through */
       case 151 : /* fall through */
       case 167 : /* fall through */
       case 183 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2007)
-          { itype = SH3_INSN_DIV0S_COMPACT; sh3_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_DIV0S_COMPACT; sh3_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 136 : /* fall through */
       case 152 : /* fall through */
       case 168 : /* fall through */
       case 184 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2008)
-          { itype = SH3_INSN_TST_COMPACT; sh3_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_TST_COMPACT; sh3_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 137 : /* fall through */
       case 153 : /* fall through */
       case 169 : /* fall through */
       case 185 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2009)
-          { itype = SH3_INSN_AND_COMPACT; sh3_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_AND_COMPACT; sh3_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 138 : /* fall through */
       case 154 : /* fall through */
       case 170 : /* fall through */
       case 186 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200a)
-          { itype = SH3_INSN_XOR_COMPACT; sh3_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_XOR_COMPACT; sh3_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 139 : /* fall through */
       case 155 : /* fall through */
       case 171 : /* fall through */
       case 187 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200b)
-          { itype = SH3_INSN_OR_COMPACT; sh3_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_OR_COMPACT; sh3_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 140 : /* fall through */
       case 156 : /* fall through */
       case 172 : /* fall through */
       case 188 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200c)
-          { itype = SH3_INSN_CMPSTR_COMPACT; sh3_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_CMPSTR_COMPACT; sh3_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 141 : /* fall through */
       case 157 : /* fall through */
       case 173 : /* fall through */
       case 189 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200d)
-          { itype = SH3_INSN_XTRCT_COMPACT; sh3_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_XTRCT_COMPACT; sh3_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 142 : /* fall through */
       case 158 : /* fall through */
       case 174 : /* fall through */
       case 190 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200e)
-          { itype = SH3_INSN_MULUW_COMPACT; sh3_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MULUW_COMPACT; sh3_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 143 : /* fall through */
       case 159 : /* fall through */
       case 175 : /* fall through */
       case 191 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200f)
-          { itype = SH3_INSN_MULSW_COMPACT; sh3_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MULSW_COMPACT; sh3_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 192 : /* fall through */
       case 208 : /* fall through */
       case 224 : /* fall through */
       case 240 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3000)
-          { itype = SH3_INSN_CMPEQ_COMPACT; sh3_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_CMPEQ_COMPACT; sh3_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 194 : /* fall through */
       case 210 : /* fall through */
       case 226 : /* fall through */
       case 242 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3002)
-          { itype = SH3_INSN_CMPHS_COMPACT; sh3_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_CMPHS_COMPACT; sh3_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 195 : /* fall through */
       case 211 : /* fall through */
       case 227 : /* fall through */
       case 243 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3003)
-          { itype = SH3_INSN_CMPGE_COMPACT; sh3_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_CMPGE_COMPACT; sh3_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 196 : /* fall through */
       case 212 : /* fall through */
       case 228 : /* fall through */
       case 244 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3004)
-          { itype = SH3_INSN_DIV1_COMPACT; sh3_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_DIV1_COMPACT; sh3_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 197 : /* fall through */
       case 213 : /* fall through */
       case 229 : /* fall through */
       case 245 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3005)
-          { itype = SH3_INSN_DMULUL_COMPACT; sh3_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_DMULUL_COMPACT; sh3_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 198 : /* fall through */
       case 214 : /* fall through */
       case 230 : /* fall through */
       case 246 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3006)
-          { itype = SH3_INSN_CMPHI_COMPACT; sh3_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_CMPHI_COMPACT; sh3_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 199 : /* fall through */
       case 215 : /* fall through */
       case 231 : /* fall through */
       case 247 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3007)
-          { itype = SH3_INSN_CMPGT_COMPACT; sh3_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_CMPGT_COMPACT; sh3_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 200 : /* fall through */
       case 216 : /* fall through */
       case 232 : /* fall through */
       case 248 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3008)
-          { itype = SH3_INSN_SUB_COMPACT; sh3_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_SUB_COMPACT; sh3_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 202 : /* fall through */
       case 218 : /* fall through */
       case 234 : /* fall through */
       case 250 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300a)
-          { itype = SH3_INSN_SUBC_COMPACT; sh3_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_SUBC_COMPACT; sh3_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 203 : /* fall through */
       case 219 : /* fall through */
       case 235 : /* fall through */
       case 251 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300b)
-          { itype = SH3_INSN_SUBV_COMPACT; sh3_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_SUBV_COMPACT; sh3_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 204 : /* fall through */
       case 220 : /* fall through */
       case 236 : /* fall through */
       case 252 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300c)
-          { itype = SH3_INSN_ADD_COMPACT; sh3_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_ADD_COMPACT; sh3_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 205 : /* fall through */
       case 221 : /* fall through */
       case 237 : /* fall through */
       case 253 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300d)
-          { itype = SH3_INSN_DMULSL_COMPACT; sh3_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_DMULSL_COMPACT; sh3_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 206 : /* fall through */
       case 222 : /* fall through */
       case 238 : /* fall through */
       case 254 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300e)
-          { itype = SH3_INSN_ADDC_COMPACT; sh3_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_ADDC_COMPACT; sh3_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 207 : /* fall through */
       case 223 : /* fall through */
       case 239 : /* fall through */
       case 255 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300f)
-          { itype = SH3_INSN_ADDV_COMPACT; sh3_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_ADDV_COMPACT; sh3_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 256 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x4000)
@@ -927,17 +851,13 @@ sh3_scache::decode (sh3_cpu* current_cpu, PCADDR pc, sh3_insn_word base_insn, sh
       case 300 : /* fall through */
       case 316 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400c)
-          { itype = SH3_INSN_SHAD_COMPACT; sh3_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_SHAD_COMPACT; sh3_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 269 : /* fall through */
       case 285 : /* fall through */
       case 301 : /* fall through */
       case 317 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400d)
-          { itype = SH3_INSN_SHLD_COMPACT; sh3_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_SHLD_COMPACT; sh3_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 270 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x400e)
@@ -948,9 +868,7 @@ sh3_scache::decode (sh3_cpu* current_cpu, PCADDR pc, sh3_insn_word base_insn, sh
       case 303 : /* fall through */
       case 319 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400f)
-          { itype = SH3_INSN_MACW_COMPACT; sh3_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MACW_COMPACT; sh3_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 272 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x4010)
@@ -1141,137 +1059,103 @@ sh3_scache::decode (sh3_cpu* current_cpu, PCADDR pc, sh3_insn_word base_insn, sh
       case 382 : /* fall through */
       case 383 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x5000)
-          { itype = SH3_INSN_MOVL11_COMPACT; sh3_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVL11_COMPACT; sh3_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 384 : /* fall through */
       case 400 : /* fall through */
       case 416 : /* fall through */
       case 432 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6000)
-          { itype = SH3_INSN_MOVB6_COMPACT; sh3_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVB6_COMPACT; sh3_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 385 : /* fall through */
       case 401 : /* fall through */
       case 417 : /* fall through */
       case 433 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6001)
-          { itype = SH3_INSN_MOVW6_COMPACT; sh3_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVW6_COMPACT; sh3_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 386 : /* fall through */
       case 402 : /* fall through */
       case 418 : /* fall through */
       case 434 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6002)
-          { itype = SH3_INSN_MOVL6_COMPACT; sh3_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVL6_COMPACT; sh3_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 387 : /* fall through */
       case 403 : /* fall through */
       case 419 : /* fall through */
       case 435 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6003)
-          { itype = SH3_INSN_MOV_COMPACT; sh3_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOV_COMPACT; sh3_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 388 : /* fall through */
       case 404 : /* fall through */
       case 420 : /* fall through */
       case 436 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6004)
-          { itype = SH3_INSN_MOVB7_COMPACT; sh3_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVB7_COMPACT; sh3_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 389 : /* fall through */
       case 405 : /* fall through */
       case 421 : /* fall through */
       case 437 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6005)
-          { itype = SH3_INSN_MOVW7_COMPACT; sh3_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVW7_COMPACT; sh3_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 390 : /* fall through */
       case 406 : /* fall through */
       case 422 : /* fall through */
       case 438 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6006)
-          { itype = SH3_INSN_MOVL7_COMPACT; sh3_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVL7_COMPACT; sh3_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 391 : /* fall through */
       case 407 : /* fall through */
       case 423 : /* fall through */
       case 439 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6007)
-          { itype = SH3_INSN_NOT_COMPACT; sh3_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_NOT_COMPACT; sh3_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 392 : /* fall through */
       case 408 : /* fall through */
       case 424 : /* fall through */
       case 440 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6008)
-          { itype = SH3_INSN_SWAPB_COMPACT; sh3_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_SWAPB_COMPACT; sh3_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 393 : /* fall through */
       case 409 : /* fall through */
       case 425 : /* fall through */
       case 441 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6009)
-          { itype = SH3_INSN_SWAPW_COMPACT; sh3_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_SWAPW_COMPACT; sh3_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 394 : /* fall through */
       case 410 : /* fall through */
       case 426 : /* fall through */
       case 442 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600a)
-          { itype = SH3_INSN_NEGC_COMPACT; sh3_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_NEGC_COMPACT; sh3_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 395 : /* fall through */
       case 411 : /* fall through */
       case 427 : /* fall through */
       case 443 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600b)
-          { itype = SH3_INSN_NEG_COMPACT; sh3_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_NEG_COMPACT; sh3_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 396 : /* fall through */
       case 412 : /* fall through */
       case 428 : /* fall through */
       case 444 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600c)
-          { itype = SH3_INSN_EXTUB_COMPACT; sh3_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_EXTUB_COMPACT; sh3_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 397 : /* fall through */
       case 413 : /* fall through */
       case 429 : /* fall through */
       case 445 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600d)
-          { itype = SH3_INSN_EXTUW_COMPACT; sh3_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_EXTUW_COMPACT; sh3_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 398 : /* fall through */
       case 414 : /* fall through */
       case 430 : /* fall through */
       case 446 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600e)
-          { itype = SH3_INSN_EXTSB_COMPACT; sh3_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_EXTSB_COMPACT; sh3_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 399 : /* fall through */
       case 415 : /* fall through */
       case 431 : /* fall through */
       case 447 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600f)
-          { itype = SH3_INSN_EXTSW_COMPACT; sh3_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_EXTSW_COMPACT; sh3_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 448 : /* fall through */
       case 449 : /* fall through */
       case 450 : /* fall through */
@@ -1337,9 +1221,7 @@ sh3_scache::decode (sh3_cpu* current_cpu, PCADDR pc, sh3_insn_word base_insn, sh
       case 510 : /* fall through */
       case 511 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x7000)
-          { itype = SH3_INSN_ADDI_COMPACT; sh3_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_ADDI_COMPACT; sh3_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 512 : /* fall through */
       case 513 : /* fall through */
       case 514 : /* fall through */
@@ -1410,49 +1292,31 @@ sh3_scache::decode (sh3_cpu* current_cpu, PCADDR pc, sh3_insn_word base_insn, sh
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8000)
-              { itype = SH3_INSN_MOVB5_COMPACT; sh3_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_MOVB5_COMPACT; sh3_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8100)
-              { itype = SH3_INSN_MOVW5_COMPACT; sh3_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_MOVW5_COMPACT; sh3_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8400)
-              { itype = SH3_INSN_MOVB10_COMPACT; sh3_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_MOVB10_COMPACT; sh3_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8500)
-              { itype = SH3_INSN_MOVW11_COMPACT; sh3_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_MOVW11_COMPACT; sh3_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8800)
-              { itype = SH3_INSN_CMPEQI_COMPACT; sh3_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_CMPEQI_COMPACT; sh3_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8900)
-              { itype = SH3_INSN_BT_COMPACT; sh3_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_BT_COMPACT; sh3_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8b00)
-              { itype = SH3_INSN_BF_COMPACT; sh3_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_BF_COMPACT; sh3_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8d00)
-              { itype = SH3_INSN_BTS_COMPACT; sh3_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_BTS_COMPACT; sh3_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8f00)
-              { itype = SH3_INSN_BFS_COMPACT; sh3_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_BFS_COMPACT; sh3_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1521,9 +1385,7 @@ sh3_scache::decode (sh3_cpu* current_cpu, PCADDR pc, sh3_insn_word base_insn, sh
       case 638 : /* fall through */
       case 639 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x9000)
-          { itype = SH3_INSN_MOVW10_COMPACT; sh3_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVW10_COMPACT; sh3_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 640 : /* fall through */
       case 641 : /* fall through */
       case 642 : /* fall through */
@@ -1589,9 +1451,7 @@ sh3_scache::decode (sh3_cpu* current_cpu, PCADDR pc, sh3_insn_word base_insn, sh
       case 702 : /* fall through */
       case 703 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xa000)
-          { itype = SH3_INSN_BRA_COMPACT; sh3_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_BRA_COMPACT; sh3_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 704 : /* fall through */
       case 705 : /* fall through */
       case 706 : /* fall through */
@@ -1657,9 +1517,7 @@ sh3_scache::decode (sh3_cpu* current_cpu, PCADDR pc, sh3_insn_word base_insn, sh
       case 766 : /* fall through */
       case 767 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xb000)
-          { itype = SH3_INSN_BSR_COMPACT; sh3_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_BSR_COMPACT; sh3_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 768 : /* fall through */
       case 769 : /* fall through */
       case 770 : /* fall through */
@@ -1730,84 +1588,52 @@ sh3_scache::decode (sh3_cpu* current_cpu, PCADDR pc, sh3_insn_word base_insn, sh
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc000)
-              { itype = SH3_INSN_MOVB4_COMPACT; sh3_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_MOVB4_COMPACT; sh3_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc100)
-              { itype = SH3_INSN_MOVW4_COMPACT; sh3_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_MOVW4_COMPACT; sh3_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc200)
-              { itype = SH3_INSN_MOVL4_COMPACT; sh3_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_MOVL4_COMPACT; sh3_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc300)
-              { itype = SH3_INSN_TRAPA_COMPACT; sh3_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_TRAPA_COMPACT; sh3_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc400)
-              { itype = SH3_INSN_MOVB9_COMPACT; sh3_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_MOVB9_COMPACT; sh3_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc500)
-              { itype = SH3_INSN_MOVW9_COMPACT; sh3_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_MOVW9_COMPACT; sh3_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 6 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc600)
-              { itype = SH3_INSN_MOVL9_COMPACT; sh3_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_MOVL9_COMPACT; sh3_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 7 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc700)
-              { itype = SH3_INSN_MOVA_COMPACT; sh3_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_MOVA_COMPACT; sh3_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc800)
-              { itype = SH3_INSN_TSTI_COMPACT; sh3_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_TSTI_COMPACT; sh3_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc900)
-              { itype = SH3_INSN_ANDI_COMPACT; sh3_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_ANDI_COMPACT; sh3_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 10 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xca00)
-              { itype = SH3_INSN_XORI_COMPACT; sh3_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_XORI_COMPACT; sh3_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcb00)
-              { itype = SH3_INSN_ORI_COMPACT; sh3_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_ORI_COMPACT; sh3_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 12 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcc00)
-              { itype = SH3_INSN_TSTB_COMPACT; sh3_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_TSTB_COMPACT; sh3_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcd00)
-              { itype = SH3_INSN_ANDB_COMPACT; sh3_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_ANDB_COMPACT; sh3_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 14 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xce00)
-              { itype = SH3_INSN_XORB_COMPACT; sh3_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_XORB_COMPACT; sh3_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcf00)
-              { itype = SH3_INSN_ORB_COMPACT; sh3_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3_INSN_ORB_COMPACT; sh3_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1876,9 +1702,7 @@ sh3_scache::decode (sh3_cpu* current_cpu, PCADDR pc, sh3_insn_word base_insn, sh
       case 894 : /* fall through */
       case 895 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xd000)
-          { itype = SH3_INSN_MOVL10_COMPACT; sh3_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVL10_COMPACT; sh3_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 896 : /* fall through */
       case 897 : /* fall through */
       case 898 : /* fall through */
@@ -1944,9 +1768,7 @@ sh3_scache::decode (sh3_cpu* current_cpu, PCADDR pc, sh3_insn_word base_insn, sh
       case 958 : /* fall through */
       case 959 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xe000)
-          { itype = SH3_INSN_MOVI_COMPACT; sh3_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3_INSN_X_INVALID; sh3_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3_INSN_MOVI_COMPACT; sh3_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1021 :
         {
           unsigned int val = (((insn >> 27) & (1 << 0)));
index 3dd9599..667e810 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 97c9b92..99210d8 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 2a3d36f..3d36843 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 78602f3..9709476 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 6479290..8e3687f 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 1a36adc..7a652cc 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 8f8b99c..18af88a 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -115,7 +115,7 @@ current_cpu->hardware.h_pc = ANDDI (newval, INVDI (1));
 }
  }
 
-  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (0) : (current_cpu->hardware.h_gr[regno])); }
+  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (MAKEDI (0, 0)) : (current_cpu->hardware.h_gr[regno])); }
   inline void h_gr_set (UINT regno, DI newval) { if (((regno) != (63))) {
 current_cpu->hardware.h_gr[regno] = newval;
 } else {
index 9d7a2c3..aa6b002 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -485,14 +485,10 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x3)
-              { itype = SH3E_INSN_BSRF_COMPACT; sh3e_extract_sfmt_bsrf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_BSRF_COMPACT; sh3e_extract_sfmt_bsrf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x83)
-              { itype = SH3E_INSN_PREF_COMPACT; sh3e_extract_sfmt_pref_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_PREF_COMPACT; sh3e_extract_sfmt_pref_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -505,9 +501,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 100 : /* fall through */
       case 116 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x4)
-          { itype = SH3E_INSN_MOVB3_COMPACT; sh3e_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVB3_COMPACT; sh3e_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 5 : /* fall through */
       case 21 : /* fall through */
       case 37 : /* fall through */
@@ -517,9 +511,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 101 : /* fall through */
       case 117 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x5)
-          { itype = SH3E_INSN_MOVW3_COMPACT; sh3e_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVW3_COMPACT; sh3e_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 6 : /* fall through */
       case 22 : /* fall through */
       case 38 : /* fall through */
@@ -529,9 +521,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 102 : /* fall through */
       case 118 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6)
-          { itype = SH3E_INSN_MOVL3_COMPACT; sh3e_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVL3_COMPACT; sh3e_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 7 : /* fall through */
       case 23 : /* fall through */
       case 39 : /* fall through */
@@ -541,9 +531,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 103 : /* fall through */
       case 119 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x7)
-          { itype = SH3E_INSN_MULL_COMPACT; sh3e_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MULL_COMPACT; sh3e_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 8 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xffff) == 0x8)
@@ -573,9 +561,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 108 : /* fall through */
       case 124 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xc)
-          { itype = SH3E_INSN_MOVB8_COMPACT; sh3e_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVB8_COMPACT; sh3e_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 13 : /* fall through */
       case 29 : /* fall through */
       case 45 : /* fall through */
@@ -585,9 +571,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 109 : /* fall through */
       case 125 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xd)
-          { itype = SH3E_INSN_MOVW8_COMPACT; sh3e_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVW8_COMPACT; sh3e_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 14 : /* fall through */
       case 30 : /* fall through */
       case 46 : /* fall through */
@@ -597,9 +581,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 110 : /* fall through */
       case 126 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xe)
-          { itype = SH3E_INSN_MOVL8_COMPACT; sh3e_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVL8_COMPACT; sh3e_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 15 : /* fall through */
       case 31 : /* fall through */
       case 47 : /* fall through */
@@ -609,9 +591,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 111 : /* fall through */
       case 127 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf)
-          { itype = SH3E_INSN_MACL_COMPACT; sh3e_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MACL_COMPACT; sh3e_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 18 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x12)
@@ -806,9 +786,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 254 : /* fall through */
       case 255 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x1000)
-          { itype = SH3E_INSN_MOVL5_COMPACT; sh3e_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVL5_COMPACT; sh3e_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 256 : /* fall through */
       case 272 : /* fall through */
       case 288 : /* fall through */
@@ -818,9 +796,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 352 : /* fall through */
       case 368 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2000)
-          { itype = SH3E_INSN_MOVB1_COMPACT; sh3e_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVB1_COMPACT; sh3e_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 257 : /* fall through */
       case 273 : /* fall through */
       case 289 : /* fall through */
@@ -830,9 +806,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 353 : /* fall through */
       case 369 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2001)
-          { itype = SH3E_INSN_MOVW1_COMPACT; sh3e_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVW1_COMPACT; sh3e_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 258 : /* fall through */
       case 274 : /* fall through */
       case 290 : /* fall through */
@@ -842,9 +816,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 354 : /* fall through */
       case 370 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2002)
-          { itype = SH3E_INSN_MOVL1_COMPACT; sh3e_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVL1_COMPACT; sh3e_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 260 : /* fall through */
       case 276 : /* fall through */
       case 292 : /* fall through */
@@ -854,9 +826,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 356 : /* fall through */
       case 372 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2004)
-          { itype = SH3E_INSN_MOVB2_COMPACT; sh3e_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVB2_COMPACT; sh3e_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 261 : /* fall through */
       case 277 : /* fall through */
       case 293 : /* fall through */
@@ -866,9 +836,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 357 : /* fall through */
       case 373 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2005)
-          { itype = SH3E_INSN_MOVW2_COMPACT; sh3e_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVW2_COMPACT; sh3e_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 262 : /* fall through */
       case 278 : /* fall through */
       case 294 : /* fall through */
@@ -878,9 +846,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 358 : /* fall through */
       case 374 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2006)
-          { itype = SH3E_INSN_MOVL2_COMPACT; sh3e_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVL2_COMPACT; sh3e_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 263 : /* fall through */
       case 279 : /* fall through */
       case 295 : /* fall through */
@@ -890,9 +856,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 359 : /* fall through */
       case 375 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2007)
-          { itype = SH3E_INSN_DIV0S_COMPACT; sh3e_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_DIV0S_COMPACT; sh3e_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 264 : /* fall through */
       case 280 : /* fall through */
       case 296 : /* fall through */
@@ -902,9 +866,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 360 : /* fall through */
       case 376 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2008)
-          { itype = SH3E_INSN_TST_COMPACT; sh3e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_TST_COMPACT; sh3e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 265 : /* fall through */
       case 281 : /* fall through */
       case 297 : /* fall through */
@@ -914,9 +876,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 361 : /* fall through */
       case 377 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2009)
-          { itype = SH3E_INSN_AND_COMPACT; sh3e_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_AND_COMPACT; sh3e_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 266 : /* fall through */
       case 282 : /* fall through */
       case 298 : /* fall through */
@@ -926,9 +886,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 362 : /* fall through */
       case 378 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200a)
-          { itype = SH3E_INSN_XOR_COMPACT; sh3e_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_XOR_COMPACT; sh3e_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 267 : /* fall through */
       case 283 : /* fall through */
       case 299 : /* fall through */
@@ -938,9 +896,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 363 : /* fall through */
       case 379 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200b)
-          { itype = SH3E_INSN_OR_COMPACT; sh3e_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_OR_COMPACT; sh3e_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 268 : /* fall through */
       case 284 : /* fall through */
       case 300 : /* fall through */
@@ -950,9 +906,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 364 : /* fall through */
       case 380 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200c)
-          { itype = SH3E_INSN_CMPSTR_COMPACT; sh3e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_CMPSTR_COMPACT; sh3e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 269 : /* fall through */
       case 285 : /* fall through */
       case 301 : /* fall through */
@@ -962,9 +916,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 365 : /* fall through */
       case 381 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200d)
-          { itype = SH3E_INSN_XTRCT_COMPACT; sh3e_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_XTRCT_COMPACT; sh3e_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 270 : /* fall through */
       case 286 : /* fall through */
       case 302 : /* fall through */
@@ -974,9 +926,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 366 : /* fall through */
       case 382 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200e)
-          { itype = SH3E_INSN_MULUW_COMPACT; sh3e_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MULUW_COMPACT; sh3e_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 271 : /* fall through */
       case 287 : /* fall through */
       case 303 : /* fall through */
@@ -986,9 +936,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 367 : /* fall through */
       case 383 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200f)
-          { itype = SH3E_INSN_MULSW_COMPACT; sh3e_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MULSW_COMPACT; sh3e_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 384 : /* fall through */
       case 400 : /* fall through */
       case 416 : /* fall through */
@@ -998,9 +946,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 480 : /* fall through */
       case 496 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3000)
-          { itype = SH3E_INSN_CMPEQ_COMPACT; sh3e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_CMPEQ_COMPACT; sh3e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 386 : /* fall through */
       case 402 : /* fall through */
       case 418 : /* fall through */
@@ -1010,9 +956,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 482 : /* fall through */
       case 498 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3002)
-          { itype = SH3E_INSN_CMPHS_COMPACT; sh3e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_CMPHS_COMPACT; sh3e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 387 : /* fall through */
       case 403 : /* fall through */
       case 419 : /* fall through */
@@ -1022,9 +966,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 483 : /* fall through */
       case 499 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3003)
-          { itype = SH3E_INSN_CMPGE_COMPACT; sh3e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_CMPGE_COMPACT; sh3e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 388 : /* fall through */
       case 404 : /* fall through */
       case 420 : /* fall through */
@@ -1034,9 +976,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 484 : /* fall through */
       case 500 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3004)
-          { itype = SH3E_INSN_DIV1_COMPACT; sh3e_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_DIV1_COMPACT; sh3e_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 389 : /* fall through */
       case 405 : /* fall through */
       case 421 : /* fall through */
@@ -1046,9 +986,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 485 : /* fall through */
       case 501 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3005)
-          { itype = SH3E_INSN_DMULUL_COMPACT; sh3e_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_DMULUL_COMPACT; sh3e_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 390 : /* fall through */
       case 406 : /* fall through */
       case 422 : /* fall through */
@@ -1058,9 +996,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 486 : /* fall through */
       case 502 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3006)
-          { itype = SH3E_INSN_CMPHI_COMPACT; sh3e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_CMPHI_COMPACT; sh3e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 391 : /* fall through */
       case 407 : /* fall through */
       case 423 : /* fall through */
@@ -1070,9 +1006,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 487 : /* fall through */
       case 503 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3007)
-          { itype = SH3E_INSN_CMPGT_COMPACT; sh3e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_CMPGT_COMPACT; sh3e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 392 : /* fall through */
       case 408 : /* fall through */
       case 424 : /* fall through */
@@ -1082,9 +1016,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 488 : /* fall through */
       case 504 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3008)
-          { itype = SH3E_INSN_SUB_COMPACT; sh3e_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_SUB_COMPACT; sh3e_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 394 : /* fall through */
       case 410 : /* fall through */
       case 426 : /* fall through */
@@ -1094,9 +1026,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 490 : /* fall through */
       case 506 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300a)
-          { itype = SH3E_INSN_SUBC_COMPACT; sh3e_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_SUBC_COMPACT; sh3e_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 395 : /* fall through */
       case 411 : /* fall through */
       case 427 : /* fall through */
@@ -1106,9 +1036,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 491 : /* fall through */
       case 507 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300b)
-          { itype = SH3E_INSN_SUBV_COMPACT; sh3e_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_SUBV_COMPACT; sh3e_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 396 : /* fall through */
       case 412 : /* fall through */
       case 428 : /* fall through */
@@ -1118,9 +1046,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 492 : /* fall through */
       case 508 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300c)
-          { itype = SH3E_INSN_ADD_COMPACT; sh3e_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_ADD_COMPACT; sh3e_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 397 : /* fall through */
       case 413 : /* fall through */
       case 429 : /* fall through */
@@ -1130,9 +1056,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 493 : /* fall through */
       case 509 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300d)
-          { itype = SH3E_INSN_DMULSL_COMPACT; sh3e_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_DMULSL_COMPACT; sh3e_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 398 : /* fall through */
       case 414 : /* fall through */
       case 430 : /* fall through */
@@ -1142,9 +1066,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 494 : /* fall through */
       case 510 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300e)
-          { itype = SH3E_INSN_ADDC_COMPACT; sh3e_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_ADDC_COMPACT; sh3e_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 399 : /* fall through */
       case 415 : /* fall through */
       case 431 : /* fall through */
@@ -1154,9 +1076,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 495 : /* fall through */
       case 511 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300f)
-          { itype = SH3E_INSN_ADDV_COMPACT; sh3e_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_ADDV_COMPACT; sh3e_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 512 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x4000)
@@ -1216,9 +1136,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 620 : /* fall through */
       case 636 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400c)
-          { itype = SH3E_INSN_SHAD_COMPACT; sh3e_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_SHAD_COMPACT; sh3e_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 525 : /* fall through */
       case 541 : /* fall through */
       case 557 : /* fall through */
@@ -1228,9 +1146,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 621 : /* fall through */
       case 637 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400d)
-          { itype = SH3E_INSN_SHLD_COMPACT; sh3e_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_SHLD_COMPACT; sh3e_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 526 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x400e)
@@ -1245,9 +1161,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 623 : /* fall through */
       case 639 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400f)
-          { itype = SH3E_INSN_MACW_COMPACT; sh3e_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MACW_COMPACT; sh3e_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 528 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x4010)
@@ -1532,9 +1446,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 766 : /* fall through */
       case 767 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x5000)
-          { itype = SH3E_INSN_MOVL11_COMPACT; sh3e_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVL11_COMPACT; sh3e_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 768 : /* fall through */
       case 784 : /* fall through */
       case 800 : /* fall through */
@@ -1544,9 +1456,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 864 : /* fall through */
       case 880 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6000)
-          { itype = SH3E_INSN_MOVB6_COMPACT; sh3e_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVB6_COMPACT; sh3e_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 769 : /* fall through */
       case 785 : /* fall through */
       case 801 : /* fall through */
@@ -1556,9 +1466,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 865 : /* fall through */
       case 881 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6001)
-          { itype = SH3E_INSN_MOVW6_COMPACT; sh3e_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVW6_COMPACT; sh3e_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 770 : /* fall through */
       case 786 : /* fall through */
       case 802 : /* fall through */
@@ -1568,9 +1476,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 866 : /* fall through */
       case 882 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6002)
-          { itype = SH3E_INSN_MOVL6_COMPACT; sh3e_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVL6_COMPACT; sh3e_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 771 : /* fall through */
       case 787 : /* fall through */
       case 803 : /* fall through */
@@ -1580,9 +1486,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 867 : /* fall through */
       case 883 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6003)
-          { itype = SH3E_INSN_MOV_COMPACT; sh3e_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOV_COMPACT; sh3e_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 772 : /* fall through */
       case 788 : /* fall through */
       case 804 : /* fall through */
@@ -1592,9 +1496,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 868 : /* fall through */
       case 884 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6004)
-          { itype = SH3E_INSN_MOVB7_COMPACT; sh3e_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVB7_COMPACT; sh3e_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 773 : /* fall through */
       case 789 : /* fall through */
       case 805 : /* fall through */
@@ -1604,9 +1506,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 869 : /* fall through */
       case 885 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6005)
-          { itype = SH3E_INSN_MOVW7_COMPACT; sh3e_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVW7_COMPACT; sh3e_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 774 : /* fall through */
       case 790 : /* fall through */
       case 806 : /* fall through */
@@ -1616,9 +1516,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 870 : /* fall through */
       case 886 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6006)
-          { itype = SH3E_INSN_MOVL7_COMPACT; sh3e_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVL7_COMPACT; sh3e_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 775 : /* fall through */
       case 791 : /* fall through */
       case 807 : /* fall through */
@@ -1628,9 +1526,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 871 : /* fall through */
       case 887 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6007)
-          { itype = SH3E_INSN_NOT_COMPACT; sh3e_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_NOT_COMPACT; sh3e_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 776 : /* fall through */
       case 792 : /* fall through */
       case 808 : /* fall through */
@@ -1640,9 +1536,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 872 : /* fall through */
       case 888 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6008)
-          { itype = SH3E_INSN_SWAPB_COMPACT; sh3e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_SWAPB_COMPACT; sh3e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 777 : /* fall through */
       case 793 : /* fall through */
       case 809 : /* fall through */
@@ -1652,9 +1546,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 873 : /* fall through */
       case 889 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6009)
-          { itype = SH3E_INSN_SWAPW_COMPACT; sh3e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_SWAPW_COMPACT; sh3e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 778 : /* fall through */
       case 794 : /* fall through */
       case 810 : /* fall through */
@@ -1664,9 +1556,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 874 : /* fall through */
       case 890 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600a)
-          { itype = SH3E_INSN_NEGC_COMPACT; sh3e_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_NEGC_COMPACT; sh3e_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 779 : /* fall through */
       case 795 : /* fall through */
       case 811 : /* fall through */
@@ -1676,9 +1566,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 875 : /* fall through */
       case 891 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600b)
-          { itype = SH3E_INSN_NEG_COMPACT; sh3e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_NEG_COMPACT; sh3e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 780 : /* fall through */
       case 796 : /* fall through */
       case 812 : /* fall through */
@@ -1688,9 +1576,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 876 : /* fall through */
       case 892 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600c)
-          { itype = SH3E_INSN_EXTUB_COMPACT; sh3e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_EXTUB_COMPACT; sh3e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 781 : /* fall through */
       case 797 : /* fall through */
       case 813 : /* fall through */
@@ -1700,9 +1586,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 877 : /* fall through */
       case 893 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600d)
-          { itype = SH3E_INSN_EXTUW_COMPACT; sh3e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_EXTUW_COMPACT; sh3e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 782 : /* fall through */
       case 798 : /* fall through */
       case 814 : /* fall through */
@@ -1712,9 +1596,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 878 : /* fall through */
       case 894 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600e)
-          { itype = SH3E_INSN_EXTSB_COMPACT; sh3e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_EXTSB_COMPACT; sh3e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 783 : /* fall through */
       case 799 : /* fall through */
       case 815 : /* fall through */
@@ -1724,9 +1606,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 879 : /* fall through */
       case 895 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600f)
-          { itype = SH3E_INSN_EXTSW_COMPACT; sh3e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_EXTSW_COMPACT; sh3e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 896 : /* fall through */
       case 897 : /* fall through */
       case 898 : /* fall through */
@@ -1856,9 +1736,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 1022 : /* fall through */
       case 1023 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x7000)
-          { itype = SH3E_INSN_ADDI_COMPACT; sh3e_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_ADDI_COMPACT; sh3e_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1024 : /* fall through */
       case 1025 : /* fall through */
       case 1026 : /* fall through */
@@ -1993,49 +1871,31 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8000)
-              { itype = SH3E_INSN_MOVB5_COMPACT; sh3e_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_MOVB5_COMPACT; sh3e_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8100)
-              { itype = SH3E_INSN_MOVW5_COMPACT; sh3e_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_MOVW5_COMPACT; sh3e_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8400)
-              { itype = SH3E_INSN_MOVB10_COMPACT; sh3e_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_MOVB10_COMPACT; sh3e_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8500)
-              { itype = SH3E_INSN_MOVW11_COMPACT; sh3e_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_MOVW11_COMPACT; sh3e_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8800)
-              { itype = SH3E_INSN_CMPEQI_COMPACT; sh3e_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_CMPEQI_COMPACT; sh3e_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8900)
-              { itype = SH3E_INSN_BT_COMPACT; sh3e_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_BT_COMPACT; sh3e_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8b00)
-              { itype = SH3E_INSN_BF_COMPACT; sh3e_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_BF_COMPACT; sh3e_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8d00)
-              { itype = SH3E_INSN_BTS_COMPACT; sh3e_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_BTS_COMPACT; sh3e_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8f00)
-              { itype = SH3E_INSN_BFS_COMPACT; sh3e_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_BFS_COMPACT; sh3e_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -2168,9 +2028,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 1278 : /* fall through */
       case 1279 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x9000)
-          { itype = SH3E_INSN_MOVW10_COMPACT; sh3e_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVW10_COMPACT; sh3e_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1280 : /* fall through */
       case 1281 : /* fall through */
       case 1282 : /* fall through */
@@ -2300,9 +2158,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 1406 : /* fall through */
       case 1407 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xa000)
-          { itype = SH3E_INSN_BRA_COMPACT; sh3e_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_BRA_COMPACT; sh3e_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1408 : /* fall through */
       case 1409 : /* fall through */
       case 1410 : /* fall through */
@@ -2432,9 +2288,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 1534 : /* fall through */
       case 1535 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xb000)
-          { itype = SH3E_INSN_BSR_COMPACT; sh3e_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_BSR_COMPACT; sh3e_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1536 : /* fall through */
       case 1537 : /* fall through */
       case 1538 : /* fall through */
@@ -2569,84 +2423,52 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc000)
-              { itype = SH3E_INSN_MOVB4_COMPACT; sh3e_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_MOVB4_COMPACT; sh3e_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc100)
-              { itype = SH3E_INSN_MOVW4_COMPACT; sh3e_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_MOVW4_COMPACT; sh3e_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc200)
-              { itype = SH3E_INSN_MOVL4_COMPACT; sh3e_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_MOVL4_COMPACT; sh3e_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc300)
-              { itype = SH3E_INSN_TRAPA_COMPACT; sh3e_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_TRAPA_COMPACT; sh3e_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc400)
-              { itype = SH3E_INSN_MOVB9_COMPACT; sh3e_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_MOVB9_COMPACT; sh3e_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc500)
-              { itype = SH3E_INSN_MOVW9_COMPACT; sh3e_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_MOVW9_COMPACT; sh3e_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 6 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc600)
-              { itype = SH3E_INSN_MOVL9_COMPACT; sh3e_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_MOVL9_COMPACT; sh3e_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 7 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc700)
-              { itype = SH3E_INSN_MOVA_COMPACT; sh3e_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_MOVA_COMPACT; sh3e_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc800)
-              { itype = SH3E_INSN_TSTI_COMPACT; sh3e_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_TSTI_COMPACT; sh3e_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc900)
-              { itype = SH3E_INSN_ANDI_COMPACT; sh3e_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_ANDI_COMPACT; sh3e_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 10 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xca00)
-              { itype = SH3E_INSN_XORI_COMPACT; sh3e_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_XORI_COMPACT; sh3e_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcb00)
-              { itype = SH3E_INSN_ORI_COMPACT; sh3e_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_ORI_COMPACT; sh3e_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 12 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcc00)
-              { itype = SH3E_INSN_TSTB_COMPACT; sh3e_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_TSTB_COMPACT; sh3e_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcd00)
-              { itype = SH3E_INSN_ANDB_COMPACT; sh3e_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_ANDB_COMPACT; sh3e_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 14 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xce00)
-              { itype = SH3E_INSN_XORB_COMPACT; sh3e_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_XORB_COMPACT; sh3e_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcf00)
-              { itype = SH3E_INSN_ORB_COMPACT; sh3e_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_ORB_COMPACT; sh3e_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -2779,9 +2601,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 1790 : /* fall through */
       case 1791 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xd000)
-          { itype = SH3E_INSN_MOVL10_COMPACT; sh3e_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVL10_COMPACT; sh3e_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1792 : /* fall through */
       case 1793 : /* fall through */
       case 1794 : /* fall through */
@@ -2911,9 +2731,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 1918 : /* fall through */
       case 1919 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xe000)
-          { itype = SH3E_INSN_MOVI_COMPACT; sh3e_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_MOVI_COMPACT; sh3e_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1920 : /* fall through */
       case 1936 : /* fall through */
       case 1952 : /* fall through */
@@ -2923,9 +2741,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 2016 : /* fall through */
       case 2032 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf000)
-          { itype = SH3E_INSN_FADD_COMPACT; sh3e_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_FADD_COMPACT; sh3e_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1921 : /* fall through */
       case 1937 : /* fall through */
       case 1953 : /* fall through */
@@ -2935,9 +2751,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 2017 : /* fall through */
       case 2033 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf001)
-          { itype = SH3E_INSN_FSUB_COMPACT; sh3e_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_FSUB_COMPACT; sh3e_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1922 : /* fall through */
       case 1938 : /* fall through */
       case 1954 : /* fall through */
@@ -2947,9 +2761,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 2018 : /* fall through */
       case 2034 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf002)
-          { itype = SH3E_INSN_FMUL_COMPACT; sh3e_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_FMUL_COMPACT; sh3e_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1923 : /* fall through */
       case 1939 : /* fall through */
       case 1955 : /* fall through */
@@ -2959,9 +2771,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 2019 : /* fall through */
       case 2035 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf003)
-          { itype = SH3E_INSN_FDIV_COMPACT; sh3e_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_FDIV_COMPACT; sh3e_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1924 : /* fall through */
       case 1940 : /* fall through */
       case 1956 : /* fall through */
@@ -2971,9 +2781,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 2020 : /* fall through */
       case 2036 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf004)
-          { itype = SH3E_INSN_FCMPEQ_COMPACT; sh3e_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_FCMPEQ_COMPACT; sh3e_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1925 : /* fall through */
       case 1941 : /* fall through */
       case 1957 : /* fall through */
@@ -2983,9 +2791,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 2021 : /* fall through */
       case 2037 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf005)
-          { itype = SH3E_INSN_FCMPGT_COMPACT; sh3e_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_FCMPGT_COMPACT; sh3e_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1926 : /* fall through */
       case 1942 : /* fall through */
       case 1958 : /* fall through */
@@ -2995,9 +2801,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 2022 : /* fall through */
       case 2038 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf006)
-          { itype = SH3E_INSN_FMOV4_COMPACT; sh3e_extract_sfmt_fmov4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_FMOV4_COMPACT; sh3e_extract_sfmt_fmov4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1927 : /* fall through */
       case 1943 : /* fall through */
       case 1959 : /* fall through */
@@ -3007,9 +2811,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 2023 : /* fall through */
       case 2039 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf007)
-          { itype = SH3E_INSN_FMOV7_COMPACT; sh3e_extract_sfmt_fmov7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_FMOV7_COMPACT; sh3e_extract_sfmt_fmov7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1928 : /* fall through */
       case 1944 : /* fall through */
       case 1960 : /* fall through */
@@ -3019,9 +2821,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 2024 : /* fall through */
       case 2040 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf008)
-          { itype = SH3E_INSN_FMOV2_COMPACT; sh3e_extract_sfmt_fmov2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_FMOV2_COMPACT; sh3e_extract_sfmt_fmov2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1929 : /* fall through */
       case 1945 : /* fall through */
       case 1961 : /* fall through */
@@ -3031,9 +2831,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 2025 : /* fall through */
       case 2041 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf009)
-          { itype = SH3E_INSN_FMOV3_COMPACT; sh3e_extract_sfmt_fmov3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_FMOV3_COMPACT; sh3e_extract_sfmt_fmov3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1930 : /* fall through */
       case 1946 : /* fall through */
       case 1962 : /* fall through */
@@ -3043,9 +2841,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 2026 : /* fall through */
       case 2042 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00a)
-          { itype = SH3E_INSN_FMOV5_COMPACT; sh3e_extract_sfmt_fmov5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_FMOV5_COMPACT; sh3e_extract_sfmt_fmov5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1931 : /* fall through */
       case 1947 : /* fall through */
       case 1963 : /* fall through */
@@ -3055,9 +2851,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 2027 : /* fall through */
       case 2043 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00b)
-          { itype = SH3E_INSN_FMOV6_COMPACT; sh3e_extract_sfmt_fmov6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_FMOV6_COMPACT; sh3e_extract_sfmt_fmov6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1932 : /* fall through */
       case 1948 : /* fall through */
       case 1964 : /* fall through */
@@ -3067,9 +2861,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 2028 : /* fall through */
       case 2044 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00c)
-          { itype = SH3E_INSN_FMOV1_COMPACT; sh3e_extract_sfmt_fmov1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_FMOV1_COMPACT; sh3e_extract_sfmt_fmov1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1933 :
         {
           unsigned int val = (((insn >> 23) & (1 << 0)));
@@ -3077,14 +2869,10 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf00d)
-              { itype = SH3E_INSN_FSTS_COMPACT; sh3e_extract_sfmt_fsts_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_FSTS_COMPACT; sh3e_extract_sfmt_fsts_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf08d)
-              { itype = SH3E_INSN_FLDI0_COMPACT; sh3e_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_FLDI0_COMPACT; sh3e_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -3097,9 +2885,7 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
       case 2030 : /* fall through */
       case 2046 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00e)
-          { itype = SH3E_INSN_FMAC_COMPACT; sh3e_extract_sfmt_fmac_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH3E_INSN_FMAC_COMPACT; sh3e_extract_sfmt_fmac_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1949 :
         {
           unsigned int val = (((insn >> 23) & (1 << 0)));
@@ -3107,14 +2893,10 @@ sh3e_scache::decode (sh3e_cpu* current_cpu, PCADDR pc, sh3e_insn_word base_insn,
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf01d)
-              { itype = SH3E_INSN_FLDS_COMPACT; sh3e_extract_sfmt_flds_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_FLDS_COMPACT; sh3e_extract_sfmt_flds_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf09d)
-              { itype = SH3E_INSN_FLDI1_COMPACT; sh3e_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH3E_INSN_FLDI1_COMPACT; sh3e_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH3E_INSN_X_INVALID; sh3e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
index cbe5609..28a6153 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 0efa06e..e84babf 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index dd3dd83..9b084fa 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index e56fae4..4d1045d 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index b8cee86..e7b4ce8 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 5bae6c4..873b310 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 0397fe3..45c31ca 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -115,7 +115,7 @@ current_cpu->hardware.h_pc = ANDDI (newval, INVDI (1));
 }
  }
 
-  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (0) : (current_cpu->hardware.h_gr[regno])); }
+  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (MAKEDI (0, 0)) : (current_cpu->hardware.h_gr[regno])); }
   inline void h_gr_set (UINT regno, DI newval) { if (((regno) != (63))) {
 current_cpu->hardware.h_gr[regno] = newval;
 } else {
index bf3a965..94948cb 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -522,10 +522,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 64 : /* fall through */
       case 80 : /* fall through */
       case 96 : /* fall through */
-      case 112 :
-        if ((entire_insn & 0xf00f0000) == 0x0)
-          { itype = SH4_INSN_MOVI20_COMPACT; sh4_extract_sfmt_movi20_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 112 : itype = SH4_INSN_MOVI20_COMPACT; sh4_extract_sfmt_movi20_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 3 :
         {
           unsigned int val = (((insn >> 23) & (1 << 0)));
@@ -533,14 +530,10 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x3)
-              { itype = SH4_INSN_BSRF_COMPACT; sh4_extract_sfmt_bsrf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_BSRF_COMPACT; sh4_extract_sfmt_bsrf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x83)
-              { itype = SH4_INSN_PREF_COMPACT; sh4_extract_sfmt_pref_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_PREF_COMPACT; sh4_extract_sfmt_pref_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -553,9 +546,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 100 : /* fall through */
       case 116 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x4)
-          { itype = SH4_INSN_MOVB3_COMPACT; sh4_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVB3_COMPACT; sh4_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 5 : /* fall through */
       case 21 : /* fall through */
       case 37 : /* fall through */
@@ -565,9 +556,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 101 : /* fall through */
       case 117 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x5)
-          { itype = SH4_INSN_MOVW3_COMPACT; sh4_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVW3_COMPACT; sh4_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 6 : /* fall through */
       case 22 : /* fall through */
       case 38 : /* fall through */
@@ -577,9 +566,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 102 : /* fall through */
       case 118 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6)
-          { itype = SH4_INSN_MOVL3_COMPACT; sh4_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVL3_COMPACT; sh4_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 7 : /* fall through */
       case 23 : /* fall through */
       case 39 : /* fall through */
@@ -589,9 +576,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 103 : /* fall through */
       case 119 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x7)
-          { itype = SH4_INSN_MULL_COMPACT; sh4_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MULL_COMPACT; sh4_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 8 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xffff) == 0x8)
@@ -621,9 +606,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 108 : /* fall through */
       case 124 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xc)
-          { itype = SH4_INSN_MOVB8_COMPACT; sh4_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVB8_COMPACT; sh4_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 13 : /* fall through */
       case 29 : /* fall through */
       case 45 : /* fall through */
@@ -633,9 +616,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 109 : /* fall through */
       case 125 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xd)
-          { itype = SH4_INSN_MOVW8_COMPACT; sh4_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVW8_COMPACT; sh4_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 14 : /* fall through */
       case 30 : /* fall through */
       case 46 : /* fall through */
@@ -645,9 +626,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 110 : /* fall through */
       case 126 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xe)
-          { itype = SH4_INSN_MOVL8_COMPACT; sh4_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVL8_COMPACT; sh4_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 15 : /* fall through */
       case 31 : /* fall through */
       case 47 : /* fall through */
@@ -657,9 +636,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 111 : /* fall through */
       case 127 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf)
-          { itype = SH4_INSN_MACL_COMPACT; sh4_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MACL_COMPACT; sh4_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 18 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x12)
@@ -697,14 +674,10 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x23)
-              { itype = SH4_INSN_BRAF_COMPACT; sh4_extract_sfmt_braf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_BRAF_COMPACT; sh4_extract_sfmt_braf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xa3)
-              { itype = SH4_INSN_OCBP_COMPACT; sh4_extract_sfmt_ocbi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_OCBP_COMPACT; sh4_extract_sfmt_ocbi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -882,9 +855,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 254 : /* fall through */
       case 255 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x1000)
-          { itype = SH4_INSN_MOVL5_COMPACT; sh4_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVL5_COMPACT; sh4_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 256 : /* fall through */
       case 272 : /* fall through */
       case 288 : /* fall through */
@@ -894,9 +865,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 352 : /* fall through */
       case 368 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2000)
-          { itype = SH4_INSN_MOVB1_COMPACT; sh4_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVB1_COMPACT; sh4_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 257 : /* fall through */
       case 273 : /* fall through */
       case 289 : /* fall through */
@@ -906,9 +875,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 353 : /* fall through */
       case 369 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2001)
-          { itype = SH4_INSN_MOVW1_COMPACT; sh4_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVW1_COMPACT; sh4_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 258 : /* fall through */
       case 274 : /* fall through */
       case 290 : /* fall through */
@@ -918,9 +885,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 354 : /* fall through */
       case 370 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2002)
-          { itype = SH4_INSN_MOVL1_COMPACT; sh4_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVL1_COMPACT; sh4_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 260 : /* fall through */
       case 276 : /* fall through */
       case 292 : /* fall through */
@@ -930,9 +895,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 356 : /* fall through */
       case 372 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2004)
-          { itype = SH4_INSN_MOVB2_COMPACT; sh4_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVB2_COMPACT; sh4_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 261 : /* fall through */
       case 277 : /* fall through */
       case 293 : /* fall through */
@@ -942,9 +905,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 357 : /* fall through */
       case 373 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2005)
-          { itype = SH4_INSN_MOVW2_COMPACT; sh4_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVW2_COMPACT; sh4_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 262 : /* fall through */
       case 278 : /* fall through */
       case 294 : /* fall through */
@@ -954,9 +915,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 358 : /* fall through */
       case 374 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2006)
-          { itype = SH4_INSN_MOVL2_COMPACT; sh4_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVL2_COMPACT; sh4_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 263 : /* fall through */
       case 279 : /* fall through */
       case 295 : /* fall through */
@@ -966,9 +925,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 359 : /* fall through */
       case 375 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2007)
-          { itype = SH4_INSN_DIV0S_COMPACT; sh4_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_DIV0S_COMPACT; sh4_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 264 : /* fall through */
       case 280 : /* fall through */
       case 296 : /* fall through */
@@ -978,9 +935,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 360 : /* fall through */
       case 376 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2008)
-          { itype = SH4_INSN_TST_COMPACT; sh4_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_TST_COMPACT; sh4_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 265 : /* fall through */
       case 281 : /* fall through */
       case 297 : /* fall through */
@@ -990,9 +945,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 361 : /* fall through */
       case 377 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2009)
-          { itype = SH4_INSN_AND_COMPACT; sh4_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_AND_COMPACT; sh4_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 266 : /* fall through */
       case 282 : /* fall through */
       case 298 : /* fall through */
@@ -1002,9 +955,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 362 : /* fall through */
       case 378 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200a)
-          { itype = SH4_INSN_XOR_COMPACT; sh4_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_XOR_COMPACT; sh4_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 267 : /* fall through */
       case 283 : /* fall through */
       case 299 : /* fall through */
@@ -1014,9 +965,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 363 : /* fall through */
       case 379 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200b)
-          { itype = SH4_INSN_OR_COMPACT; sh4_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_OR_COMPACT; sh4_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 268 : /* fall through */
       case 284 : /* fall through */
       case 300 : /* fall through */
@@ -1026,9 +975,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 364 : /* fall through */
       case 380 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200c)
-          { itype = SH4_INSN_CMPSTR_COMPACT; sh4_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_CMPSTR_COMPACT; sh4_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 269 : /* fall through */
       case 285 : /* fall through */
       case 301 : /* fall through */
@@ -1038,9 +985,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 365 : /* fall through */
       case 381 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200d)
-          { itype = SH4_INSN_XTRCT_COMPACT; sh4_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_XTRCT_COMPACT; sh4_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 270 : /* fall through */
       case 286 : /* fall through */
       case 302 : /* fall through */
@@ -1050,9 +995,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 366 : /* fall through */
       case 382 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200e)
-          { itype = SH4_INSN_MULUW_COMPACT; sh4_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MULUW_COMPACT; sh4_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 271 : /* fall through */
       case 287 : /* fall through */
       case 303 : /* fall through */
@@ -1062,9 +1005,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 367 : /* fall through */
       case 383 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200f)
-          { itype = SH4_INSN_MULSW_COMPACT; sh4_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MULSW_COMPACT; sh4_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 384 : /* fall through */
       case 400 : /* fall through */
       case 416 : /* fall through */
@@ -1074,9 +1015,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 480 : /* fall through */
       case 496 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3000)
-          { itype = SH4_INSN_CMPEQ_COMPACT; sh4_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_CMPEQ_COMPACT; sh4_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 385 : /* fall through */
       case 417 : /* fall through */
       case 449 : /* fall through */
@@ -1113,9 +1052,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 482 : /* fall through */
       case 498 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3002)
-          { itype = SH4_INSN_CMPHS_COMPACT; sh4_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_CMPHS_COMPACT; sh4_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 387 : /* fall through */
       case 403 : /* fall through */
       case 419 : /* fall through */
@@ -1125,9 +1062,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 483 : /* fall through */
       case 499 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3003)
-          { itype = SH4_INSN_CMPGE_COMPACT; sh4_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_CMPGE_COMPACT; sh4_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 388 : /* fall through */
       case 404 : /* fall through */
       case 420 : /* fall through */
@@ -1137,9 +1072,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 484 : /* fall through */
       case 500 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3004)
-          { itype = SH4_INSN_DIV1_COMPACT; sh4_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_DIV1_COMPACT; sh4_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 389 : /* fall through */
       case 405 : /* fall through */
       case 421 : /* fall through */
@@ -1149,9 +1082,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 485 : /* fall through */
       case 501 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3005)
-          { itype = SH4_INSN_DMULUL_COMPACT; sh4_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_DMULUL_COMPACT; sh4_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 390 : /* fall through */
       case 406 : /* fall through */
       case 422 : /* fall through */
@@ -1161,9 +1092,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 486 : /* fall through */
       case 502 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3006)
-          { itype = SH4_INSN_CMPHI_COMPACT; sh4_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_CMPHI_COMPACT; sh4_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 391 : /* fall through */
       case 407 : /* fall through */
       case 423 : /* fall through */
@@ -1173,9 +1102,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 487 : /* fall through */
       case 503 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3007)
-          { itype = SH4_INSN_CMPGT_COMPACT; sh4_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_CMPGT_COMPACT; sh4_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 392 : /* fall through */
       case 408 : /* fall through */
       case 424 : /* fall through */
@@ -1185,9 +1112,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 488 : /* fall through */
       case 504 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3008)
-          { itype = SH4_INSN_SUB_COMPACT; sh4_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_SUB_COMPACT; sh4_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 394 : /* fall through */
       case 410 : /* fall through */
       case 426 : /* fall through */
@@ -1197,9 +1122,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 490 : /* fall through */
       case 506 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300a)
-          { itype = SH4_INSN_SUBC_COMPACT; sh4_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_SUBC_COMPACT; sh4_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 395 : /* fall through */
       case 411 : /* fall through */
       case 427 : /* fall through */
@@ -1209,9 +1132,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 491 : /* fall through */
       case 507 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300b)
-          { itype = SH4_INSN_SUBV_COMPACT; sh4_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_SUBV_COMPACT; sh4_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 396 : /* fall through */
       case 412 : /* fall through */
       case 428 : /* fall through */
@@ -1221,9 +1142,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 492 : /* fall through */
       case 508 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300c)
-          { itype = SH4_INSN_ADD_COMPACT; sh4_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_ADD_COMPACT; sh4_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 397 : /* fall through */
       case 413 : /* fall through */
       case 429 : /* fall through */
@@ -1233,9 +1152,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 493 : /* fall through */
       case 509 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300d)
-          { itype = SH4_INSN_DMULSL_COMPACT; sh4_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_DMULSL_COMPACT; sh4_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 398 : /* fall through */
       case 414 : /* fall through */
       case 430 : /* fall through */
@@ -1245,9 +1162,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 494 : /* fall through */
       case 510 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300e)
-          { itype = SH4_INSN_ADDC_COMPACT; sh4_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_ADDC_COMPACT; sh4_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 399 : /* fall through */
       case 415 : /* fall through */
       case 431 : /* fall through */
@@ -1257,9 +1172,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 495 : /* fall through */
       case 511 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300f)
-          { itype = SH4_INSN_ADDV_COMPACT; sh4_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_ADDV_COMPACT; sh4_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 401 : /* fall through */
       case 433 : /* fall through */
       case 465 : /* fall through */
@@ -1290,14 +1203,10 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x4000)
-              { itype = SH4_INSN_SHLL_COMPACT; sh4_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_SHLL_COMPACT; sh4_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x4080)
-              { itype = SH4_INSN_MULR_COMPACT; sh4_extract_sfmt_divu_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_MULR_COMPACT; sh4_extract_sfmt_divu_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1318,14 +1227,10 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x4004)
-              { itype = SH4_INSN_ROTL_COMPACT; sh4_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_ROTL_COMPACT; sh4_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x4084)
-              { itype = SH4_INSN_DIVU_COMPACT; sh4_extract_sfmt_divu_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_DIVU_COMPACT; sh4_extract_sfmt_divu_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1368,9 +1273,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 620 : /* fall through */
       case 636 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400c)
-          { itype = SH4_INSN_SHAD_COMPACT; sh4_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_SHAD_COMPACT; sh4_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 525 : /* fall through */
       case 541 : /* fall through */
       case 557 : /* fall through */
@@ -1380,9 +1283,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 621 : /* fall through */
       case 637 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400d)
-          { itype = SH4_INSN_SHLD_COMPACT; sh4_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_SHLD_COMPACT; sh4_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 526 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x400e)
@@ -1397,9 +1298,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 623 : /* fall through */
       case 639 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400f)
-          { itype = SH4_INSN_MACW_COMPACT; sh4_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MACW_COMPACT; sh4_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 528 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x4010)
@@ -1684,9 +1583,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 766 : /* fall through */
       case 767 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x5000)
-          { itype = SH4_INSN_MOVL11_COMPACT; sh4_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVL11_COMPACT; sh4_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 768 : /* fall through */
       case 784 : /* fall through */
       case 800 : /* fall through */
@@ -1696,9 +1593,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 864 : /* fall through */
       case 880 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6000)
-          { itype = SH4_INSN_MOVB6_COMPACT; sh4_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVB6_COMPACT; sh4_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 769 : /* fall through */
       case 785 : /* fall through */
       case 801 : /* fall through */
@@ -1708,9 +1603,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 865 : /* fall through */
       case 881 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6001)
-          { itype = SH4_INSN_MOVW6_COMPACT; sh4_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVW6_COMPACT; sh4_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 770 : /* fall through */
       case 786 : /* fall through */
       case 802 : /* fall through */
@@ -1720,9 +1613,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 866 : /* fall through */
       case 882 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6002)
-          { itype = SH4_INSN_MOVL6_COMPACT; sh4_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVL6_COMPACT; sh4_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 771 : /* fall through */
       case 787 : /* fall through */
       case 803 : /* fall through */
@@ -1732,9 +1623,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 867 : /* fall through */
       case 883 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6003)
-          { itype = SH4_INSN_MOV_COMPACT; sh4_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOV_COMPACT; sh4_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 772 : /* fall through */
       case 788 : /* fall through */
       case 804 : /* fall through */
@@ -1744,9 +1633,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 868 : /* fall through */
       case 884 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6004)
-          { itype = SH4_INSN_MOVB7_COMPACT; sh4_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVB7_COMPACT; sh4_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 773 : /* fall through */
       case 789 : /* fall through */
       case 805 : /* fall through */
@@ -1756,9 +1643,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 869 : /* fall through */
       case 885 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6005)
-          { itype = SH4_INSN_MOVW7_COMPACT; sh4_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVW7_COMPACT; sh4_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 774 : /* fall through */
       case 790 : /* fall through */
       case 806 : /* fall through */
@@ -1768,9 +1653,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 870 : /* fall through */
       case 886 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6006)
-          { itype = SH4_INSN_MOVL7_COMPACT; sh4_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVL7_COMPACT; sh4_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 775 : /* fall through */
       case 791 : /* fall through */
       case 807 : /* fall through */
@@ -1780,9 +1663,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 871 : /* fall through */
       case 887 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6007)
-          { itype = SH4_INSN_NOT_COMPACT; sh4_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_NOT_COMPACT; sh4_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 776 : /* fall through */
       case 792 : /* fall through */
       case 808 : /* fall through */
@@ -1792,9 +1673,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 872 : /* fall through */
       case 888 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6008)
-          { itype = SH4_INSN_SWAPB_COMPACT; sh4_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_SWAPB_COMPACT; sh4_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 777 : /* fall through */
       case 793 : /* fall through */
       case 809 : /* fall through */
@@ -1804,9 +1683,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 873 : /* fall through */
       case 889 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6009)
-          { itype = SH4_INSN_SWAPW_COMPACT; sh4_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_SWAPW_COMPACT; sh4_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 778 : /* fall through */
       case 794 : /* fall through */
       case 810 : /* fall through */
@@ -1816,9 +1693,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 874 : /* fall through */
       case 890 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600a)
-          { itype = SH4_INSN_NEGC_COMPACT; sh4_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_NEGC_COMPACT; sh4_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 779 : /* fall through */
       case 795 : /* fall through */
       case 811 : /* fall through */
@@ -1828,9 +1703,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 875 : /* fall through */
       case 891 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600b)
-          { itype = SH4_INSN_NEG_COMPACT; sh4_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_NEG_COMPACT; sh4_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 780 : /* fall through */
       case 796 : /* fall through */
       case 812 : /* fall through */
@@ -1840,9 +1713,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 876 : /* fall through */
       case 892 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600c)
-          { itype = SH4_INSN_EXTUB_COMPACT; sh4_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_EXTUB_COMPACT; sh4_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 781 : /* fall through */
       case 797 : /* fall through */
       case 813 : /* fall through */
@@ -1852,9 +1723,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 877 : /* fall through */
       case 893 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600d)
-          { itype = SH4_INSN_EXTUW_COMPACT; sh4_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_EXTUW_COMPACT; sh4_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 782 : /* fall through */
       case 798 : /* fall through */
       case 814 : /* fall through */
@@ -1864,9 +1733,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 878 : /* fall through */
       case 894 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600e)
-          { itype = SH4_INSN_EXTSB_COMPACT; sh4_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_EXTSB_COMPACT; sh4_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 783 : /* fall through */
       case 799 : /* fall through */
       case 815 : /* fall through */
@@ -1876,9 +1743,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 879 : /* fall through */
       case 895 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600f)
-          { itype = SH4_INSN_EXTSW_COMPACT; sh4_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_EXTSW_COMPACT; sh4_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 896 : /* fall through */
       case 897 : /* fall through */
       case 898 : /* fall through */
@@ -2008,9 +1873,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 1022 : /* fall through */
       case 1023 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x7000)
-          { itype = SH4_INSN_ADDI_COMPACT; sh4_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_ADDI_COMPACT; sh4_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1024 : /* fall through */
       case 1025 : /* fall through */
       case 1026 : /* fall through */
@@ -2145,49 +2008,31 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8000)
-              { itype = SH4_INSN_MOVB5_COMPACT; sh4_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_MOVB5_COMPACT; sh4_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8100)
-              { itype = SH4_INSN_MOVW5_COMPACT; sh4_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_MOVW5_COMPACT; sh4_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8400)
-              { itype = SH4_INSN_MOVB10_COMPACT; sh4_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_MOVB10_COMPACT; sh4_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8500)
-              { itype = SH4_INSN_MOVW11_COMPACT; sh4_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_MOVW11_COMPACT; sh4_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8800)
-              { itype = SH4_INSN_CMPEQI_COMPACT; sh4_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_CMPEQI_COMPACT; sh4_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8900)
-              { itype = SH4_INSN_BT_COMPACT; sh4_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_BT_COMPACT; sh4_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8b00)
-              { itype = SH4_INSN_BF_COMPACT; sh4_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_BF_COMPACT; sh4_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8d00)
-              { itype = SH4_INSN_BTS_COMPACT; sh4_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_BTS_COMPACT; sh4_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8f00)
-              { itype = SH4_INSN_BFS_COMPACT; sh4_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_BFS_COMPACT; sh4_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -2320,9 +2165,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 1278 : /* fall through */
       case 1279 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x9000)
-          { itype = SH4_INSN_MOVW10_COMPACT; sh4_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVW10_COMPACT; sh4_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1280 : /* fall through */
       case 1281 : /* fall through */
       case 1282 : /* fall through */
@@ -2452,9 +2295,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 1406 : /* fall through */
       case 1407 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xa000)
-          { itype = SH4_INSN_BRA_COMPACT; sh4_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_BRA_COMPACT; sh4_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1408 : /* fall through */
       case 1409 : /* fall through */
       case 1410 : /* fall through */
@@ -2584,9 +2425,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 1534 : /* fall through */
       case 1535 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xb000)
-          { itype = SH4_INSN_BSR_COMPACT; sh4_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_BSR_COMPACT; sh4_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1536 : /* fall through */
       case 1537 : /* fall through */
       case 1538 : /* fall through */
@@ -2721,84 +2560,52 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc000)
-              { itype = SH4_INSN_MOVB4_COMPACT; sh4_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_MOVB4_COMPACT; sh4_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc100)
-              { itype = SH4_INSN_MOVW4_COMPACT; sh4_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_MOVW4_COMPACT; sh4_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc200)
-              { itype = SH4_INSN_MOVL4_COMPACT; sh4_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_MOVL4_COMPACT; sh4_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc300)
-              { itype = SH4_INSN_TRAPA_COMPACT; sh4_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_TRAPA_COMPACT; sh4_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc400)
-              { itype = SH4_INSN_MOVB9_COMPACT; sh4_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_MOVB9_COMPACT; sh4_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc500)
-              { itype = SH4_INSN_MOVW9_COMPACT; sh4_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_MOVW9_COMPACT; sh4_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 6 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc600)
-              { itype = SH4_INSN_MOVL9_COMPACT; sh4_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_MOVL9_COMPACT; sh4_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 7 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc700)
-              { itype = SH4_INSN_MOVA_COMPACT; sh4_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_MOVA_COMPACT; sh4_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc800)
-              { itype = SH4_INSN_TSTI_COMPACT; sh4_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_TSTI_COMPACT; sh4_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc900)
-              { itype = SH4_INSN_ANDI_COMPACT; sh4_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_ANDI_COMPACT; sh4_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 10 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xca00)
-              { itype = SH4_INSN_XORI_COMPACT; sh4_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_XORI_COMPACT; sh4_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcb00)
-              { itype = SH4_INSN_ORI_COMPACT; sh4_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_ORI_COMPACT; sh4_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 12 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcc00)
-              { itype = SH4_INSN_TSTB_COMPACT; sh4_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_TSTB_COMPACT; sh4_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcd00)
-              { itype = SH4_INSN_ANDB_COMPACT; sh4_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_ANDB_COMPACT; sh4_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 14 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xce00)
-              { itype = SH4_INSN_XORB_COMPACT; sh4_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_XORB_COMPACT; sh4_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcf00)
-              { itype = SH4_INSN_ORB_COMPACT; sh4_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_ORB_COMPACT; sh4_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -2931,9 +2738,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 1790 : /* fall through */
       case 1791 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xd000)
-          { itype = SH4_INSN_MOVL10_COMPACT; sh4_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVL10_COMPACT; sh4_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1792 : /* fall through */
       case 1793 : /* fall through */
       case 1794 : /* fall through */
@@ -3063,9 +2868,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 1918 : /* fall through */
       case 1919 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xe000)
-          { itype = SH4_INSN_MOVI_COMPACT; sh4_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_MOVI_COMPACT; sh4_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1920 : /* fall through */
       case 1936 : /* fall through */
       case 1952 : /* fall through */
@@ -3075,9 +2878,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 2016 : /* fall through */
       case 2032 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf000)
-          { itype = SH4_INSN_FADD_COMPACT; sh4_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_FADD_COMPACT; sh4_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1921 : /* fall through */
       case 1937 : /* fall through */
       case 1953 : /* fall through */
@@ -3087,9 +2888,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 2017 : /* fall through */
       case 2033 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf001)
-          { itype = SH4_INSN_FSUB_COMPACT; sh4_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_FSUB_COMPACT; sh4_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1922 : /* fall through */
       case 1938 : /* fall through */
       case 1954 : /* fall through */
@@ -3099,9 +2898,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 2018 : /* fall through */
       case 2034 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf002)
-          { itype = SH4_INSN_FMUL_COMPACT; sh4_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_FMUL_COMPACT; sh4_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1923 : /* fall through */
       case 1939 : /* fall through */
       case 1955 : /* fall through */
@@ -3111,9 +2908,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 2019 : /* fall through */
       case 2035 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf003)
-          { itype = SH4_INSN_FDIV_COMPACT; sh4_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_FDIV_COMPACT; sh4_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1924 : /* fall through */
       case 1940 : /* fall through */
       case 1956 : /* fall through */
@@ -3123,9 +2918,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 2020 : /* fall through */
       case 2036 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf004)
-          { itype = SH4_INSN_FCMPEQ_COMPACT; sh4_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_FCMPEQ_COMPACT; sh4_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1925 : /* fall through */
       case 1941 : /* fall through */
       case 1957 : /* fall through */
@@ -3135,9 +2928,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 2021 : /* fall through */
       case 2037 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf005)
-          { itype = SH4_INSN_FCMPGT_COMPACT; sh4_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_FCMPGT_COMPACT; sh4_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1926 : /* fall through */
       case 1942 : /* fall through */
       case 1958 : /* fall through */
@@ -3147,9 +2938,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 2022 : /* fall through */
       case 2038 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf006)
-          { itype = SH4_INSN_FMOV4_COMPACT; sh4_extract_sfmt_fmov4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_FMOV4_COMPACT; sh4_extract_sfmt_fmov4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1927 : /* fall through */
       case 1943 : /* fall through */
       case 1959 : /* fall through */
@@ -3159,9 +2948,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 2023 : /* fall through */
       case 2039 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf007)
-          { itype = SH4_INSN_FMOV7_COMPACT; sh4_extract_sfmt_fmov7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_FMOV7_COMPACT; sh4_extract_sfmt_fmov7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1928 : /* fall through */
       case 1944 : /* fall through */
       case 1960 : /* fall through */
@@ -3171,9 +2958,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 2024 : /* fall through */
       case 2040 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf008)
-          { itype = SH4_INSN_FMOV2_COMPACT; sh4_extract_sfmt_fmov2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_FMOV2_COMPACT; sh4_extract_sfmt_fmov2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1929 : /* fall through */
       case 1945 : /* fall through */
       case 1961 : /* fall through */
@@ -3183,9 +2968,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 2025 : /* fall through */
       case 2041 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf009)
-          { itype = SH4_INSN_FMOV3_COMPACT; sh4_extract_sfmt_fmov3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_FMOV3_COMPACT; sh4_extract_sfmt_fmov3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1930 : /* fall through */
       case 1946 : /* fall through */
       case 1962 : /* fall through */
@@ -3195,9 +2978,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 2026 : /* fall through */
       case 2042 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00a)
-          { itype = SH4_INSN_FMOV5_COMPACT; sh4_extract_sfmt_fmov5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_FMOV5_COMPACT; sh4_extract_sfmt_fmov5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1931 : /* fall through */
       case 1947 : /* fall through */
       case 1963 : /* fall through */
@@ -3207,9 +2988,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 2027 : /* fall through */
       case 2043 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00b)
-          { itype = SH4_INSN_FMOV6_COMPACT; sh4_extract_sfmt_fmov6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_FMOV6_COMPACT; sh4_extract_sfmt_fmov6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1932 : /* fall through */
       case 1948 : /* fall through */
       case 1964 : /* fall through */
@@ -3219,9 +2998,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 2028 : /* fall through */
       case 2044 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00c)
-          { itype = SH4_INSN_FMOV1_COMPACT; sh4_extract_sfmt_fmov1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_FMOV1_COMPACT; sh4_extract_sfmt_fmov1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1933 :
         {
           unsigned int val = (((insn >> 23) & (1 << 0)));
@@ -3229,14 +3006,10 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf00d)
-              { itype = SH4_INSN_FSTS_COMPACT; sh4_extract_sfmt_fsts_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_FSTS_COMPACT; sh4_extract_sfmt_fsts_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf08d)
-              { itype = SH4_INSN_FLDI0_COMPACT; sh4_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_FLDI0_COMPACT; sh4_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -3249,9 +3022,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
       case 2030 : /* fall through */
       case 2046 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00e)
-          { itype = SH4_INSN_FMAC_COMPACT; sh4_extract_sfmt_fmac_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_INSN_FMAC_COMPACT; sh4_extract_sfmt_fmac_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1949 :
         {
           unsigned int val = (((insn >> 23) & (1 << 0)));
@@ -3259,14 +3030,10 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf01d)
-              { itype = SH4_INSN_FLDS_COMPACT; sh4_extract_sfmt_flds_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_FLDS_COMPACT; sh4_extract_sfmt_flds_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf09d)
-              { itype = SH4_INSN_FLDI1_COMPACT; sh4_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_FLDI1_COMPACT; sh4_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -3277,9 +3044,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf02d)
-              { itype = SH4_INSN_FLOAT_COMPACT; sh4_extract_sfmt_float_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_FLOAT_COMPACT; sh4_extract_sfmt_float_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
             if ((entire_insn & 0xf1ff) == 0xf0ad)
@@ -3295,9 +3060,7 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf03d)
-              { itype = SH4_INSN_FTRC_COMPACT; sh4_extract_sfmt_ftrc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_FTRC_COMPACT; sh4_extract_sfmt_ftrc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
             if ((entire_insn & 0xf1ff) == 0xf0bd)
@@ -3323,14 +3086,10 @@ sh4_scache::decode (sh4_cpu* current_cpu, PCADDR pc, sh4_insn_word base_insn, sh
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf06d)
-              { itype = SH4_INSN_FSQRT_COMPACT; sh4_extract_sfmt_fabs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_FSQRT_COMPACT; sh4_extract_sfmt_fabs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf0ed)
-              { itype = SH4_INSN_FIPR_COMPACT; sh4_extract_sfmt_fipr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_INSN_FIPR_COMPACT; sh4_extract_sfmt_fipr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4_INSN_X_INVALID; sh4_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
index 85aaf26..86d1a6a 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index fd6cfe3..2df1d78 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index a651967..26e2c71 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 4c4cefb..aa1900f 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index ab95116..c5b6c0b 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -103,7 +103,7 @@ current_cpu->hardware.h_pc = ANDDI (newval, INVDI (1));
 }
  }
 
-  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (0) : (current_cpu->hardware.h_gr[regno])); }
+  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (MAKEDI (0, 0)) : (current_cpu->hardware.h_gr[regno])); }
   inline void h_gr_set (UINT regno, DI newval) { if (((regno) != (63))) {
 current_cpu->hardware.h_gr[regno] = newval;
 } else {
index c858ae3..ba1ed78 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -425,10 +425,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 64 : /* fall through */
       case 80 : /* fall through */
       case 96 : /* fall through */
-      case 112 :
-        if ((entire_insn & 0xf00f0000) == 0x0)
-          { itype = SH4_NOFPU_INSN_MOVI20_COMPACT; sh4_nofpu_extract_sfmt_movi20_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 112 : itype = SH4_NOFPU_INSN_MOVI20_COMPACT; sh4_nofpu_extract_sfmt_movi20_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 3 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x3)
@@ -443,9 +440,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 100 : /* fall through */
       case 116 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x4)
-          { itype = SH4_NOFPU_INSN_MOVB3_COMPACT; sh4_nofpu_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVB3_COMPACT; sh4_nofpu_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 5 : /* fall through */
       case 21 : /* fall through */
       case 37 : /* fall through */
@@ -455,9 +450,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 101 : /* fall through */
       case 117 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x5)
-          { itype = SH4_NOFPU_INSN_MOVW3_COMPACT; sh4_nofpu_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVW3_COMPACT; sh4_nofpu_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 6 : /* fall through */
       case 22 : /* fall through */
       case 38 : /* fall through */
@@ -467,9 +460,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 102 : /* fall through */
       case 118 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6)
-          { itype = SH4_NOFPU_INSN_MOVL3_COMPACT; sh4_nofpu_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVL3_COMPACT; sh4_nofpu_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 7 : /* fall through */
       case 23 : /* fall through */
       case 39 : /* fall through */
@@ -479,9 +470,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 103 : /* fall through */
       case 119 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x7)
-          { itype = SH4_NOFPU_INSN_MULL_COMPACT; sh4_nofpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MULL_COMPACT; sh4_nofpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 8 :
         {
           unsigned int val = (((insn >> 22) & (1 << 0)));
@@ -524,9 +513,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 108 : /* fall through */
       case 124 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xc)
-          { itype = SH4_NOFPU_INSN_MOVB8_COMPACT; sh4_nofpu_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVB8_COMPACT; sh4_nofpu_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 13 : /* fall through */
       case 29 : /* fall through */
       case 45 : /* fall through */
@@ -536,9 +523,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 109 : /* fall through */
       case 125 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xd)
-          { itype = SH4_NOFPU_INSN_MOVW8_COMPACT; sh4_nofpu_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVW8_COMPACT; sh4_nofpu_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 14 : /* fall through */
       case 30 : /* fall through */
       case 46 : /* fall through */
@@ -548,9 +533,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 110 : /* fall through */
       case 126 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xe)
-          { itype = SH4_NOFPU_INSN_MOVL8_COMPACT; sh4_nofpu_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVL8_COMPACT; sh4_nofpu_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 15 : /* fall through */
       case 31 : /* fall through */
       case 47 : /* fall through */
@@ -560,9 +543,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 111 : /* fall through */
       case 127 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf)
-          { itype = SH4_NOFPU_INSN_MACL_COMPACT; sh4_nofpu_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MACL_COMPACT; sh4_nofpu_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 18 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x12)
@@ -628,14 +609,10 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x83)
-              { itype = SH4_NOFPU_INSN_PREF_COMPACT; sh4_nofpu_extract_sfmt_pref_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_PREF_COMPACT; sh4_nofpu_extract_sfmt_pref_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xc3)
-              { itype = SH4_NOFPU_INSN_MOVCAL_COMPACT; sh4_nofpu_extract_sfmt_movcal_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_MOVCAL_COMPACT; sh4_nofpu_extract_sfmt_movcal_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -783,9 +760,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 254 : /* fall through */
       case 255 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x1000)
-          { itype = SH4_NOFPU_INSN_MOVL5_COMPACT; sh4_nofpu_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVL5_COMPACT; sh4_nofpu_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 256 : /* fall through */
       case 272 : /* fall through */
       case 288 : /* fall through */
@@ -795,9 +770,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 352 : /* fall through */
       case 368 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2000)
-          { itype = SH4_NOFPU_INSN_MOVB1_COMPACT; sh4_nofpu_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVB1_COMPACT; sh4_nofpu_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 257 : /* fall through */
       case 273 : /* fall through */
       case 289 : /* fall through */
@@ -807,9 +780,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 353 : /* fall through */
       case 369 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2001)
-          { itype = SH4_NOFPU_INSN_MOVW1_COMPACT; sh4_nofpu_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVW1_COMPACT; sh4_nofpu_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 258 : /* fall through */
       case 274 : /* fall through */
       case 290 : /* fall through */
@@ -819,9 +790,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 354 : /* fall through */
       case 370 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2002)
-          { itype = SH4_NOFPU_INSN_MOVL1_COMPACT; sh4_nofpu_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVL1_COMPACT; sh4_nofpu_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 260 : /* fall through */
       case 276 : /* fall through */
       case 292 : /* fall through */
@@ -831,9 +800,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 356 : /* fall through */
       case 372 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2004)
-          { itype = SH4_NOFPU_INSN_MOVB2_COMPACT; sh4_nofpu_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVB2_COMPACT; sh4_nofpu_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 261 : /* fall through */
       case 277 : /* fall through */
       case 293 : /* fall through */
@@ -843,9 +810,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 357 : /* fall through */
       case 373 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2005)
-          { itype = SH4_NOFPU_INSN_MOVW2_COMPACT; sh4_nofpu_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVW2_COMPACT; sh4_nofpu_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 262 : /* fall through */
       case 278 : /* fall through */
       case 294 : /* fall through */
@@ -855,9 +820,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 358 : /* fall through */
       case 374 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2006)
-          { itype = SH4_NOFPU_INSN_MOVL2_COMPACT; sh4_nofpu_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVL2_COMPACT; sh4_nofpu_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 263 : /* fall through */
       case 279 : /* fall through */
       case 295 : /* fall through */
@@ -867,9 +830,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 359 : /* fall through */
       case 375 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2007)
-          { itype = SH4_NOFPU_INSN_DIV0S_COMPACT; sh4_nofpu_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_DIV0S_COMPACT; sh4_nofpu_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 264 : /* fall through */
       case 280 : /* fall through */
       case 296 : /* fall through */
@@ -879,9 +840,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 360 : /* fall through */
       case 376 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2008)
-          { itype = SH4_NOFPU_INSN_TST_COMPACT; sh4_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_TST_COMPACT; sh4_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 265 : /* fall through */
       case 281 : /* fall through */
       case 297 : /* fall through */
@@ -891,9 +850,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 361 : /* fall through */
       case 377 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2009)
-          { itype = SH4_NOFPU_INSN_AND_COMPACT; sh4_nofpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_AND_COMPACT; sh4_nofpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 266 : /* fall through */
       case 282 : /* fall through */
       case 298 : /* fall through */
@@ -903,9 +860,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 362 : /* fall through */
       case 378 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200a)
-          { itype = SH4_NOFPU_INSN_XOR_COMPACT; sh4_nofpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_XOR_COMPACT; sh4_nofpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 267 : /* fall through */
       case 283 : /* fall through */
       case 299 : /* fall through */
@@ -915,9 +870,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 363 : /* fall through */
       case 379 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200b)
-          { itype = SH4_NOFPU_INSN_OR_COMPACT; sh4_nofpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_OR_COMPACT; sh4_nofpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 268 : /* fall through */
       case 284 : /* fall through */
       case 300 : /* fall through */
@@ -927,9 +880,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 364 : /* fall through */
       case 380 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200c)
-          { itype = SH4_NOFPU_INSN_CMPSTR_COMPACT; sh4_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_CMPSTR_COMPACT; sh4_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 269 : /* fall through */
       case 285 : /* fall through */
       case 301 : /* fall through */
@@ -939,9 +890,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 365 : /* fall through */
       case 381 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200d)
-          { itype = SH4_NOFPU_INSN_XTRCT_COMPACT; sh4_nofpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_XTRCT_COMPACT; sh4_nofpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 270 : /* fall through */
       case 286 : /* fall through */
       case 302 : /* fall through */
@@ -951,9 +900,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 366 : /* fall through */
       case 382 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200e)
-          { itype = SH4_NOFPU_INSN_MULUW_COMPACT; sh4_nofpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MULUW_COMPACT; sh4_nofpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 271 : /* fall through */
       case 287 : /* fall through */
       case 303 : /* fall through */
@@ -963,9 +910,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 367 : /* fall through */
       case 383 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200f)
-          { itype = SH4_NOFPU_INSN_MULSW_COMPACT; sh4_nofpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MULSW_COMPACT; sh4_nofpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 384 : /* fall through */
       case 400 : /* fall through */
       case 416 : /* fall through */
@@ -975,9 +920,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 480 : /* fall through */
       case 496 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3000)
-          { itype = SH4_NOFPU_INSN_CMPEQ_COMPACT; sh4_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_CMPEQ_COMPACT; sh4_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 385 : /* fall through */
       case 401 : /* fall through */
       case 417 : /* fall through */
@@ -1010,9 +953,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 482 : /* fall through */
       case 498 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3002)
-          { itype = SH4_NOFPU_INSN_CMPHS_COMPACT; sh4_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_CMPHS_COMPACT; sh4_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 387 : /* fall through */
       case 403 : /* fall through */
       case 419 : /* fall through */
@@ -1022,9 +963,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 483 : /* fall through */
       case 499 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3003)
-          { itype = SH4_NOFPU_INSN_CMPGE_COMPACT; sh4_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_CMPGE_COMPACT; sh4_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 388 : /* fall through */
       case 404 : /* fall through */
       case 420 : /* fall through */
@@ -1034,9 +973,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 484 : /* fall through */
       case 500 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3004)
-          { itype = SH4_NOFPU_INSN_DIV1_COMPACT; sh4_nofpu_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_DIV1_COMPACT; sh4_nofpu_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 389 : /* fall through */
       case 405 : /* fall through */
       case 421 : /* fall through */
@@ -1046,9 +983,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 485 : /* fall through */
       case 501 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3005)
-          { itype = SH4_NOFPU_INSN_DMULUL_COMPACT; sh4_nofpu_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_DMULUL_COMPACT; sh4_nofpu_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 390 : /* fall through */
       case 406 : /* fall through */
       case 422 : /* fall through */
@@ -1058,9 +993,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 486 : /* fall through */
       case 502 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3006)
-          { itype = SH4_NOFPU_INSN_CMPHI_COMPACT; sh4_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_CMPHI_COMPACT; sh4_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 391 : /* fall through */
       case 407 : /* fall through */
       case 423 : /* fall through */
@@ -1070,9 +1003,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 487 : /* fall through */
       case 503 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3007)
-          { itype = SH4_NOFPU_INSN_CMPGT_COMPACT; sh4_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_CMPGT_COMPACT; sh4_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 392 : /* fall through */
       case 408 : /* fall through */
       case 424 : /* fall through */
@@ -1082,9 +1013,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 488 : /* fall through */
       case 504 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3008)
-          { itype = SH4_NOFPU_INSN_SUB_COMPACT; sh4_nofpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_SUB_COMPACT; sh4_nofpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 394 : /* fall through */
       case 410 : /* fall through */
       case 426 : /* fall through */
@@ -1094,9 +1023,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 490 : /* fall through */
       case 506 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300a)
-          { itype = SH4_NOFPU_INSN_SUBC_COMPACT; sh4_nofpu_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_SUBC_COMPACT; sh4_nofpu_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 395 : /* fall through */
       case 411 : /* fall through */
       case 427 : /* fall through */
@@ -1106,9 +1033,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 491 : /* fall through */
       case 507 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300b)
-          { itype = SH4_NOFPU_INSN_SUBV_COMPACT; sh4_nofpu_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_SUBV_COMPACT; sh4_nofpu_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 396 : /* fall through */
       case 412 : /* fall through */
       case 428 : /* fall through */
@@ -1118,9 +1043,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 492 : /* fall through */
       case 508 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300c)
-          { itype = SH4_NOFPU_INSN_ADD_COMPACT; sh4_nofpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_ADD_COMPACT; sh4_nofpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 397 : /* fall through */
       case 413 : /* fall through */
       case 429 : /* fall through */
@@ -1130,9 +1053,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 493 : /* fall through */
       case 509 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300d)
-          { itype = SH4_NOFPU_INSN_DMULSL_COMPACT; sh4_nofpu_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_DMULSL_COMPACT; sh4_nofpu_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 398 : /* fall through */
       case 414 : /* fall through */
       case 430 : /* fall through */
@@ -1142,9 +1063,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 494 : /* fall through */
       case 510 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300e)
-          { itype = SH4_NOFPU_INSN_ADDC_COMPACT; sh4_nofpu_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_ADDC_COMPACT; sh4_nofpu_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 399 : /* fall through */
       case 415 : /* fall through */
       case 431 : /* fall through */
@@ -1154,9 +1073,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 495 : /* fall through */
       case 511 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300f)
-          { itype = SH4_NOFPU_INSN_ADDV_COMPACT; sh4_nofpu_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_ADDV_COMPACT; sh4_nofpu_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 512 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x4000)
@@ -1216,9 +1133,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 620 : /* fall through */
       case 636 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400c)
-          { itype = SH4_NOFPU_INSN_SHAD_COMPACT; sh4_nofpu_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_SHAD_COMPACT; sh4_nofpu_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 525 : /* fall through */
       case 541 : /* fall through */
       case 557 : /* fall through */
@@ -1228,9 +1143,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 621 : /* fall through */
       case 637 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400d)
-          { itype = SH4_NOFPU_INSN_SHLD_COMPACT; sh4_nofpu_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_SHLD_COMPACT; sh4_nofpu_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 526 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x400e)
@@ -1245,9 +1158,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 623 : /* fall through */
       case 639 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400f)
-          { itype = SH4_NOFPU_INSN_MACW_COMPACT; sh4_nofpu_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MACW_COMPACT; sh4_nofpu_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 528 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x4010)
@@ -1512,9 +1423,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 766 : /* fall through */
       case 767 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x5000)
-          { itype = SH4_NOFPU_INSN_MOVL11_COMPACT; sh4_nofpu_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVL11_COMPACT; sh4_nofpu_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 768 : /* fall through */
       case 784 : /* fall through */
       case 800 : /* fall through */
@@ -1524,9 +1433,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 864 : /* fall through */
       case 880 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6000)
-          { itype = SH4_NOFPU_INSN_MOVB6_COMPACT; sh4_nofpu_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVB6_COMPACT; sh4_nofpu_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 769 : /* fall through */
       case 785 : /* fall through */
       case 801 : /* fall through */
@@ -1536,9 +1443,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 865 : /* fall through */
       case 881 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6001)
-          { itype = SH4_NOFPU_INSN_MOVW6_COMPACT; sh4_nofpu_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVW6_COMPACT; sh4_nofpu_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 770 : /* fall through */
       case 786 : /* fall through */
       case 802 : /* fall through */
@@ -1548,9 +1453,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 866 : /* fall through */
       case 882 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6002)
-          { itype = SH4_NOFPU_INSN_MOVL6_COMPACT; sh4_nofpu_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVL6_COMPACT; sh4_nofpu_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 771 : /* fall through */
       case 787 : /* fall through */
       case 803 : /* fall through */
@@ -1560,9 +1463,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 867 : /* fall through */
       case 883 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6003)
-          { itype = SH4_NOFPU_INSN_MOV_COMPACT; sh4_nofpu_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOV_COMPACT; sh4_nofpu_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 772 : /* fall through */
       case 788 : /* fall through */
       case 804 : /* fall through */
@@ -1572,9 +1473,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 868 : /* fall through */
       case 884 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6004)
-          { itype = SH4_NOFPU_INSN_MOVB7_COMPACT; sh4_nofpu_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVB7_COMPACT; sh4_nofpu_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 773 : /* fall through */
       case 789 : /* fall through */
       case 805 : /* fall through */
@@ -1584,9 +1483,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 869 : /* fall through */
       case 885 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6005)
-          { itype = SH4_NOFPU_INSN_MOVW7_COMPACT; sh4_nofpu_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVW7_COMPACT; sh4_nofpu_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 774 : /* fall through */
       case 790 : /* fall through */
       case 806 : /* fall through */
@@ -1596,9 +1493,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 870 : /* fall through */
       case 886 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6006)
-          { itype = SH4_NOFPU_INSN_MOVL7_COMPACT; sh4_nofpu_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVL7_COMPACT; sh4_nofpu_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 775 : /* fall through */
       case 791 : /* fall through */
       case 807 : /* fall through */
@@ -1608,9 +1503,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 871 : /* fall through */
       case 887 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6007)
-          { itype = SH4_NOFPU_INSN_NOT_COMPACT; sh4_nofpu_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_NOT_COMPACT; sh4_nofpu_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 776 : /* fall through */
       case 792 : /* fall through */
       case 808 : /* fall through */
@@ -1620,9 +1513,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 872 : /* fall through */
       case 888 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6008)
-          { itype = SH4_NOFPU_INSN_SWAPB_COMPACT; sh4_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_SWAPB_COMPACT; sh4_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 777 : /* fall through */
       case 793 : /* fall through */
       case 809 : /* fall through */
@@ -1632,9 +1523,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 873 : /* fall through */
       case 889 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6009)
-          { itype = SH4_NOFPU_INSN_SWAPW_COMPACT; sh4_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_SWAPW_COMPACT; sh4_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 778 : /* fall through */
       case 794 : /* fall through */
       case 810 : /* fall through */
@@ -1644,9 +1533,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 874 : /* fall through */
       case 890 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600a)
-          { itype = SH4_NOFPU_INSN_NEGC_COMPACT; sh4_nofpu_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_NEGC_COMPACT; sh4_nofpu_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 779 : /* fall through */
       case 795 : /* fall through */
       case 811 : /* fall through */
@@ -1656,9 +1543,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 875 : /* fall through */
       case 891 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600b)
-          { itype = SH4_NOFPU_INSN_NEG_COMPACT; sh4_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_NEG_COMPACT; sh4_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 780 : /* fall through */
       case 796 : /* fall through */
       case 812 : /* fall through */
@@ -1668,9 +1553,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 876 : /* fall through */
       case 892 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600c)
-          { itype = SH4_NOFPU_INSN_EXTUB_COMPACT; sh4_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_EXTUB_COMPACT; sh4_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 781 : /* fall through */
       case 797 : /* fall through */
       case 813 : /* fall through */
@@ -1680,9 +1563,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 877 : /* fall through */
       case 893 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600d)
-          { itype = SH4_NOFPU_INSN_EXTUW_COMPACT; sh4_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_EXTUW_COMPACT; sh4_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 782 : /* fall through */
       case 798 : /* fall through */
       case 814 : /* fall through */
@@ -1692,9 +1573,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 878 : /* fall through */
       case 894 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600e)
-          { itype = SH4_NOFPU_INSN_EXTSB_COMPACT; sh4_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_EXTSB_COMPACT; sh4_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 783 : /* fall through */
       case 799 : /* fall through */
       case 815 : /* fall through */
@@ -1704,9 +1583,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 879 : /* fall through */
       case 895 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600f)
-          { itype = SH4_NOFPU_INSN_EXTSW_COMPACT; sh4_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_EXTSW_COMPACT; sh4_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 896 : /* fall through */
       case 897 : /* fall through */
       case 898 : /* fall through */
@@ -1836,9 +1713,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 1022 : /* fall through */
       case 1023 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x7000)
-          { itype = SH4_NOFPU_INSN_ADDI_COMPACT; sh4_nofpu_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_ADDI_COMPACT; sh4_nofpu_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1024 : /* fall through */
       case 1025 : /* fall through */
       case 1026 : /* fall through */
@@ -1973,49 +1848,31 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8000)
-              { itype = SH4_NOFPU_INSN_MOVB5_COMPACT; sh4_nofpu_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_MOVB5_COMPACT; sh4_nofpu_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8100)
-              { itype = SH4_NOFPU_INSN_MOVW5_COMPACT; sh4_nofpu_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_MOVW5_COMPACT; sh4_nofpu_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8400)
-              { itype = SH4_NOFPU_INSN_MOVB10_COMPACT; sh4_nofpu_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_MOVB10_COMPACT; sh4_nofpu_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8500)
-              { itype = SH4_NOFPU_INSN_MOVW11_COMPACT; sh4_nofpu_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_MOVW11_COMPACT; sh4_nofpu_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8800)
-              { itype = SH4_NOFPU_INSN_CMPEQI_COMPACT; sh4_nofpu_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_CMPEQI_COMPACT; sh4_nofpu_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8900)
-              { itype = SH4_NOFPU_INSN_BT_COMPACT; sh4_nofpu_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_BT_COMPACT; sh4_nofpu_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8b00)
-              { itype = SH4_NOFPU_INSN_BF_COMPACT; sh4_nofpu_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_BF_COMPACT; sh4_nofpu_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8d00)
-              { itype = SH4_NOFPU_INSN_BTS_COMPACT; sh4_nofpu_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_BTS_COMPACT; sh4_nofpu_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8f00)
-              { itype = SH4_NOFPU_INSN_BFS_COMPACT; sh4_nofpu_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_BFS_COMPACT; sh4_nofpu_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -2148,9 +2005,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 1278 : /* fall through */
       case 1279 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x9000)
-          { itype = SH4_NOFPU_INSN_MOVW10_COMPACT; sh4_nofpu_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVW10_COMPACT; sh4_nofpu_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1280 : /* fall through */
       case 1281 : /* fall through */
       case 1282 : /* fall through */
@@ -2280,9 +2135,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 1406 : /* fall through */
       case 1407 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xa000)
-          { itype = SH4_NOFPU_INSN_BRA_COMPACT; sh4_nofpu_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_BRA_COMPACT; sh4_nofpu_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1408 : /* fall through */
       case 1409 : /* fall through */
       case 1410 : /* fall through */
@@ -2412,9 +2265,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 1534 : /* fall through */
       case 1535 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xb000)
-          { itype = SH4_NOFPU_INSN_BSR_COMPACT; sh4_nofpu_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_BSR_COMPACT; sh4_nofpu_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1536 : /* fall through */
       case 1537 : /* fall through */
       case 1538 : /* fall through */
@@ -2549,84 +2400,52 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc000)
-              { itype = SH4_NOFPU_INSN_MOVB4_COMPACT; sh4_nofpu_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_MOVB4_COMPACT; sh4_nofpu_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc100)
-              { itype = SH4_NOFPU_INSN_MOVW4_COMPACT; sh4_nofpu_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_MOVW4_COMPACT; sh4_nofpu_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc200)
-              { itype = SH4_NOFPU_INSN_MOVL4_COMPACT; sh4_nofpu_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_MOVL4_COMPACT; sh4_nofpu_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc300)
-              { itype = SH4_NOFPU_INSN_TRAPA_COMPACT; sh4_nofpu_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_TRAPA_COMPACT; sh4_nofpu_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc400)
-              { itype = SH4_NOFPU_INSN_MOVB9_COMPACT; sh4_nofpu_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_MOVB9_COMPACT; sh4_nofpu_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc500)
-              { itype = SH4_NOFPU_INSN_MOVW9_COMPACT; sh4_nofpu_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_MOVW9_COMPACT; sh4_nofpu_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 6 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc600)
-              { itype = SH4_NOFPU_INSN_MOVL9_COMPACT; sh4_nofpu_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_MOVL9_COMPACT; sh4_nofpu_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 7 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc700)
-              { itype = SH4_NOFPU_INSN_MOVA_COMPACT; sh4_nofpu_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_MOVA_COMPACT; sh4_nofpu_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc800)
-              { itype = SH4_NOFPU_INSN_TSTI_COMPACT; sh4_nofpu_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_TSTI_COMPACT; sh4_nofpu_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc900)
-              { itype = SH4_NOFPU_INSN_ANDI_COMPACT; sh4_nofpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_ANDI_COMPACT; sh4_nofpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 10 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xca00)
-              { itype = SH4_NOFPU_INSN_XORI_COMPACT; sh4_nofpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_XORI_COMPACT; sh4_nofpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcb00)
-              { itype = SH4_NOFPU_INSN_ORI_COMPACT; sh4_nofpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_ORI_COMPACT; sh4_nofpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 12 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcc00)
-              { itype = SH4_NOFPU_INSN_TSTB_COMPACT; sh4_nofpu_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_TSTB_COMPACT; sh4_nofpu_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcd00)
-              { itype = SH4_NOFPU_INSN_ANDB_COMPACT; sh4_nofpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_ANDB_COMPACT; sh4_nofpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 14 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xce00)
-              { itype = SH4_NOFPU_INSN_XORB_COMPACT; sh4_nofpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_XORB_COMPACT; sh4_nofpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcf00)
-              { itype = SH4_NOFPU_INSN_ORB_COMPACT; sh4_nofpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4_NOFPU_INSN_ORB_COMPACT; sh4_nofpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -2759,9 +2578,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 1790 : /* fall through */
       case 1791 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xd000)
-          { itype = SH4_NOFPU_INSN_MOVL10_COMPACT; sh4_nofpu_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVL10_COMPACT; sh4_nofpu_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1792 : /* fall through */
       case 1793 : /* fall through */
       case 1794 : /* fall through */
@@ -2891,9 +2708,7 @@ sh4_nofpu_scache::decode (sh4_nofpu_cpu* current_cpu, PCADDR pc, sh4_nofpu_insn_
       case 1918 : /* fall through */
       case 1919 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xe000)
-          { itype = SH4_NOFPU_INSN_MOVI_COMPACT; sh4_nofpu_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4_NOFPU_INSN_X_INVALID; sh4_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4_NOFPU_INSN_MOVI_COMPACT; sh4_nofpu_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 2045 :
         {
           unsigned int val = (((insn >> 27) & (1 << 0)));
index c2a25c7..bc6ff29 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index f102cf7..99116ab 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 1014835..942688c 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 0bc857d..aef4aca 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index a5b60ff..6d3e2c2 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 01d63de..8c51791 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 9d845a5..4ada95f 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 0e0fcaa..83f5021 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 2be49a9..9fea897 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -115,7 +115,7 @@ current_cpu->hardware.h_pc = ANDDI (newval, INVDI (1));
 }
  }
 
-  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (0) : (current_cpu->hardware.h_gr[regno])); }
+  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (MAKEDI (0, 0)) : (current_cpu->hardware.h_gr[regno])); }
   inline void h_gr_set (UINT regno, DI newval) { if (((regno) != (63))) {
 current_cpu->hardware.h_gr[regno] = newval;
 } else {
index 25215a0..3d7d5d9 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -504,14 +504,10 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x3)
-              { itype = SH4A_INSN_BSRF_COMPACT; sh4a_extract_sfmt_bsrf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_BSRF_COMPACT; sh4a_extract_sfmt_bsrf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x83)
-              { itype = SH4A_INSN_PREF_COMPACT; sh4a_extract_sfmt_pref_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_PREF_COMPACT; sh4a_extract_sfmt_pref_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -524,9 +520,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 100 : /* fall through */
       case 116 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x4)
-          { itype = SH4A_INSN_MOVB3_COMPACT; sh4a_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVB3_COMPACT; sh4a_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 5 : /* fall through */
       case 21 : /* fall through */
       case 37 : /* fall through */
@@ -536,9 +530,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 101 : /* fall through */
       case 117 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x5)
-          { itype = SH4A_INSN_MOVW3_COMPACT; sh4a_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVW3_COMPACT; sh4a_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 6 : /* fall through */
       case 22 : /* fall through */
       case 38 : /* fall through */
@@ -548,9 +540,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 102 : /* fall through */
       case 118 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6)
-          { itype = SH4A_INSN_MOVL3_COMPACT; sh4a_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVL3_COMPACT; sh4a_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 7 : /* fall through */
       case 23 : /* fall through */
       case 39 : /* fall through */
@@ -560,9 +550,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 103 : /* fall through */
       case 119 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x7)
-          { itype = SH4A_INSN_MULL_COMPACT; sh4a_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MULL_COMPACT; sh4a_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 8 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xffff) == 0x8)
@@ -592,9 +580,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 108 : /* fall through */
       case 124 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xc)
-          { itype = SH4A_INSN_MOVB8_COMPACT; sh4a_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVB8_COMPACT; sh4a_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 13 : /* fall through */
       case 29 : /* fall through */
       case 45 : /* fall through */
@@ -604,9 +590,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 109 : /* fall through */
       case 125 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xd)
-          { itype = SH4A_INSN_MOVW8_COMPACT; sh4a_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVW8_COMPACT; sh4a_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 14 : /* fall through */
       case 30 : /* fall through */
       case 46 : /* fall through */
@@ -616,9 +600,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 110 : /* fall through */
       case 126 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xe)
-          { itype = SH4A_INSN_MOVL8_COMPACT; sh4a_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVL8_COMPACT; sh4a_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 15 : /* fall through */
       case 31 : /* fall through */
       case 47 : /* fall through */
@@ -628,9 +610,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 111 : /* fall through */
       case 127 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf)
-          { itype = SH4A_INSN_MACL_COMPACT; sh4a_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MACL_COMPACT; sh4a_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 18 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x12)
@@ -668,14 +648,10 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x23)
-              { itype = SH4A_INSN_BRAF_COMPACT; sh4a_extract_sfmt_braf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_BRAF_COMPACT; sh4a_extract_sfmt_braf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xa3)
-              { itype = SH4A_INSN_OCBP_COMPACT; sh4a_extract_sfmt_movcol_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_OCBP_COMPACT; sh4a_extract_sfmt_movcol_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -858,9 +834,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 254 : /* fall through */
       case 255 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x1000)
-          { itype = SH4A_INSN_MOVL5_COMPACT; sh4a_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVL5_COMPACT; sh4a_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 256 : /* fall through */
       case 272 : /* fall through */
       case 288 : /* fall through */
@@ -870,9 +844,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 352 : /* fall through */
       case 368 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2000)
-          { itype = SH4A_INSN_MOVB1_COMPACT; sh4a_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVB1_COMPACT; sh4a_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 257 : /* fall through */
       case 273 : /* fall through */
       case 289 : /* fall through */
@@ -882,9 +854,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 353 : /* fall through */
       case 369 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2001)
-          { itype = SH4A_INSN_MOVW1_COMPACT; sh4a_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVW1_COMPACT; sh4a_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 258 : /* fall through */
       case 274 : /* fall through */
       case 290 : /* fall through */
@@ -894,9 +864,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 354 : /* fall through */
       case 370 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2002)
-          { itype = SH4A_INSN_MOVL1_COMPACT; sh4a_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVL1_COMPACT; sh4a_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 260 : /* fall through */
       case 276 : /* fall through */
       case 292 : /* fall through */
@@ -906,9 +874,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 356 : /* fall through */
       case 372 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2004)
-          { itype = SH4A_INSN_MOVB2_COMPACT; sh4a_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVB2_COMPACT; sh4a_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 261 : /* fall through */
       case 277 : /* fall through */
       case 293 : /* fall through */
@@ -918,9 +884,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 357 : /* fall through */
       case 373 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2005)
-          { itype = SH4A_INSN_MOVW2_COMPACT; sh4a_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVW2_COMPACT; sh4a_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 262 : /* fall through */
       case 278 : /* fall through */
       case 294 : /* fall through */
@@ -930,9 +894,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 358 : /* fall through */
       case 374 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2006)
-          { itype = SH4A_INSN_MOVL2_COMPACT; sh4a_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVL2_COMPACT; sh4a_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 263 : /* fall through */
       case 279 : /* fall through */
       case 295 : /* fall through */
@@ -942,9 +904,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 359 : /* fall through */
       case 375 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2007)
-          { itype = SH4A_INSN_DIV0S_COMPACT; sh4a_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_DIV0S_COMPACT; sh4a_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 264 : /* fall through */
       case 280 : /* fall through */
       case 296 : /* fall through */
@@ -954,9 +914,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 360 : /* fall through */
       case 376 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2008)
-          { itype = SH4A_INSN_TST_COMPACT; sh4a_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_TST_COMPACT; sh4a_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 265 : /* fall through */
       case 281 : /* fall through */
       case 297 : /* fall through */
@@ -966,9 +924,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 361 : /* fall through */
       case 377 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2009)
-          { itype = SH4A_INSN_AND_COMPACT; sh4a_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_AND_COMPACT; sh4a_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 266 : /* fall through */
       case 282 : /* fall through */
       case 298 : /* fall through */
@@ -978,9 +934,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 362 : /* fall through */
       case 378 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200a)
-          { itype = SH4A_INSN_XOR_COMPACT; sh4a_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_XOR_COMPACT; sh4a_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 267 : /* fall through */
       case 283 : /* fall through */
       case 299 : /* fall through */
@@ -990,9 +944,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 363 : /* fall through */
       case 379 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200b)
-          { itype = SH4A_INSN_OR_COMPACT; sh4a_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_OR_COMPACT; sh4a_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 268 : /* fall through */
       case 284 : /* fall through */
       case 300 : /* fall through */
@@ -1002,9 +954,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 364 : /* fall through */
       case 380 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200c)
-          { itype = SH4A_INSN_CMPSTR_COMPACT; sh4a_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_CMPSTR_COMPACT; sh4a_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 269 : /* fall through */
       case 285 : /* fall through */
       case 301 : /* fall through */
@@ -1014,9 +964,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 365 : /* fall through */
       case 381 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200d)
-          { itype = SH4A_INSN_XTRCT_COMPACT; sh4a_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_XTRCT_COMPACT; sh4a_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 270 : /* fall through */
       case 286 : /* fall through */
       case 302 : /* fall through */
@@ -1026,9 +974,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 366 : /* fall through */
       case 382 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200e)
-          { itype = SH4A_INSN_MULUW_COMPACT; sh4a_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MULUW_COMPACT; sh4a_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 271 : /* fall through */
       case 287 : /* fall through */
       case 303 : /* fall through */
@@ -1038,9 +984,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 367 : /* fall through */
       case 383 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200f)
-          { itype = SH4A_INSN_MULSW_COMPACT; sh4a_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MULSW_COMPACT; sh4a_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 384 : /* fall through */
       case 400 : /* fall through */
       case 416 : /* fall through */
@@ -1050,9 +994,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 480 : /* fall through */
       case 496 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3000)
-          { itype = SH4A_INSN_CMPEQ_COMPACT; sh4a_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_CMPEQ_COMPACT; sh4a_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 386 : /* fall through */
       case 402 : /* fall through */
       case 418 : /* fall through */
@@ -1062,9 +1004,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 482 : /* fall through */
       case 498 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3002)
-          { itype = SH4A_INSN_CMPHS_COMPACT; sh4a_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_CMPHS_COMPACT; sh4a_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 387 : /* fall through */
       case 403 : /* fall through */
       case 419 : /* fall through */
@@ -1074,9 +1014,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 483 : /* fall through */
       case 499 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3003)
-          { itype = SH4A_INSN_CMPGE_COMPACT; sh4a_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_CMPGE_COMPACT; sh4a_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 388 : /* fall through */
       case 404 : /* fall through */
       case 420 : /* fall through */
@@ -1086,9 +1024,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 484 : /* fall through */
       case 500 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3004)
-          { itype = SH4A_INSN_DIV1_COMPACT; sh4a_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_DIV1_COMPACT; sh4a_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 389 : /* fall through */
       case 405 : /* fall through */
       case 421 : /* fall through */
@@ -1098,9 +1034,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 485 : /* fall through */
       case 501 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3005)
-          { itype = SH4A_INSN_DMULUL_COMPACT; sh4a_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_DMULUL_COMPACT; sh4a_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 390 : /* fall through */
       case 406 : /* fall through */
       case 422 : /* fall through */
@@ -1110,9 +1044,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 486 : /* fall through */
       case 502 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3006)
-          { itype = SH4A_INSN_CMPHI_COMPACT; sh4a_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_CMPHI_COMPACT; sh4a_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 391 : /* fall through */
       case 407 : /* fall through */
       case 423 : /* fall through */
@@ -1122,9 +1054,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 487 : /* fall through */
       case 503 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3007)
-          { itype = SH4A_INSN_CMPGT_COMPACT; sh4a_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_CMPGT_COMPACT; sh4a_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 392 : /* fall through */
       case 408 : /* fall through */
       case 424 : /* fall through */
@@ -1134,9 +1064,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 488 : /* fall through */
       case 504 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3008)
-          { itype = SH4A_INSN_SUB_COMPACT; sh4a_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_SUB_COMPACT; sh4a_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 394 : /* fall through */
       case 410 : /* fall through */
       case 426 : /* fall through */
@@ -1146,9 +1074,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 490 : /* fall through */
       case 506 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300a)
-          { itype = SH4A_INSN_SUBC_COMPACT; sh4a_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_SUBC_COMPACT; sh4a_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 395 : /* fall through */
       case 411 : /* fall through */
       case 427 : /* fall through */
@@ -1158,9 +1084,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 491 : /* fall through */
       case 507 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300b)
-          { itype = SH4A_INSN_SUBV_COMPACT; sh4a_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_SUBV_COMPACT; sh4a_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 396 : /* fall through */
       case 412 : /* fall through */
       case 428 : /* fall through */
@@ -1170,9 +1094,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 492 : /* fall through */
       case 508 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300c)
-          { itype = SH4A_INSN_ADD_COMPACT; sh4a_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_ADD_COMPACT; sh4a_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 397 : /* fall through */
       case 413 : /* fall through */
       case 429 : /* fall through */
@@ -1182,9 +1104,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 493 : /* fall through */
       case 509 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300d)
-          { itype = SH4A_INSN_DMULSL_COMPACT; sh4a_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_DMULSL_COMPACT; sh4a_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 398 : /* fall through */
       case 414 : /* fall through */
       case 430 : /* fall through */
@@ -1194,9 +1114,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 494 : /* fall through */
       case 510 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300e)
-          { itype = SH4A_INSN_ADDC_COMPACT; sh4a_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_ADDC_COMPACT; sh4a_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 399 : /* fall through */
       case 415 : /* fall through */
       case 431 : /* fall through */
@@ -1206,9 +1124,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 495 : /* fall through */
       case 511 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300f)
-          { itype = SH4A_INSN_ADDV_COMPACT; sh4a_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_ADDV_COMPACT; sh4a_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 512 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x4000)
@@ -1268,9 +1184,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 620 : /* fall through */
       case 636 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400c)
-          { itype = SH4A_INSN_SHAD_COMPACT; sh4a_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_SHAD_COMPACT; sh4a_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 525 : /* fall through */
       case 541 : /* fall through */
       case 557 : /* fall through */
@@ -1280,9 +1194,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 621 : /* fall through */
       case 637 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400d)
-          { itype = SH4A_INSN_SHLD_COMPACT; sh4a_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_SHLD_COMPACT; sh4a_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 526 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x400e)
@@ -1297,9 +1209,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 623 : /* fall through */
       case 639 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400f)
-          { itype = SH4A_INSN_MACW_COMPACT; sh4a_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MACW_COMPACT; sh4a_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 528 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x4010)
@@ -1412,14 +1322,10 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x4029)
-              { itype = SH4A_INSN_SHLR16_COMPACT; sh4a_extract_sfmt_movcol_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_SHLR16_COMPACT; sh4a_extract_sfmt_movcol_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x40a9)
-              { itype = SH4A_INSN_MOVUAL_COMPACT; sh4a_extract_sfmt_movual_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_MOVUAL_COMPACT; sh4a_extract_sfmt_movual_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1602,9 +1508,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 766 : /* fall through */
       case 767 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x5000)
-          { itype = SH4A_INSN_MOVL11_COMPACT; sh4a_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVL11_COMPACT; sh4a_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 768 : /* fall through */
       case 784 : /* fall through */
       case 800 : /* fall through */
@@ -1614,9 +1518,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 864 : /* fall through */
       case 880 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6000)
-          { itype = SH4A_INSN_MOVB6_COMPACT; sh4a_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVB6_COMPACT; sh4a_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 769 : /* fall through */
       case 785 : /* fall through */
       case 801 : /* fall through */
@@ -1626,9 +1528,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 865 : /* fall through */
       case 881 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6001)
-          { itype = SH4A_INSN_MOVW6_COMPACT; sh4a_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVW6_COMPACT; sh4a_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 770 : /* fall through */
       case 786 : /* fall through */
       case 802 : /* fall through */
@@ -1638,9 +1538,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 866 : /* fall through */
       case 882 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6002)
-          { itype = SH4A_INSN_MOVL6_COMPACT; sh4a_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVL6_COMPACT; sh4a_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 771 : /* fall through */
       case 787 : /* fall through */
       case 803 : /* fall through */
@@ -1650,9 +1548,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 867 : /* fall through */
       case 883 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6003)
-          { itype = SH4A_INSN_MOV_COMPACT; sh4a_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOV_COMPACT; sh4a_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 772 : /* fall through */
       case 788 : /* fall through */
       case 804 : /* fall through */
@@ -1662,9 +1558,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 868 : /* fall through */
       case 884 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6004)
-          { itype = SH4A_INSN_MOVB7_COMPACT; sh4a_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVB7_COMPACT; sh4a_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 773 : /* fall through */
       case 789 : /* fall through */
       case 805 : /* fall through */
@@ -1674,9 +1568,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 869 : /* fall through */
       case 885 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6005)
-          { itype = SH4A_INSN_MOVW7_COMPACT; sh4a_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVW7_COMPACT; sh4a_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 774 : /* fall through */
       case 790 : /* fall through */
       case 806 : /* fall through */
@@ -1686,9 +1578,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 870 : /* fall through */
       case 886 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6006)
-          { itype = SH4A_INSN_MOVL7_COMPACT; sh4a_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVL7_COMPACT; sh4a_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 775 : /* fall through */
       case 791 : /* fall through */
       case 807 : /* fall through */
@@ -1698,9 +1588,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 871 : /* fall through */
       case 887 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6007)
-          { itype = SH4A_INSN_NOT_COMPACT; sh4a_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_NOT_COMPACT; sh4a_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 776 : /* fall through */
       case 792 : /* fall through */
       case 808 : /* fall through */
@@ -1710,9 +1598,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 872 : /* fall through */
       case 888 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6008)
-          { itype = SH4A_INSN_SWAPB_COMPACT; sh4a_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_SWAPB_COMPACT; sh4a_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 777 : /* fall through */
       case 793 : /* fall through */
       case 809 : /* fall through */
@@ -1722,9 +1608,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 873 : /* fall through */
       case 889 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6009)
-          { itype = SH4A_INSN_SWAPW_COMPACT; sh4a_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_SWAPW_COMPACT; sh4a_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 778 : /* fall through */
       case 794 : /* fall through */
       case 810 : /* fall through */
@@ -1734,9 +1618,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 874 : /* fall through */
       case 890 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600a)
-          { itype = SH4A_INSN_NEGC_COMPACT; sh4a_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_NEGC_COMPACT; sh4a_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 779 : /* fall through */
       case 795 : /* fall through */
       case 811 : /* fall through */
@@ -1746,9 +1628,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 875 : /* fall through */
       case 891 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600b)
-          { itype = SH4A_INSN_NEG_COMPACT; sh4a_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_NEG_COMPACT; sh4a_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 780 : /* fall through */
       case 796 : /* fall through */
       case 812 : /* fall through */
@@ -1758,9 +1638,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 876 : /* fall through */
       case 892 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600c)
-          { itype = SH4A_INSN_EXTUB_COMPACT; sh4a_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_EXTUB_COMPACT; sh4a_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 781 : /* fall through */
       case 797 : /* fall through */
       case 813 : /* fall through */
@@ -1770,9 +1648,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 877 : /* fall through */
       case 893 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600d)
-          { itype = SH4A_INSN_EXTUW_COMPACT; sh4a_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_EXTUW_COMPACT; sh4a_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 782 : /* fall through */
       case 798 : /* fall through */
       case 814 : /* fall through */
@@ -1782,9 +1658,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 878 : /* fall through */
       case 894 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600e)
-          { itype = SH4A_INSN_EXTSB_COMPACT; sh4a_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_EXTSB_COMPACT; sh4a_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 783 : /* fall through */
       case 799 : /* fall through */
       case 815 : /* fall through */
@@ -1794,9 +1668,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 879 : /* fall through */
       case 895 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600f)
-          { itype = SH4A_INSN_EXTSW_COMPACT; sh4a_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_EXTSW_COMPACT; sh4a_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 896 : /* fall through */
       case 897 : /* fall through */
       case 898 : /* fall through */
@@ -1926,9 +1798,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 1022 : /* fall through */
       case 1023 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x7000)
-          { itype = SH4A_INSN_ADDI_COMPACT; sh4a_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_ADDI_COMPACT; sh4a_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1024 : /* fall through */
       case 1025 : /* fall through */
       case 1026 : /* fall through */
@@ -2063,49 +1933,31 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8000)
-              { itype = SH4A_INSN_MOVB5_COMPACT; sh4a_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_MOVB5_COMPACT; sh4a_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8100)
-              { itype = SH4A_INSN_MOVW5_COMPACT; sh4a_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_MOVW5_COMPACT; sh4a_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8400)
-              { itype = SH4A_INSN_MOVB10_COMPACT; sh4a_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_MOVB10_COMPACT; sh4a_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8500)
-              { itype = SH4A_INSN_MOVW11_COMPACT; sh4a_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_MOVW11_COMPACT; sh4a_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8800)
-              { itype = SH4A_INSN_CMPEQI_COMPACT; sh4a_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_CMPEQI_COMPACT; sh4a_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8900)
-              { itype = SH4A_INSN_BT_COMPACT; sh4a_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_BT_COMPACT; sh4a_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8b00)
-              { itype = SH4A_INSN_BF_COMPACT; sh4a_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_BF_COMPACT; sh4a_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8d00)
-              { itype = SH4A_INSN_BTS_COMPACT; sh4a_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_BTS_COMPACT; sh4a_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8f00)
-              { itype = SH4A_INSN_BFS_COMPACT; sh4a_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_BFS_COMPACT; sh4a_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -2238,9 +2090,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 1278 : /* fall through */
       case 1279 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x9000)
-          { itype = SH4A_INSN_MOVW10_COMPACT; sh4a_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVW10_COMPACT; sh4a_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1280 : /* fall through */
       case 1281 : /* fall through */
       case 1282 : /* fall through */
@@ -2370,9 +2220,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 1406 : /* fall through */
       case 1407 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xa000)
-          { itype = SH4A_INSN_BRA_COMPACT; sh4a_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_BRA_COMPACT; sh4a_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1408 : /* fall through */
       case 1409 : /* fall through */
       case 1410 : /* fall through */
@@ -2502,9 +2350,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 1534 : /* fall through */
       case 1535 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xb000)
-          { itype = SH4A_INSN_BSR_COMPACT; sh4a_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_BSR_COMPACT; sh4a_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1536 : /* fall through */
       case 1537 : /* fall through */
       case 1538 : /* fall through */
@@ -2639,84 +2485,52 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc000)
-              { itype = SH4A_INSN_MOVB4_COMPACT; sh4a_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_MOVB4_COMPACT; sh4a_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc100)
-              { itype = SH4A_INSN_MOVW4_COMPACT; sh4a_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_MOVW4_COMPACT; sh4a_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc200)
-              { itype = SH4A_INSN_MOVL4_COMPACT; sh4a_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_MOVL4_COMPACT; sh4a_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc300)
-              { itype = SH4A_INSN_TRAPA_COMPACT; sh4a_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_TRAPA_COMPACT; sh4a_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc400)
-              { itype = SH4A_INSN_MOVB9_COMPACT; sh4a_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_MOVB9_COMPACT; sh4a_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc500)
-              { itype = SH4A_INSN_MOVW9_COMPACT; sh4a_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_MOVW9_COMPACT; sh4a_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 6 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc600)
-              { itype = SH4A_INSN_MOVL9_COMPACT; sh4a_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_MOVL9_COMPACT; sh4a_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 7 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc700)
-              { itype = SH4A_INSN_MOVA_COMPACT; sh4a_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_MOVA_COMPACT; sh4a_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc800)
-              { itype = SH4A_INSN_TSTI_COMPACT; sh4a_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_TSTI_COMPACT; sh4a_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc900)
-              { itype = SH4A_INSN_ANDI_COMPACT; sh4a_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_ANDI_COMPACT; sh4a_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 10 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xca00)
-              { itype = SH4A_INSN_XORI_COMPACT; sh4a_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_XORI_COMPACT; sh4a_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcb00)
-              { itype = SH4A_INSN_ORI_COMPACT; sh4a_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_ORI_COMPACT; sh4a_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 12 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcc00)
-              { itype = SH4A_INSN_TSTB_COMPACT; sh4a_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_TSTB_COMPACT; sh4a_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcd00)
-              { itype = SH4A_INSN_ANDB_COMPACT; sh4a_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_ANDB_COMPACT; sh4a_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 14 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xce00)
-              { itype = SH4A_INSN_XORB_COMPACT; sh4a_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_XORB_COMPACT; sh4a_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcf00)
-              { itype = SH4A_INSN_ORB_COMPACT; sh4a_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_ORB_COMPACT; sh4a_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -2849,9 +2663,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 1790 : /* fall through */
       case 1791 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xd000)
-          { itype = SH4A_INSN_MOVL10_COMPACT; sh4a_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVL10_COMPACT; sh4a_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1792 : /* fall through */
       case 1793 : /* fall through */
       case 1794 : /* fall through */
@@ -2981,9 +2793,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 1918 : /* fall through */
       case 1919 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xe000)
-          { itype = SH4A_INSN_MOVI_COMPACT; sh4a_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_MOVI_COMPACT; sh4a_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1920 : /* fall through */
       case 1936 : /* fall through */
       case 1952 : /* fall through */
@@ -2993,9 +2803,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 2016 : /* fall through */
       case 2032 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf000)
-          { itype = SH4A_INSN_FADD_COMPACT; sh4a_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_FADD_COMPACT; sh4a_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1921 : /* fall through */
       case 1937 : /* fall through */
       case 1953 : /* fall through */
@@ -3005,9 +2813,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 2017 : /* fall through */
       case 2033 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf001)
-          { itype = SH4A_INSN_FSUB_COMPACT; sh4a_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_FSUB_COMPACT; sh4a_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1922 : /* fall through */
       case 1938 : /* fall through */
       case 1954 : /* fall through */
@@ -3017,9 +2823,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 2018 : /* fall through */
       case 2034 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf002)
-          { itype = SH4A_INSN_FMUL_COMPACT; sh4a_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_FMUL_COMPACT; sh4a_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1923 : /* fall through */
       case 1939 : /* fall through */
       case 1955 : /* fall through */
@@ -3029,9 +2833,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 2019 : /* fall through */
       case 2035 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf003)
-          { itype = SH4A_INSN_FDIV_COMPACT; sh4a_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_FDIV_COMPACT; sh4a_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1924 : /* fall through */
       case 1940 : /* fall through */
       case 1956 : /* fall through */
@@ -3041,9 +2843,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 2020 : /* fall through */
       case 2036 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf004)
-          { itype = SH4A_INSN_FCMPEQ_COMPACT; sh4a_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_FCMPEQ_COMPACT; sh4a_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1925 : /* fall through */
       case 1941 : /* fall through */
       case 1957 : /* fall through */
@@ -3053,9 +2853,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 2021 : /* fall through */
       case 2037 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf005)
-          { itype = SH4A_INSN_FCMPGT_COMPACT; sh4a_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_FCMPGT_COMPACT; sh4a_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1926 : /* fall through */
       case 1942 : /* fall through */
       case 1958 : /* fall through */
@@ -3065,9 +2863,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 2022 : /* fall through */
       case 2038 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf006)
-          { itype = SH4A_INSN_FMOV4_COMPACT; sh4a_extract_sfmt_fmov4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_FMOV4_COMPACT; sh4a_extract_sfmt_fmov4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1927 : /* fall through */
       case 1943 : /* fall through */
       case 1959 : /* fall through */
@@ -3077,9 +2873,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 2023 : /* fall through */
       case 2039 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf007)
-          { itype = SH4A_INSN_FMOV7_COMPACT; sh4a_extract_sfmt_fmov7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_FMOV7_COMPACT; sh4a_extract_sfmt_fmov7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1928 : /* fall through */
       case 1944 : /* fall through */
       case 1960 : /* fall through */
@@ -3089,9 +2883,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 2024 : /* fall through */
       case 2040 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf008)
-          { itype = SH4A_INSN_FMOV2_COMPACT; sh4a_extract_sfmt_fmov2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_FMOV2_COMPACT; sh4a_extract_sfmt_fmov2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1929 : /* fall through */
       case 1945 : /* fall through */
       case 1961 : /* fall through */
@@ -3101,9 +2893,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 2025 : /* fall through */
       case 2041 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf009)
-          { itype = SH4A_INSN_FMOV3_COMPACT; sh4a_extract_sfmt_fmov3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_FMOV3_COMPACT; sh4a_extract_sfmt_fmov3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1930 : /* fall through */
       case 1946 : /* fall through */
       case 1962 : /* fall through */
@@ -3113,9 +2903,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 2026 : /* fall through */
       case 2042 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00a)
-          { itype = SH4A_INSN_FMOV5_COMPACT; sh4a_extract_sfmt_fmov5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_FMOV5_COMPACT; sh4a_extract_sfmt_fmov5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1931 : /* fall through */
       case 1947 : /* fall through */
       case 1963 : /* fall through */
@@ -3125,9 +2913,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 2027 : /* fall through */
       case 2043 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00b)
-          { itype = SH4A_INSN_FMOV6_COMPACT; sh4a_extract_sfmt_fmov6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_FMOV6_COMPACT; sh4a_extract_sfmt_fmov6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1932 : /* fall through */
       case 1948 : /* fall through */
       case 1964 : /* fall through */
@@ -3137,9 +2923,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 2028 : /* fall through */
       case 2044 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00c)
-          { itype = SH4A_INSN_FMOV1_COMPACT; sh4a_extract_sfmt_fmov1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_FMOV1_COMPACT; sh4a_extract_sfmt_fmov1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1933 :
         {
           unsigned int val = (((insn >> 23) & (1 << 0)));
@@ -3147,14 +2931,10 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf00d)
-              { itype = SH4A_INSN_FSTS_COMPACT; sh4a_extract_sfmt_fsts_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_FSTS_COMPACT; sh4a_extract_sfmt_fsts_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf08d)
-              { itype = SH4A_INSN_FLDI0_COMPACT; sh4a_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_FLDI0_COMPACT; sh4a_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -3167,9 +2947,7 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
       case 2030 : /* fall through */
       case 2046 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00e)
-          { itype = SH4A_INSN_FMAC_COMPACT; sh4a_extract_sfmt_fmac_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_INSN_FMAC_COMPACT; sh4a_extract_sfmt_fmac_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1949 :
         {
           unsigned int val = (((insn >> 23) & (1 << 0)));
@@ -3177,14 +2955,10 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf01d)
-              { itype = SH4A_INSN_FLDS_COMPACT; sh4a_extract_sfmt_flds_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_FLDS_COMPACT; sh4a_extract_sfmt_flds_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf09d)
-              { itype = SH4A_INSN_FLDI1_COMPACT; sh4a_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_FLDI1_COMPACT; sh4a_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -3215,14 +2989,10 @@ sh4a_scache::decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn,
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf06d)
-              { itype = SH4A_INSN_FSQRT_COMPACT; sh4a_extract_sfmt_fabs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_FSQRT_COMPACT; sh4a_extract_sfmt_fabs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf0ed)
-              { itype = SH4A_INSN_FIPR_COMPACT; sh4a_extract_sfmt_fipr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_INSN_FIPR_COMPACT; sh4a_extract_sfmt_fipr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4A_INSN_X_INVALID; sh4a_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
index 64fcb18..6d675a1 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 10a1717..01857fc 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index ba41a0f..83ea856 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index e90ba64..bea2d2d 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 8534d70..53a44d3 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -103,7 +103,7 @@ current_cpu->hardware.h_pc = ANDDI (newval, INVDI (1));
 }
  }
 
-  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (0) : (current_cpu->hardware.h_gr[regno])); }
+  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (MAKEDI (0, 0)) : (current_cpu->hardware.h_gr[regno])); }
   inline void h_gr_set (UINT regno, DI newval) { if (((regno) != (63))) {
 current_cpu->hardware.h_gr[regno] = newval;
 } else {
index 7191c11..2fe4660 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -426,9 +426,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 100 : /* fall through */
       case 116 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x4)
-          { itype = SH4A_NOFPU_INSN_MOVB3_COMPACT; sh4a_nofpu_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVB3_COMPACT; sh4a_nofpu_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 5 : /* fall through */
       case 21 : /* fall through */
       case 37 : /* fall through */
@@ -438,9 +436,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 101 : /* fall through */
       case 117 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x5)
-          { itype = SH4A_NOFPU_INSN_MOVW3_COMPACT; sh4a_nofpu_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVW3_COMPACT; sh4a_nofpu_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 6 : /* fall through */
       case 22 : /* fall through */
       case 38 : /* fall through */
@@ -450,9 +446,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 102 : /* fall through */
       case 118 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6)
-          { itype = SH4A_NOFPU_INSN_MOVL3_COMPACT; sh4a_nofpu_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVL3_COMPACT; sh4a_nofpu_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 7 : /* fall through */
       case 23 : /* fall through */
       case 39 : /* fall through */
@@ -462,9 +456,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 103 : /* fall through */
       case 119 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x7)
-          { itype = SH4A_NOFPU_INSN_MULL_COMPACT; sh4a_nofpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MULL_COMPACT; sh4a_nofpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 8 :
         {
           unsigned int val = (((insn >> 22) & (1 << 0)));
@@ -507,9 +499,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 108 : /* fall through */
       case 124 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xc)
-          { itype = SH4A_NOFPU_INSN_MOVB8_COMPACT; sh4a_nofpu_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVB8_COMPACT; sh4a_nofpu_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 13 : /* fall through */
       case 29 : /* fall through */
       case 45 : /* fall through */
@@ -519,9 +509,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 109 : /* fall through */
       case 125 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xd)
-          { itype = SH4A_NOFPU_INSN_MOVW8_COMPACT; sh4a_nofpu_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVW8_COMPACT; sh4a_nofpu_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 14 : /* fall through */
       case 30 : /* fall through */
       case 46 : /* fall through */
@@ -531,9 +519,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 110 : /* fall through */
       case 126 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xe)
-          { itype = SH4A_NOFPU_INSN_MOVL8_COMPACT; sh4a_nofpu_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVL8_COMPACT; sh4a_nofpu_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 15 : /* fall through */
       case 31 : /* fall through */
       case 47 : /* fall through */
@@ -543,9 +529,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 111 : /* fall through */
       case 127 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf)
-          { itype = SH4A_NOFPU_INSN_MACL_COMPACT; sh4a_nofpu_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MACL_COMPACT; sh4a_nofpu_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 18 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x12)
@@ -616,14 +600,10 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x83)
-              { itype = SH4A_NOFPU_INSN_PREF_COMPACT; sh4a_nofpu_extract_sfmt_pref_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_PREF_COMPACT; sh4a_nofpu_extract_sfmt_pref_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xc3)
-              { itype = SH4A_NOFPU_INSN_MOVCAL_COMPACT; sh4a_nofpu_extract_sfmt_movcal_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_MOVCAL_COMPACT; sh4a_nofpu_extract_sfmt_movcal_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -771,9 +751,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 254 : /* fall through */
       case 255 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x1000)
-          { itype = SH4A_NOFPU_INSN_MOVL5_COMPACT; sh4a_nofpu_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVL5_COMPACT; sh4a_nofpu_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 256 : /* fall through */
       case 272 : /* fall through */
       case 288 : /* fall through */
@@ -783,9 +761,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 352 : /* fall through */
       case 368 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2000)
-          { itype = SH4A_NOFPU_INSN_MOVB1_COMPACT; sh4a_nofpu_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVB1_COMPACT; sh4a_nofpu_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 257 : /* fall through */
       case 273 : /* fall through */
       case 289 : /* fall through */
@@ -795,9 +771,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 353 : /* fall through */
       case 369 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2001)
-          { itype = SH4A_NOFPU_INSN_MOVW1_COMPACT; sh4a_nofpu_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVW1_COMPACT; sh4a_nofpu_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 258 : /* fall through */
       case 274 : /* fall through */
       case 290 : /* fall through */
@@ -807,9 +781,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 354 : /* fall through */
       case 370 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2002)
-          { itype = SH4A_NOFPU_INSN_MOVL1_COMPACT; sh4a_nofpu_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVL1_COMPACT; sh4a_nofpu_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 260 : /* fall through */
       case 276 : /* fall through */
       case 292 : /* fall through */
@@ -819,9 +791,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 356 : /* fall through */
       case 372 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2004)
-          { itype = SH4A_NOFPU_INSN_MOVB2_COMPACT; sh4a_nofpu_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVB2_COMPACT; sh4a_nofpu_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 261 : /* fall through */
       case 277 : /* fall through */
       case 293 : /* fall through */
@@ -831,9 +801,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 357 : /* fall through */
       case 373 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2005)
-          { itype = SH4A_NOFPU_INSN_MOVW2_COMPACT; sh4a_nofpu_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVW2_COMPACT; sh4a_nofpu_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 262 : /* fall through */
       case 278 : /* fall through */
       case 294 : /* fall through */
@@ -843,9 +811,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 358 : /* fall through */
       case 374 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2006)
-          { itype = SH4A_NOFPU_INSN_MOVL2_COMPACT; sh4a_nofpu_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVL2_COMPACT; sh4a_nofpu_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 263 : /* fall through */
       case 279 : /* fall through */
       case 295 : /* fall through */
@@ -855,9 +821,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 359 : /* fall through */
       case 375 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2007)
-          { itype = SH4A_NOFPU_INSN_DIV0S_COMPACT; sh4a_nofpu_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_DIV0S_COMPACT; sh4a_nofpu_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 264 : /* fall through */
       case 280 : /* fall through */
       case 296 : /* fall through */
@@ -867,9 +831,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 360 : /* fall through */
       case 376 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2008)
-          { itype = SH4A_NOFPU_INSN_TST_COMPACT; sh4a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_TST_COMPACT; sh4a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 265 : /* fall through */
       case 281 : /* fall through */
       case 297 : /* fall through */
@@ -879,9 +841,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 361 : /* fall through */
       case 377 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2009)
-          { itype = SH4A_NOFPU_INSN_AND_COMPACT; sh4a_nofpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_AND_COMPACT; sh4a_nofpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 266 : /* fall through */
       case 282 : /* fall through */
       case 298 : /* fall through */
@@ -891,9 +851,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 362 : /* fall through */
       case 378 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200a)
-          { itype = SH4A_NOFPU_INSN_XOR_COMPACT; sh4a_nofpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_XOR_COMPACT; sh4a_nofpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 267 : /* fall through */
       case 283 : /* fall through */
       case 299 : /* fall through */
@@ -903,9 +861,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 363 : /* fall through */
       case 379 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200b)
-          { itype = SH4A_NOFPU_INSN_OR_COMPACT; sh4a_nofpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_OR_COMPACT; sh4a_nofpu_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 268 : /* fall through */
       case 284 : /* fall through */
       case 300 : /* fall through */
@@ -915,9 +871,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 364 : /* fall through */
       case 380 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200c)
-          { itype = SH4A_NOFPU_INSN_CMPSTR_COMPACT; sh4a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_CMPSTR_COMPACT; sh4a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 269 : /* fall through */
       case 285 : /* fall through */
       case 301 : /* fall through */
@@ -927,9 +881,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 365 : /* fall through */
       case 381 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200d)
-          { itype = SH4A_NOFPU_INSN_XTRCT_COMPACT; sh4a_nofpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_XTRCT_COMPACT; sh4a_nofpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 270 : /* fall through */
       case 286 : /* fall through */
       case 302 : /* fall through */
@@ -939,9 +891,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 366 : /* fall through */
       case 382 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200e)
-          { itype = SH4A_NOFPU_INSN_MULUW_COMPACT; sh4a_nofpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MULUW_COMPACT; sh4a_nofpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 271 : /* fall through */
       case 287 : /* fall through */
       case 303 : /* fall through */
@@ -951,9 +901,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 367 : /* fall through */
       case 383 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200f)
-          { itype = SH4A_NOFPU_INSN_MULSW_COMPACT; sh4a_nofpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MULSW_COMPACT; sh4a_nofpu_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 384 : /* fall through */
       case 400 : /* fall through */
       case 416 : /* fall through */
@@ -963,9 +911,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 480 : /* fall through */
       case 496 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3000)
-          { itype = SH4A_NOFPU_INSN_CMPEQ_COMPACT; sh4a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_CMPEQ_COMPACT; sh4a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 386 : /* fall through */
       case 402 : /* fall through */
       case 418 : /* fall through */
@@ -975,9 +921,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 482 : /* fall through */
       case 498 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3002)
-          { itype = SH4A_NOFPU_INSN_CMPHS_COMPACT; sh4a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_CMPHS_COMPACT; sh4a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 387 : /* fall through */
       case 403 : /* fall through */
       case 419 : /* fall through */
@@ -987,9 +931,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 483 : /* fall through */
       case 499 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3003)
-          { itype = SH4A_NOFPU_INSN_CMPGE_COMPACT; sh4a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_CMPGE_COMPACT; sh4a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 388 : /* fall through */
       case 404 : /* fall through */
       case 420 : /* fall through */
@@ -999,9 +941,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 484 : /* fall through */
       case 500 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3004)
-          { itype = SH4A_NOFPU_INSN_DIV1_COMPACT; sh4a_nofpu_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_DIV1_COMPACT; sh4a_nofpu_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 389 : /* fall through */
       case 405 : /* fall through */
       case 421 : /* fall through */
@@ -1011,9 +951,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 485 : /* fall through */
       case 501 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3005)
-          { itype = SH4A_NOFPU_INSN_DMULUL_COMPACT; sh4a_nofpu_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_DMULUL_COMPACT; sh4a_nofpu_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 390 : /* fall through */
       case 406 : /* fall through */
       case 422 : /* fall through */
@@ -1023,9 +961,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 486 : /* fall through */
       case 502 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3006)
-          { itype = SH4A_NOFPU_INSN_CMPHI_COMPACT; sh4a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_CMPHI_COMPACT; sh4a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 391 : /* fall through */
       case 407 : /* fall through */
       case 423 : /* fall through */
@@ -1035,9 +971,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 487 : /* fall through */
       case 503 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3007)
-          { itype = SH4A_NOFPU_INSN_CMPGT_COMPACT; sh4a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_CMPGT_COMPACT; sh4a_nofpu_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 392 : /* fall through */
       case 408 : /* fall through */
       case 424 : /* fall through */
@@ -1047,9 +981,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 488 : /* fall through */
       case 504 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3008)
-          { itype = SH4A_NOFPU_INSN_SUB_COMPACT; sh4a_nofpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_SUB_COMPACT; sh4a_nofpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 394 : /* fall through */
       case 410 : /* fall through */
       case 426 : /* fall through */
@@ -1059,9 +991,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 490 : /* fall through */
       case 506 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300a)
-          { itype = SH4A_NOFPU_INSN_SUBC_COMPACT; sh4a_nofpu_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_SUBC_COMPACT; sh4a_nofpu_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 395 : /* fall through */
       case 411 : /* fall through */
       case 427 : /* fall through */
@@ -1071,9 +1001,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 491 : /* fall through */
       case 507 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300b)
-          { itype = SH4A_NOFPU_INSN_SUBV_COMPACT; sh4a_nofpu_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_SUBV_COMPACT; sh4a_nofpu_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 396 : /* fall through */
       case 412 : /* fall through */
       case 428 : /* fall through */
@@ -1083,9 +1011,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 492 : /* fall through */
       case 508 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300c)
-          { itype = SH4A_NOFPU_INSN_ADD_COMPACT; sh4a_nofpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_ADD_COMPACT; sh4a_nofpu_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 397 : /* fall through */
       case 413 : /* fall through */
       case 429 : /* fall through */
@@ -1095,9 +1021,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 493 : /* fall through */
       case 509 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300d)
-          { itype = SH4A_NOFPU_INSN_DMULSL_COMPACT; sh4a_nofpu_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_DMULSL_COMPACT; sh4a_nofpu_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 398 : /* fall through */
       case 414 : /* fall through */
       case 430 : /* fall through */
@@ -1107,9 +1031,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 494 : /* fall through */
       case 510 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300e)
-          { itype = SH4A_NOFPU_INSN_ADDC_COMPACT; sh4a_nofpu_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_ADDC_COMPACT; sh4a_nofpu_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 399 : /* fall through */
       case 415 : /* fall through */
       case 431 : /* fall through */
@@ -1119,9 +1041,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 495 : /* fall through */
       case 511 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300f)
-          { itype = SH4A_NOFPU_INSN_ADDV_COMPACT; sh4a_nofpu_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_ADDV_COMPACT; sh4a_nofpu_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 512 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x4000)
@@ -1181,9 +1101,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 620 : /* fall through */
       case 636 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400c)
-          { itype = SH4A_NOFPU_INSN_SHAD_COMPACT; sh4a_nofpu_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_SHAD_COMPACT; sh4a_nofpu_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 525 : /* fall through */
       case 541 : /* fall through */
       case 557 : /* fall through */
@@ -1193,9 +1111,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 621 : /* fall through */
       case 637 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400d)
-          { itype = SH4A_NOFPU_INSN_SHLD_COMPACT; sh4a_nofpu_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_SHLD_COMPACT; sh4a_nofpu_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 526 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x400e)
@@ -1210,9 +1126,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 623 : /* fall through */
       case 639 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400f)
-          { itype = SH4A_NOFPU_INSN_MACW_COMPACT; sh4a_nofpu_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MACW_COMPACT; sh4a_nofpu_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 528 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x4010)
@@ -1345,14 +1259,10 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x40a9)
-              { itype = SH4A_NOFPU_INSN_MOVUAL_COMPACT; sh4a_nofpu_extract_sfmt_movual_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_MOVUAL_COMPACT; sh4a_nofpu_extract_sfmt_movual_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x40e9)
-              { itype = SH4A_NOFPU_INSN_MOVUAL2_COMPACT; sh4a_nofpu_extract_sfmt_movual2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_MOVUAL2_COMPACT; sh4a_nofpu_extract_sfmt_movual2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1485,9 +1395,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 766 : /* fall through */
       case 767 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x5000)
-          { itype = SH4A_NOFPU_INSN_MOVL11_COMPACT; sh4a_nofpu_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVL11_COMPACT; sh4a_nofpu_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 768 : /* fall through */
       case 784 : /* fall through */
       case 800 : /* fall through */
@@ -1497,9 +1405,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 864 : /* fall through */
       case 880 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6000)
-          { itype = SH4A_NOFPU_INSN_MOVB6_COMPACT; sh4a_nofpu_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVB6_COMPACT; sh4a_nofpu_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 769 : /* fall through */
       case 785 : /* fall through */
       case 801 : /* fall through */
@@ -1509,9 +1415,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 865 : /* fall through */
       case 881 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6001)
-          { itype = SH4A_NOFPU_INSN_MOVW6_COMPACT; sh4a_nofpu_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVW6_COMPACT; sh4a_nofpu_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 770 : /* fall through */
       case 786 : /* fall through */
       case 802 : /* fall through */
@@ -1521,9 +1425,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 866 : /* fall through */
       case 882 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6002)
-          { itype = SH4A_NOFPU_INSN_MOVL6_COMPACT; sh4a_nofpu_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVL6_COMPACT; sh4a_nofpu_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 771 : /* fall through */
       case 787 : /* fall through */
       case 803 : /* fall through */
@@ -1533,9 +1435,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 867 : /* fall through */
       case 883 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6003)
-          { itype = SH4A_NOFPU_INSN_MOV_COMPACT; sh4a_nofpu_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOV_COMPACT; sh4a_nofpu_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 772 : /* fall through */
       case 788 : /* fall through */
       case 804 : /* fall through */
@@ -1545,9 +1445,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 868 : /* fall through */
       case 884 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6004)
-          { itype = SH4A_NOFPU_INSN_MOVB7_COMPACT; sh4a_nofpu_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVB7_COMPACT; sh4a_nofpu_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 773 : /* fall through */
       case 789 : /* fall through */
       case 805 : /* fall through */
@@ -1557,9 +1455,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 869 : /* fall through */
       case 885 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6005)
-          { itype = SH4A_NOFPU_INSN_MOVW7_COMPACT; sh4a_nofpu_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVW7_COMPACT; sh4a_nofpu_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 774 : /* fall through */
       case 790 : /* fall through */
       case 806 : /* fall through */
@@ -1569,9 +1465,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 870 : /* fall through */
       case 886 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6006)
-          { itype = SH4A_NOFPU_INSN_MOVL7_COMPACT; sh4a_nofpu_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVL7_COMPACT; sh4a_nofpu_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 775 : /* fall through */
       case 791 : /* fall through */
       case 807 : /* fall through */
@@ -1581,9 +1475,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 871 : /* fall through */
       case 887 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6007)
-          { itype = SH4A_NOFPU_INSN_NOT_COMPACT; sh4a_nofpu_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_NOT_COMPACT; sh4a_nofpu_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 776 : /* fall through */
       case 792 : /* fall through */
       case 808 : /* fall through */
@@ -1593,9 +1485,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 872 : /* fall through */
       case 888 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6008)
-          { itype = SH4A_NOFPU_INSN_SWAPB_COMPACT; sh4a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_SWAPB_COMPACT; sh4a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 777 : /* fall through */
       case 793 : /* fall through */
       case 809 : /* fall through */
@@ -1605,9 +1495,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 873 : /* fall through */
       case 889 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6009)
-          { itype = SH4A_NOFPU_INSN_SWAPW_COMPACT; sh4a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_SWAPW_COMPACT; sh4a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 778 : /* fall through */
       case 794 : /* fall through */
       case 810 : /* fall through */
@@ -1617,9 +1505,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 874 : /* fall through */
       case 890 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600a)
-          { itype = SH4A_NOFPU_INSN_NEGC_COMPACT; sh4a_nofpu_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_NEGC_COMPACT; sh4a_nofpu_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 779 : /* fall through */
       case 795 : /* fall through */
       case 811 : /* fall through */
@@ -1629,9 +1515,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 875 : /* fall through */
       case 891 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600b)
-          { itype = SH4A_NOFPU_INSN_NEG_COMPACT; sh4a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_NEG_COMPACT; sh4a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 780 : /* fall through */
       case 796 : /* fall through */
       case 812 : /* fall through */
@@ -1641,9 +1525,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 876 : /* fall through */
       case 892 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600c)
-          { itype = SH4A_NOFPU_INSN_EXTUB_COMPACT; sh4a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_EXTUB_COMPACT; sh4a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 781 : /* fall through */
       case 797 : /* fall through */
       case 813 : /* fall through */
@@ -1653,9 +1535,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 877 : /* fall through */
       case 893 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600d)
-          { itype = SH4A_NOFPU_INSN_EXTUW_COMPACT; sh4a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_EXTUW_COMPACT; sh4a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 782 : /* fall through */
       case 798 : /* fall through */
       case 814 : /* fall through */
@@ -1665,9 +1545,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 878 : /* fall through */
       case 894 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600e)
-          { itype = SH4A_NOFPU_INSN_EXTSB_COMPACT; sh4a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_EXTSB_COMPACT; sh4a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 783 : /* fall through */
       case 799 : /* fall through */
       case 815 : /* fall through */
@@ -1677,9 +1555,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 879 : /* fall through */
       case 895 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600f)
-          { itype = SH4A_NOFPU_INSN_EXTSW_COMPACT; sh4a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_EXTSW_COMPACT; sh4a_nofpu_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 896 : /* fall through */
       case 897 : /* fall through */
       case 898 : /* fall through */
@@ -1809,9 +1685,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 1022 : /* fall through */
       case 1023 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x7000)
-          { itype = SH4A_NOFPU_INSN_ADDI_COMPACT; sh4a_nofpu_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_ADDI_COMPACT; sh4a_nofpu_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1024 : /* fall through */
       case 1025 : /* fall through */
       case 1026 : /* fall through */
@@ -1946,49 +1820,31 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8000)
-              { itype = SH4A_NOFPU_INSN_MOVB5_COMPACT; sh4a_nofpu_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_MOVB5_COMPACT; sh4a_nofpu_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8100)
-              { itype = SH4A_NOFPU_INSN_MOVW5_COMPACT; sh4a_nofpu_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_MOVW5_COMPACT; sh4a_nofpu_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8400)
-              { itype = SH4A_NOFPU_INSN_MOVB10_COMPACT; sh4a_nofpu_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_MOVB10_COMPACT; sh4a_nofpu_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8500)
-              { itype = SH4A_NOFPU_INSN_MOVW11_COMPACT; sh4a_nofpu_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_MOVW11_COMPACT; sh4a_nofpu_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8800)
-              { itype = SH4A_NOFPU_INSN_CMPEQI_COMPACT; sh4a_nofpu_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_CMPEQI_COMPACT; sh4a_nofpu_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8900)
-              { itype = SH4A_NOFPU_INSN_BT_COMPACT; sh4a_nofpu_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_BT_COMPACT; sh4a_nofpu_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8b00)
-              { itype = SH4A_NOFPU_INSN_BF_COMPACT; sh4a_nofpu_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_BF_COMPACT; sh4a_nofpu_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8d00)
-              { itype = SH4A_NOFPU_INSN_BTS_COMPACT; sh4a_nofpu_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_BTS_COMPACT; sh4a_nofpu_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8f00)
-              { itype = SH4A_NOFPU_INSN_BFS_COMPACT; sh4a_nofpu_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_BFS_COMPACT; sh4a_nofpu_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -2121,9 +1977,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 1278 : /* fall through */
       case 1279 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x9000)
-          { itype = SH4A_NOFPU_INSN_MOVW10_COMPACT; sh4a_nofpu_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVW10_COMPACT; sh4a_nofpu_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1280 : /* fall through */
       case 1281 : /* fall through */
       case 1282 : /* fall through */
@@ -2253,9 +2107,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 1406 : /* fall through */
       case 1407 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xa000)
-          { itype = SH4A_NOFPU_INSN_BRA_COMPACT; sh4a_nofpu_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_BRA_COMPACT; sh4a_nofpu_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1408 : /* fall through */
       case 1409 : /* fall through */
       case 1410 : /* fall through */
@@ -2385,9 +2237,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 1534 : /* fall through */
       case 1535 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xb000)
-          { itype = SH4A_NOFPU_INSN_BSR_COMPACT; sh4a_nofpu_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_BSR_COMPACT; sh4a_nofpu_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1536 : /* fall through */
       case 1537 : /* fall through */
       case 1538 : /* fall through */
@@ -2522,84 +2372,52 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc000)
-              { itype = SH4A_NOFPU_INSN_MOVB4_COMPACT; sh4a_nofpu_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_MOVB4_COMPACT; sh4a_nofpu_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc100)
-              { itype = SH4A_NOFPU_INSN_MOVW4_COMPACT; sh4a_nofpu_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_MOVW4_COMPACT; sh4a_nofpu_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc200)
-              { itype = SH4A_NOFPU_INSN_MOVL4_COMPACT; sh4a_nofpu_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_MOVL4_COMPACT; sh4a_nofpu_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc300)
-              { itype = SH4A_NOFPU_INSN_TRAPA_COMPACT; sh4a_nofpu_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_TRAPA_COMPACT; sh4a_nofpu_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc400)
-              { itype = SH4A_NOFPU_INSN_MOVB9_COMPACT; sh4a_nofpu_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_MOVB9_COMPACT; sh4a_nofpu_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc500)
-              { itype = SH4A_NOFPU_INSN_MOVW9_COMPACT; sh4a_nofpu_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_MOVW9_COMPACT; sh4a_nofpu_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 6 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc600)
-              { itype = SH4A_NOFPU_INSN_MOVL9_COMPACT; sh4a_nofpu_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_MOVL9_COMPACT; sh4a_nofpu_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 7 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc700)
-              { itype = SH4A_NOFPU_INSN_MOVA_COMPACT; sh4a_nofpu_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_MOVA_COMPACT; sh4a_nofpu_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc800)
-              { itype = SH4A_NOFPU_INSN_TSTI_COMPACT; sh4a_nofpu_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_TSTI_COMPACT; sh4a_nofpu_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc900)
-              { itype = SH4A_NOFPU_INSN_ANDI_COMPACT; sh4a_nofpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_ANDI_COMPACT; sh4a_nofpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 10 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xca00)
-              { itype = SH4A_NOFPU_INSN_XORI_COMPACT; sh4a_nofpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_XORI_COMPACT; sh4a_nofpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcb00)
-              { itype = SH4A_NOFPU_INSN_ORI_COMPACT; sh4a_nofpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_ORI_COMPACT; sh4a_nofpu_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 12 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcc00)
-              { itype = SH4A_NOFPU_INSN_TSTB_COMPACT; sh4a_nofpu_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_TSTB_COMPACT; sh4a_nofpu_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcd00)
-              { itype = SH4A_NOFPU_INSN_ANDB_COMPACT; sh4a_nofpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_ANDB_COMPACT; sh4a_nofpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 14 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xce00)
-              { itype = SH4A_NOFPU_INSN_XORB_COMPACT; sh4a_nofpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_XORB_COMPACT; sh4a_nofpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcf00)
-              { itype = SH4A_NOFPU_INSN_ORB_COMPACT; sh4a_nofpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4A_NOFPU_INSN_ORB_COMPACT; sh4a_nofpu_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -2732,9 +2550,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 1790 : /* fall through */
       case 1791 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xd000)
-          { itype = SH4A_NOFPU_INSN_MOVL10_COMPACT; sh4a_nofpu_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVL10_COMPACT; sh4a_nofpu_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1792 : /* fall through */
       case 1793 : /* fall through */
       case 1794 : /* fall through */
@@ -2864,9 +2680,7 @@ sh4a_nofpu_scache::decode (sh4a_nofpu_cpu* current_cpu, PCADDR pc, sh4a_nofpu_in
       case 1918 : /* fall through */
       case 1919 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xe000)
-          { itype = SH4A_NOFPU_INSN_MOVI_COMPACT; sh4a_nofpu_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4A_NOFPU_INSN_X_INVALID; sh4a_nofpu_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4A_NOFPU_INSN_MOVI_COMPACT; sh4a_nofpu_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 2045 :
         {
           unsigned int val = (((insn >> 27) & (1 << 0)));
index 3b5da2d..5dfb50b 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 3c51a9e..94e7891 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 6de9d2b..e27cf77 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 1444ce0..4100652 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index ab2c79c..d72437b 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index c7454bb..1ed3524 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index b9b7a05..7ba1ccd 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index f2e09c4..d31c2c5 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index ba3690b..91e2f7b 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -103,7 +103,7 @@ current_cpu->hardware.h_pc = ANDDI (newval, INVDI (1));
 }
  }
 
-  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (0) : (current_cpu->hardware.h_gr[regno])); }
+  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (MAKEDI (0, 0)) : (current_cpu->hardware.h_gr[regno])); }
   inline void h_gr_set (UINT regno, DI newval) { if (((regno) != (63))) {
 current_cpu->hardware.h_gr[regno] = newval;
 } else {
index 20c83b3..9471ac6 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -426,9 +426,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 100 : /* fall through */
       case 116 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x4)
-          { itype = SH4AL_INSN_MOVB3_COMPACT; sh4al_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVB3_COMPACT; sh4al_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 5 : /* fall through */
       case 21 : /* fall through */
       case 37 : /* fall through */
@@ -438,9 +436,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 101 : /* fall through */
       case 117 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x5)
-          { itype = SH4AL_INSN_MOVW3_COMPACT; sh4al_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVW3_COMPACT; sh4al_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 6 : /* fall through */
       case 22 : /* fall through */
       case 38 : /* fall through */
@@ -450,9 +446,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 102 : /* fall through */
       case 118 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6)
-          { itype = SH4AL_INSN_MOVL3_COMPACT; sh4al_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVL3_COMPACT; sh4al_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 7 : /* fall through */
       case 23 : /* fall through */
       case 39 : /* fall through */
@@ -462,9 +456,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 103 : /* fall through */
       case 119 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x7)
-          { itype = SH4AL_INSN_MULL_COMPACT; sh4al_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MULL_COMPACT; sh4al_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 8 :
         {
           unsigned int val = (((insn >> 22) & (1 << 0)));
@@ -507,9 +499,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 108 : /* fall through */
       case 124 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xc)
-          { itype = SH4AL_INSN_MOVB8_COMPACT; sh4al_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVB8_COMPACT; sh4al_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 13 : /* fall through */
       case 29 : /* fall through */
       case 45 : /* fall through */
@@ -519,9 +509,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 109 : /* fall through */
       case 125 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xd)
-          { itype = SH4AL_INSN_MOVW8_COMPACT; sh4al_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVW8_COMPACT; sh4al_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 14 : /* fall through */
       case 30 : /* fall through */
       case 46 : /* fall through */
@@ -531,9 +519,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 110 : /* fall through */
       case 126 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xe)
-          { itype = SH4AL_INSN_MOVL8_COMPACT; sh4al_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVL8_COMPACT; sh4al_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 15 : /* fall through */
       case 31 : /* fall through */
       case 47 : /* fall through */
@@ -543,9 +529,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 111 : /* fall through */
       case 127 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf)
-          { itype = SH4AL_INSN_MACL_COMPACT; sh4al_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MACL_COMPACT; sh4al_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 18 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x12)
@@ -616,14 +600,10 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x83)
-              { itype = SH4AL_INSN_PREF_COMPACT; sh4al_extract_sfmt_pref_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_PREF_COMPACT; sh4al_extract_sfmt_pref_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xc3)
-              { itype = SH4AL_INSN_MOVCAL_COMPACT; sh4al_extract_sfmt_movcal_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_MOVCAL_COMPACT; sh4al_extract_sfmt_movcal_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -771,9 +751,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 254 : /* fall through */
       case 255 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x1000)
-          { itype = SH4AL_INSN_MOVL5_COMPACT; sh4al_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVL5_COMPACT; sh4al_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 256 : /* fall through */
       case 272 : /* fall through */
       case 288 : /* fall through */
@@ -783,9 +761,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 352 : /* fall through */
       case 368 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2000)
-          { itype = SH4AL_INSN_MOVB1_COMPACT; sh4al_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVB1_COMPACT; sh4al_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 257 : /* fall through */
       case 273 : /* fall through */
       case 289 : /* fall through */
@@ -795,9 +771,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 353 : /* fall through */
       case 369 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2001)
-          { itype = SH4AL_INSN_MOVW1_COMPACT; sh4al_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVW1_COMPACT; sh4al_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 258 : /* fall through */
       case 274 : /* fall through */
       case 290 : /* fall through */
@@ -807,9 +781,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 354 : /* fall through */
       case 370 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2002)
-          { itype = SH4AL_INSN_MOVL1_COMPACT; sh4al_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVL1_COMPACT; sh4al_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 260 : /* fall through */
       case 276 : /* fall through */
       case 292 : /* fall through */
@@ -819,9 +791,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 356 : /* fall through */
       case 372 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2004)
-          { itype = SH4AL_INSN_MOVB2_COMPACT; sh4al_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVB2_COMPACT; sh4al_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 261 : /* fall through */
       case 277 : /* fall through */
       case 293 : /* fall through */
@@ -831,9 +801,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 357 : /* fall through */
       case 373 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2005)
-          { itype = SH4AL_INSN_MOVW2_COMPACT; sh4al_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVW2_COMPACT; sh4al_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 262 : /* fall through */
       case 278 : /* fall through */
       case 294 : /* fall through */
@@ -843,9 +811,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 358 : /* fall through */
       case 374 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2006)
-          { itype = SH4AL_INSN_MOVL2_COMPACT; sh4al_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVL2_COMPACT; sh4al_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 263 : /* fall through */
       case 279 : /* fall through */
       case 295 : /* fall through */
@@ -855,9 +821,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 359 : /* fall through */
       case 375 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2007)
-          { itype = SH4AL_INSN_DIV0S_COMPACT; sh4al_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_DIV0S_COMPACT; sh4al_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 264 : /* fall through */
       case 280 : /* fall through */
       case 296 : /* fall through */
@@ -867,9 +831,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 360 : /* fall through */
       case 376 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2008)
-          { itype = SH4AL_INSN_TST_COMPACT; sh4al_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_TST_COMPACT; sh4al_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 265 : /* fall through */
       case 281 : /* fall through */
       case 297 : /* fall through */
@@ -879,9 +841,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 361 : /* fall through */
       case 377 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2009)
-          { itype = SH4AL_INSN_AND_COMPACT; sh4al_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_AND_COMPACT; sh4al_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 266 : /* fall through */
       case 282 : /* fall through */
       case 298 : /* fall through */
@@ -891,9 +851,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 362 : /* fall through */
       case 378 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200a)
-          { itype = SH4AL_INSN_XOR_COMPACT; sh4al_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_XOR_COMPACT; sh4al_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 267 : /* fall through */
       case 283 : /* fall through */
       case 299 : /* fall through */
@@ -903,9 +861,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 363 : /* fall through */
       case 379 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200b)
-          { itype = SH4AL_INSN_OR_COMPACT; sh4al_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_OR_COMPACT; sh4al_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 268 : /* fall through */
       case 284 : /* fall through */
       case 300 : /* fall through */
@@ -915,9 +871,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 364 : /* fall through */
       case 380 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200c)
-          { itype = SH4AL_INSN_CMPSTR_COMPACT; sh4al_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_CMPSTR_COMPACT; sh4al_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 269 : /* fall through */
       case 285 : /* fall through */
       case 301 : /* fall through */
@@ -927,9 +881,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 365 : /* fall through */
       case 381 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200d)
-          { itype = SH4AL_INSN_XTRCT_COMPACT; sh4al_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_XTRCT_COMPACT; sh4al_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 270 : /* fall through */
       case 286 : /* fall through */
       case 302 : /* fall through */
@@ -939,9 +891,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 366 : /* fall through */
       case 382 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200e)
-          { itype = SH4AL_INSN_MULUW_COMPACT; sh4al_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MULUW_COMPACT; sh4al_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 271 : /* fall through */
       case 287 : /* fall through */
       case 303 : /* fall through */
@@ -951,9 +901,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 367 : /* fall through */
       case 383 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200f)
-          { itype = SH4AL_INSN_MULSW_COMPACT; sh4al_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MULSW_COMPACT; sh4al_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 384 : /* fall through */
       case 400 : /* fall through */
       case 416 : /* fall through */
@@ -963,9 +911,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 480 : /* fall through */
       case 496 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3000)
-          { itype = SH4AL_INSN_CMPEQ_COMPACT; sh4al_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_CMPEQ_COMPACT; sh4al_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 386 : /* fall through */
       case 402 : /* fall through */
       case 418 : /* fall through */
@@ -975,9 +921,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 482 : /* fall through */
       case 498 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3002)
-          { itype = SH4AL_INSN_CMPHS_COMPACT; sh4al_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_CMPHS_COMPACT; sh4al_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 387 : /* fall through */
       case 403 : /* fall through */
       case 419 : /* fall through */
@@ -987,9 +931,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 483 : /* fall through */
       case 499 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3003)
-          { itype = SH4AL_INSN_CMPGE_COMPACT; sh4al_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_CMPGE_COMPACT; sh4al_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 388 : /* fall through */
       case 404 : /* fall through */
       case 420 : /* fall through */
@@ -999,9 +941,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 484 : /* fall through */
       case 500 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3004)
-          { itype = SH4AL_INSN_DIV1_COMPACT; sh4al_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_DIV1_COMPACT; sh4al_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 389 : /* fall through */
       case 405 : /* fall through */
       case 421 : /* fall through */
@@ -1011,9 +951,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 485 : /* fall through */
       case 501 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3005)
-          { itype = SH4AL_INSN_DMULUL_COMPACT; sh4al_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_DMULUL_COMPACT; sh4al_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 390 : /* fall through */
       case 406 : /* fall through */
       case 422 : /* fall through */
@@ -1023,9 +961,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 486 : /* fall through */
       case 502 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3006)
-          { itype = SH4AL_INSN_CMPHI_COMPACT; sh4al_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_CMPHI_COMPACT; sh4al_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 391 : /* fall through */
       case 407 : /* fall through */
       case 423 : /* fall through */
@@ -1035,9 +971,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 487 : /* fall through */
       case 503 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3007)
-          { itype = SH4AL_INSN_CMPGT_COMPACT; sh4al_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_CMPGT_COMPACT; sh4al_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 392 : /* fall through */
       case 408 : /* fall through */
       case 424 : /* fall through */
@@ -1047,9 +981,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 488 : /* fall through */
       case 504 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3008)
-          { itype = SH4AL_INSN_SUB_COMPACT; sh4al_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_SUB_COMPACT; sh4al_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 394 : /* fall through */
       case 410 : /* fall through */
       case 426 : /* fall through */
@@ -1059,9 +991,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 490 : /* fall through */
       case 506 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300a)
-          { itype = SH4AL_INSN_SUBC_COMPACT; sh4al_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_SUBC_COMPACT; sh4al_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 395 : /* fall through */
       case 411 : /* fall through */
       case 427 : /* fall through */
@@ -1071,9 +1001,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 491 : /* fall through */
       case 507 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300b)
-          { itype = SH4AL_INSN_SUBV_COMPACT; sh4al_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_SUBV_COMPACT; sh4al_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 396 : /* fall through */
       case 412 : /* fall through */
       case 428 : /* fall through */
@@ -1083,9 +1011,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 492 : /* fall through */
       case 508 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300c)
-          { itype = SH4AL_INSN_ADD_COMPACT; sh4al_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_ADD_COMPACT; sh4al_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 397 : /* fall through */
       case 413 : /* fall through */
       case 429 : /* fall through */
@@ -1095,9 +1021,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 493 : /* fall through */
       case 509 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300d)
-          { itype = SH4AL_INSN_DMULSL_COMPACT; sh4al_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_DMULSL_COMPACT; sh4al_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 398 : /* fall through */
       case 414 : /* fall through */
       case 430 : /* fall through */
@@ -1107,9 +1031,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 494 : /* fall through */
       case 510 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300e)
-          { itype = SH4AL_INSN_ADDC_COMPACT; sh4al_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_ADDC_COMPACT; sh4al_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 399 : /* fall through */
       case 415 : /* fall through */
       case 431 : /* fall through */
@@ -1119,9 +1041,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 495 : /* fall through */
       case 511 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300f)
-          { itype = SH4AL_INSN_ADDV_COMPACT; sh4al_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_ADDV_COMPACT; sh4al_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 512 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x4000)
@@ -1181,9 +1101,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 620 : /* fall through */
       case 636 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400c)
-          { itype = SH4AL_INSN_SHAD_COMPACT; sh4al_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_SHAD_COMPACT; sh4al_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 525 : /* fall through */
       case 541 : /* fall through */
       case 557 : /* fall through */
@@ -1193,9 +1111,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 621 : /* fall through */
       case 637 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400d)
-          { itype = SH4AL_INSN_SHLD_COMPACT; sh4al_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_SHLD_COMPACT; sh4al_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 526 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x400e)
@@ -1210,9 +1126,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 623 : /* fall through */
       case 639 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400f)
-          { itype = SH4AL_INSN_MACW_COMPACT; sh4al_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MACW_COMPACT; sh4al_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 528 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x4010)
@@ -1345,14 +1259,10 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x40a9)
-              { itype = SH4AL_INSN_MOVUAL_COMPACT; sh4al_extract_sfmt_movual_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_MOVUAL_COMPACT; sh4al_extract_sfmt_movual_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x40e9)
-              { itype = SH4AL_INSN_MOVUAL2_COMPACT; sh4al_extract_sfmt_movual2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_MOVUAL2_COMPACT; sh4al_extract_sfmt_movual2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1485,9 +1395,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 766 : /* fall through */
       case 767 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x5000)
-          { itype = SH4AL_INSN_MOVL11_COMPACT; sh4al_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVL11_COMPACT; sh4al_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 768 : /* fall through */
       case 784 : /* fall through */
       case 800 : /* fall through */
@@ -1497,9 +1405,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 864 : /* fall through */
       case 880 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6000)
-          { itype = SH4AL_INSN_MOVB6_COMPACT; sh4al_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVB6_COMPACT; sh4al_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 769 : /* fall through */
       case 785 : /* fall through */
       case 801 : /* fall through */
@@ -1509,9 +1415,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 865 : /* fall through */
       case 881 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6001)
-          { itype = SH4AL_INSN_MOVW6_COMPACT; sh4al_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVW6_COMPACT; sh4al_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 770 : /* fall through */
       case 786 : /* fall through */
       case 802 : /* fall through */
@@ -1521,9 +1425,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 866 : /* fall through */
       case 882 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6002)
-          { itype = SH4AL_INSN_MOVL6_COMPACT; sh4al_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVL6_COMPACT; sh4al_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 771 : /* fall through */
       case 787 : /* fall through */
       case 803 : /* fall through */
@@ -1533,9 +1435,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 867 : /* fall through */
       case 883 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6003)
-          { itype = SH4AL_INSN_MOV_COMPACT; sh4al_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOV_COMPACT; sh4al_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 772 : /* fall through */
       case 788 : /* fall through */
       case 804 : /* fall through */
@@ -1545,9 +1445,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 868 : /* fall through */
       case 884 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6004)
-          { itype = SH4AL_INSN_MOVB7_COMPACT; sh4al_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVB7_COMPACT; sh4al_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 773 : /* fall through */
       case 789 : /* fall through */
       case 805 : /* fall through */
@@ -1557,9 +1455,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 869 : /* fall through */
       case 885 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6005)
-          { itype = SH4AL_INSN_MOVW7_COMPACT; sh4al_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVW7_COMPACT; sh4al_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 774 : /* fall through */
       case 790 : /* fall through */
       case 806 : /* fall through */
@@ -1569,9 +1465,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 870 : /* fall through */
       case 886 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6006)
-          { itype = SH4AL_INSN_MOVL7_COMPACT; sh4al_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVL7_COMPACT; sh4al_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 775 : /* fall through */
       case 791 : /* fall through */
       case 807 : /* fall through */
@@ -1581,9 +1475,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 871 : /* fall through */
       case 887 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6007)
-          { itype = SH4AL_INSN_NOT_COMPACT; sh4al_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_NOT_COMPACT; sh4al_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 776 : /* fall through */
       case 792 : /* fall through */
       case 808 : /* fall through */
@@ -1593,9 +1485,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 872 : /* fall through */
       case 888 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6008)
-          { itype = SH4AL_INSN_SWAPB_COMPACT; sh4al_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_SWAPB_COMPACT; sh4al_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 777 : /* fall through */
       case 793 : /* fall through */
       case 809 : /* fall through */
@@ -1605,9 +1495,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 873 : /* fall through */
       case 889 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6009)
-          { itype = SH4AL_INSN_SWAPW_COMPACT; sh4al_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_SWAPW_COMPACT; sh4al_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 778 : /* fall through */
       case 794 : /* fall through */
       case 810 : /* fall through */
@@ -1617,9 +1505,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 874 : /* fall through */
       case 890 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600a)
-          { itype = SH4AL_INSN_NEGC_COMPACT; sh4al_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_NEGC_COMPACT; sh4al_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 779 : /* fall through */
       case 795 : /* fall through */
       case 811 : /* fall through */
@@ -1629,9 +1515,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 875 : /* fall through */
       case 891 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600b)
-          { itype = SH4AL_INSN_NEG_COMPACT; sh4al_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_NEG_COMPACT; sh4al_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 780 : /* fall through */
       case 796 : /* fall through */
       case 812 : /* fall through */
@@ -1641,9 +1525,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 876 : /* fall through */
       case 892 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600c)
-          { itype = SH4AL_INSN_EXTUB_COMPACT; sh4al_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_EXTUB_COMPACT; sh4al_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 781 : /* fall through */
       case 797 : /* fall through */
       case 813 : /* fall through */
@@ -1653,9 +1535,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 877 : /* fall through */
       case 893 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600d)
-          { itype = SH4AL_INSN_EXTUW_COMPACT; sh4al_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_EXTUW_COMPACT; sh4al_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 782 : /* fall through */
       case 798 : /* fall through */
       case 814 : /* fall through */
@@ -1665,9 +1545,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 878 : /* fall through */
       case 894 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600e)
-          { itype = SH4AL_INSN_EXTSB_COMPACT; sh4al_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_EXTSB_COMPACT; sh4al_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 783 : /* fall through */
       case 799 : /* fall through */
       case 815 : /* fall through */
@@ -1677,9 +1555,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 879 : /* fall through */
       case 895 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600f)
-          { itype = SH4AL_INSN_EXTSW_COMPACT; sh4al_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_EXTSW_COMPACT; sh4al_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 896 : /* fall through */
       case 897 : /* fall through */
       case 898 : /* fall through */
@@ -1809,9 +1685,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 1022 : /* fall through */
       case 1023 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x7000)
-          { itype = SH4AL_INSN_ADDI_COMPACT; sh4al_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_ADDI_COMPACT; sh4al_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1024 : /* fall through */
       case 1025 : /* fall through */
       case 1026 : /* fall through */
@@ -1946,49 +1820,31 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8000)
-              { itype = SH4AL_INSN_MOVB5_COMPACT; sh4al_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_MOVB5_COMPACT; sh4al_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8100)
-              { itype = SH4AL_INSN_MOVW5_COMPACT; sh4al_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_MOVW5_COMPACT; sh4al_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8400)
-              { itype = SH4AL_INSN_MOVB10_COMPACT; sh4al_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_MOVB10_COMPACT; sh4al_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8500)
-              { itype = SH4AL_INSN_MOVW11_COMPACT; sh4al_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_MOVW11_COMPACT; sh4al_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8800)
-              { itype = SH4AL_INSN_CMPEQI_COMPACT; sh4al_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_CMPEQI_COMPACT; sh4al_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8900)
-              { itype = SH4AL_INSN_BT_COMPACT; sh4al_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_BT_COMPACT; sh4al_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8b00)
-              { itype = SH4AL_INSN_BF_COMPACT; sh4al_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_BF_COMPACT; sh4al_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8d00)
-              { itype = SH4AL_INSN_BTS_COMPACT; sh4al_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_BTS_COMPACT; sh4al_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8f00)
-              { itype = SH4AL_INSN_BFS_COMPACT; sh4al_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_BFS_COMPACT; sh4al_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -2121,9 +1977,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 1278 : /* fall through */
       case 1279 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x9000)
-          { itype = SH4AL_INSN_MOVW10_COMPACT; sh4al_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVW10_COMPACT; sh4al_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1280 : /* fall through */
       case 1281 : /* fall through */
       case 1282 : /* fall through */
@@ -2253,9 +2107,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 1406 : /* fall through */
       case 1407 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xa000)
-          { itype = SH4AL_INSN_BRA_COMPACT; sh4al_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_BRA_COMPACT; sh4al_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1408 : /* fall through */
       case 1409 : /* fall through */
       case 1410 : /* fall through */
@@ -2385,9 +2237,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 1534 : /* fall through */
       case 1535 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xb000)
-          { itype = SH4AL_INSN_BSR_COMPACT; sh4al_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_BSR_COMPACT; sh4al_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1536 : /* fall through */
       case 1537 : /* fall through */
       case 1538 : /* fall through */
@@ -2522,84 +2372,52 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc000)
-              { itype = SH4AL_INSN_MOVB4_COMPACT; sh4al_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_MOVB4_COMPACT; sh4al_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc100)
-              { itype = SH4AL_INSN_MOVW4_COMPACT; sh4al_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_MOVW4_COMPACT; sh4al_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc200)
-              { itype = SH4AL_INSN_MOVL4_COMPACT; sh4al_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_MOVL4_COMPACT; sh4al_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc300)
-              { itype = SH4AL_INSN_TRAPA_COMPACT; sh4al_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_TRAPA_COMPACT; sh4al_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc400)
-              { itype = SH4AL_INSN_MOVB9_COMPACT; sh4al_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_MOVB9_COMPACT; sh4al_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc500)
-              { itype = SH4AL_INSN_MOVW9_COMPACT; sh4al_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_MOVW9_COMPACT; sh4al_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 6 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc600)
-              { itype = SH4AL_INSN_MOVL9_COMPACT; sh4al_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_MOVL9_COMPACT; sh4al_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 7 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc700)
-              { itype = SH4AL_INSN_MOVA_COMPACT; sh4al_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_MOVA_COMPACT; sh4al_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc800)
-              { itype = SH4AL_INSN_TSTI_COMPACT; sh4al_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_TSTI_COMPACT; sh4al_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc900)
-              { itype = SH4AL_INSN_ANDI_COMPACT; sh4al_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_ANDI_COMPACT; sh4al_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 10 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xca00)
-              { itype = SH4AL_INSN_XORI_COMPACT; sh4al_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_XORI_COMPACT; sh4al_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcb00)
-              { itype = SH4AL_INSN_ORI_COMPACT; sh4al_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_ORI_COMPACT; sh4al_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 12 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcc00)
-              { itype = SH4AL_INSN_TSTB_COMPACT; sh4al_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_TSTB_COMPACT; sh4al_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcd00)
-              { itype = SH4AL_INSN_ANDB_COMPACT; sh4al_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_ANDB_COMPACT; sh4al_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 14 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xce00)
-              { itype = SH4AL_INSN_XORB_COMPACT; sh4al_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_XORB_COMPACT; sh4al_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcf00)
-              { itype = SH4AL_INSN_ORB_COMPACT; sh4al_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH4AL_INSN_ORB_COMPACT; sh4al_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -2732,9 +2550,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 1790 : /* fall through */
       case 1791 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xd000)
-          { itype = SH4AL_INSN_MOVL10_COMPACT; sh4al_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVL10_COMPACT; sh4al_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1792 : /* fall through */
       case 1793 : /* fall through */
       case 1794 : /* fall through */
@@ -2864,9 +2680,7 @@ sh4al_scache::decode (sh4al_cpu* current_cpu, PCADDR pc, sh4al_insn_word base_in
       case 1918 : /* fall through */
       case 1919 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xe000)
-          { itype = SH4AL_INSN_MOVI_COMPACT; sh4al_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH4AL_INSN_X_INVALID; sh4al_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH4AL_INSN_MOVI_COMPACT; sh4al_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 2045 :
         {
           unsigned int val = (((insn >> 27) & (1 << 0)));
index b14dd8e..223e128 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index a628e4c..efce2e4 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 919ec7f..8b97214 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index aa45074..0296dc2 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 9c9146a..ab1df02 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index c43e8ff..7e8c558 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index af5da1a..cc40bb2 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -532,10 +532,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 64 : /* fall through */
       case 80 : /* fall through */
       case 96 : /* fall through */
-      case 112 :
-        if ((entire_insn & 0xf00f0000) == 0x0)
-          { itype = SH5_COMPACT_INSN_MOVI20_COMPACT; sh5_compact_extract_sfmt_movi20_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 112 : itype = SH5_COMPACT_INSN_MOVI20_COMPACT; sh5_compact_extract_sfmt_movi20_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 3 :
         {
           unsigned int val = (((insn >> 23) & (1 << 0)));
@@ -543,14 +540,10 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x3)
-              { itype = SH5_COMPACT_INSN_BSRF_COMPACT; sh5_compact_extract_sfmt_bsrf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_BSRF_COMPACT; sh5_compact_extract_sfmt_bsrf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x83)
-              { itype = SH5_COMPACT_INSN_PREF_COMPACT; sh5_compact_extract_sfmt_pref_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_PREF_COMPACT; sh5_compact_extract_sfmt_pref_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -563,9 +556,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 100 : /* fall through */
       case 116 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x4)
-          { itype = SH5_COMPACT_INSN_MOVB3_COMPACT; sh5_compact_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVB3_COMPACT; sh5_compact_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 5 : /* fall through */
       case 21 : /* fall through */
       case 37 : /* fall through */
@@ -575,9 +566,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 101 : /* fall through */
       case 117 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x5)
-          { itype = SH5_COMPACT_INSN_MOVW3_COMPACT; sh5_compact_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVW3_COMPACT; sh5_compact_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 6 : /* fall through */
       case 22 : /* fall through */
       case 38 : /* fall through */
@@ -587,9 +576,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 102 : /* fall through */
       case 118 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6)
-          { itype = SH5_COMPACT_INSN_MOVL3_COMPACT; sh5_compact_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVL3_COMPACT; sh5_compact_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 7 : /* fall through */
       case 23 : /* fall through */
       case 39 : /* fall through */
@@ -599,9 +586,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 103 : /* fall through */
       case 119 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x7)
-          { itype = SH5_COMPACT_INSN_MULL_COMPACT; sh5_compact_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MULL_COMPACT; sh5_compact_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 8 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xffff) == 0x8)
@@ -631,9 +616,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 108 : /* fall through */
       case 124 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xc)
-          { itype = SH5_COMPACT_INSN_MOVB8_COMPACT; sh5_compact_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVB8_COMPACT; sh5_compact_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 13 : /* fall through */
       case 29 : /* fall through */
       case 45 : /* fall through */
@@ -643,9 +626,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 109 : /* fall through */
       case 125 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xd)
-          { itype = SH5_COMPACT_INSN_MOVW8_COMPACT; sh5_compact_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVW8_COMPACT; sh5_compact_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 14 : /* fall through */
       case 30 : /* fall through */
       case 46 : /* fall through */
@@ -655,9 +636,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 110 : /* fall through */
       case 126 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xe)
-          { itype = SH5_COMPACT_INSN_MOVL8_COMPACT; sh5_compact_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVL8_COMPACT; sh5_compact_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 15 : /* fall through */
       case 31 : /* fall through */
       case 47 : /* fall through */
@@ -667,9 +646,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 111 : /* fall through */
       case 127 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf)
-          { itype = SH5_COMPACT_INSN_MACL_COMPACT; sh5_compact_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MACL_COMPACT; sh5_compact_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 18 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x12)
@@ -707,14 +684,10 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x23)
-              { itype = SH5_COMPACT_INSN_BRAF_COMPACT; sh5_compact_extract_sfmt_braf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_BRAF_COMPACT; sh5_compact_extract_sfmt_braf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xa3)
-              { itype = SH5_COMPACT_INSN_OCBP_COMPACT; sh5_compact_extract_sfmt_movcol_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_OCBP_COMPACT; sh5_compact_extract_sfmt_movcol_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -902,9 +875,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 254 : /* fall through */
       case 255 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x1000)
-          { itype = SH5_COMPACT_INSN_MOVL5_COMPACT; sh5_compact_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVL5_COMPACT; sh5_compact_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 256 : /* fall through */
       case 272 : /* fall through */
       case 288 : /* fall through */
@@ -914,9 +885,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 352 : /* fall through */
       case 368 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2000)
-          { itype = SH5_COMPACT_INSN_MOVB1_COMPACT; sh5_compact_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVB1_COMPACT; sh5_compact_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 257 : /* fall through */
       case 273 : /* fall through */
       case 289 : /* fall through */
@@ -926,9 +895,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 353 : /* fall through */
       case 369 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2001)
-          { itype = SH5_COMPACT_INSN_MOVW1_COMPACT; sh5_compact_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVW1_COMPACT; sh5_compact_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 258 : /* fall through */
       case 274 : /* fall through */
       case 290 : /* fall through */
@@ -938,9 +905,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 354 : /* fall through */
       case 370 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2002)
-          { itype = SH5_COMPACT_INSN_MOVL1_COMPACT; sh5_compact_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVL1_COMPACT; sh5_compact_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 260 : /* fall through */
       case 276 : /* fall through */
       case 292 : /* fall through */
@@ -950,9 +915,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 356 : /* fall through */
       case 372 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2004)
-          { itype = SH5_COMPACT_INSN_MOVB2_COMPACT; sh5_compact_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVB2_COMPACT; sh5_compact_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 261 : /* fall through */
       case 277 : /* fall through */
       case 293 : /* fall through */
@@ -962,9 +925,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 357 : /* fall through */
       case 373 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2005)
-          { itype = SH5_COMPACT_INSN_MOVW2_COMPACT; sh5_compact_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVW2_COMPACT; sh5_compact_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 262 : /* fall through */
       case 278 : /* fall through */
       case 294 : /* fall through */
@@ -974,9 +935,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 358 : /* fall through */
       case 374 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2006)
-          { itype = SH5_COMPACT_INSN_MOVL2_COMPACT; sh5_compact_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVL2_COMPACT; sh5_compact_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 263 : /* fall through */
       case 279 : /* fall through */
       case 295 : /* fall through */
@@ -986,9 +945,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 359 : /* fall through */
       case 375 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2007)
-          { itype = SH5_COMPACT_INSN_DIV0S_COMPACT; sh5_compact_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_DIV0S_COMPACT; sh5_compact_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 264 : /* fall through */
       case 280 : /* fall through */
       case 296 : /* fall through */
@@ -998,9 +955,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 360 : /* fall through */
       case 376 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2008)
-          { itype = SH5_COMPACT_INSN_TST_COMPACT; sh5_compact_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_TST_COMPACT; sh5_compact_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 265 : /* fall through */
       case 281 : /* fall through */
       case 297 : /* fall through */
@@ -1010,9 +965,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 361 : /* fall through */
       case 377 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x2009)
-          { itype = SH5_COMPACT_INSN_AND_COMPACT; sh5_compact_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_AND_COMPACT; sh5_compact_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 266 : /* fall through */
       case 282 : /* fall through */
       case 298 : /* fall through */
@@ -1022,9 +975,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 362 : /* fall through */
       case 378 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200a)
-          { itype = SH5_COMPACT_INSN_XOR_COMPACT; sh5_compact_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_XOR_COMPACT; sh5_compact_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 267 : /* fall through */
       case 283 : /* fall through */
       case 299 : /* fall through */
@@ -1034,9 +985,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 363 : /* fall through */
       case 379 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200b)
-          { itype = SH5_COMPACT_INSN_OR_COMPACT; sh5_compact_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_OR_COMPACT; sh5_compact_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 268 : /* fall through */
       case 284 : /* fall through */
       case 300 : /* fall through */
@@ -1046,9 +995,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 364 : /* fall through */
       case 380 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200c)
-          { itype = SH5_COMPACT_INSN_CMPSTR_COMPACT; sh5_compact_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_CMPSTR_COMPACT; sh5_compact_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 269 : /* fall through */
       case 285 : /* fall through */
       case 301 : /* fall through */
@@ -1058,9 +1005,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 365 : /* fall through */
       case 381 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200d)
-          { itype = SH5_COMPACT_INSN_XTRCT_COMPACT; sh5_compact_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_XTRCT_COMPACT; sh5_compact_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 270 : /* fall through */
       case 286 : /* fall through */
       case 302 : /* fall through */
@@ -1070,9 +1015,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 366 : /* fall through */
       case 382 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200e)
-          { itype = SH5_COMPACT_INSN_MULUW_COMPACT; sh5_compact_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MULUW_COMPACT; sh5_compact_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 271 : /* fall through */
       case 287 : /* fall through */
       case 303 : /* fall through */
@@ -1082,9 +1025,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 367 : /* fall through */
       case 383 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x200f)
-          { itype = SH5_COMPACT_INSN_MULSW_COMPACT; sh5_compact_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MULSW_COMPACT; sh5_compact_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 384 : /* fall through */
       case 400 : /* fall through */
       case 416 : /* fall through */
@@ -1094,9 +1035,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 480 : /* fall through */
       case 496 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3000)
-          { itype = SH5_COMPACT_INSN_CMPEQ_COMPACT; sh5_compact_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_CMPEQ_COMPACT; sh5_compact_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 385 : /* fall through */
       case 417 : /* fall through */
       case 449 : /* fall through */
@@ -1133,9 +1072,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 482 : /* fall through */
       case 498 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3002)
-          { itype = SH5_COMPACT_INSN_CMPHS_COMPACT; sh5_compact_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_CMPHS_COMPACT; sh5_compact_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 387 : /* fall through */
       case 403 : /* fall through */
       case 419 : /* fall through */
@@ -1145,9 +1082,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 483 : /* fall through */
       case 499 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3003)
-          { itype = SH5_COMPACT_INSN_CMPGE_COMPACT; sh5_compact_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_CMPGE_COMPACT; sh5_compact_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 388 : /* fall through */
       case 404 : /* fall through */
       case 420 : /* fall through */
@@ -1157,9 +1092,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 484 : /* fall through */
       case 500 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3004)
-          { itype = SH5_COMPACT_INSN_DIV1_COMPACT; sh5_compact_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_DIV1_COMPACT; sh5_compact_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 389 : /* fall through */
       case 405 : /* fall through */
       case 421 : /* fall through */
@@ -1169,9 +1102,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 485 : /* fall through */
       case 501 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3005)
-          { itype = SH5_COMPACT_INSN_DMULUL_COMPACT; sh5_compact_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_DMULUL_COMPACT; sh5_compact_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 390 : /* fall through */
       case 406 : /* fall through */
       case 422 : /* fall through */
@@ -1181,9 +1112,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 486 : /* fall through */
       case 502 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3006)
-          { itype = SH5_COMPACT_INSN_CMPHI_COMPACT; sh5_compact_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_CMPHI_COMPACT; sh5_compact_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 391 : /* fall through */
       case 407 : /* fall through */
       case 423 : /* fall through */
@@ -1193,9 +1122,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 487 : /* fall through */
       case 503 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3007)
-          { itype = SH5_COMPACT_INSN_CMPGT_COMPACT; sh5_compact_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_CMPGT_COMPACT; sh5_compact_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 392 : /* fall through */
       case 408 : /* fall through */
       case 424 : /* fall through */
@@ -1205,9 +1132,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 488 : /* fall through */
       case 504 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x3008)
-          { itype = SH5_COMPACT_INSN_SUB_COMPACT; sh5_compact_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_SUB_COMPACT; sh5_compact_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 394 : /* fall through */
       case 410 : /* fall through */
       case 426 : /* fall through */
@@ -1217,9 +1142,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 490 : /* fall through */
       case 506 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300a)
-          { itype = SH5_COMPACT_INSN_SUBC_COMPACT; sh5_compact_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_SUBC_COMPACT; sh5_compact_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 395 : /* fall through */
       case 411 : /* fall through */
       case 427 : /* fall through */
@@ -1229,9 +1152,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 491 : /* fall through */
       case 507 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300b)
-          { itype = SH5_COMPACT_INSN_SUBV_COMPACT; sh5_compact_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_SUBV_COMPACT; sh5_compact_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 396 : /* fall through */
       case 412 : /* fall through */
       case 428 : /* fall through */
@@ -1241,9 +1162,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 492 : /* fall through */
       case 508 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300c)
-          { itype = SH5_COMPACT_INSN_ADD_COMPACT; sh5_compact_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_ADD_COMPACT; sh5_compact_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 397 : /* fall through */
       case 413 : /* fall through */
       case 429 : /* fall through */
@@ -1253,9 +1172,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 493 : /* fall through */
       case 509 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300d)
-          { itype = SH5_COMPACT_INSN_DMULSL_COMPACT; sh5_compact_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_DMULSL_COMPACT; sh5_compact_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 398 : /* fall through */
       case 414 : /* fall through */
       case 430 : /* fall through */
@@ -1265,9 +1182,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 494 : /* fall through */
       case 510 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300e)
-          { itype = SH5_COMPACT_INSN_ADDC_COMPACT; sh5_compact_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_ADDC_COMPACT; sh5_compact_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 399 : /* fall through */
       case 415 : /* fall through */
       case 431 : /* fall through */
@@ -1277,9 +1192,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 495 : /* fall through */
       case 511 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x300f)
-          { itype = SH5_COMPACT_INSN_ADDV_COMPACT; sh5_compact_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_ADDV_COMPACT; sh5_compact_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 401 : /* fall through */
       case 433 : /* fall through */
       case 465 : /* fall through */
@@ -1310,14 +1223,10 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x4000)
-              { itype = SH5_COMPACT_INSN_SHLL_COMPACT; sh5_compact_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_SHLL_COMPACT; sh5_compact_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x4080)
-              { itype = SH5_COMPACT_INSN_MULR_COMPACT; sh5_compact_extract_sfmt_divu_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_MULR_COMPACT; sh5_compact_extract_sfmt_divu_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1338,14 +1247,10 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x4004)
-              { itype = SH5_COMPACT_INSN_ROTL_COMPACT; sh5_compact_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_ROTL_COMPACT; sh5_compact_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x4084)
-              { itype = SH5_COMPACT_INSN_DIVU_COMPACT; sh5_compact_extract_sfmt_divu_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_DIVU_COMPACT; sh5_compact_extract_sfmt_divu_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1388,9 +1293,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 620 : /* fall through */
       case 636 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400c)
-          { itype = SH5_COMPACT_INSN_SHAD_COMPACT; sh5_compact_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_SHAD_COMPACT; sh5_compact_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 525 : /* fall through */
       case 541 : /* fall through */
       case 557 : /* fall through */
@@ -1400,9 +1303,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 621 : /* fall through */
       case 637 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400d)
-          { itype = SH5_COMPACT_INSN_SHLD_COMPACT; sh5_compact_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_SHLD_COMPACT; sh5_compact_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 526 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x400e)
@@ -1417,9 +1318,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 623 : /* fall through */
       case 639 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x400f)
-          { itype = SH5_COMPACT_INSN_MACW_COMPACT; sh5_compact_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MACW_COMPACT; sh5_compact_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 528 :
         entire_insn = entire_insn >> 16;
         if ((entire_insn & 0xf0ff) == 0x4010)
@@ -1532,14 +1431,10 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x4029)
-              { itype = SH5_COMPACT_INSN_SHLR16_COMPACT; sh5_compact_extract_sfmt_movcol_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_SHLR16_COMPACT; sh5_compact_extract_sfmt_movcol_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0x40a9)
-              { itype = SH5_COMPACT_INSN_MOVUAL_COMPACT; sh5_compact_extract_sfmt_movual_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_MOVUAL_COMPACT; sh5_compact_extract_sfmt_movual_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1722,9 +1617,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 766 : /* fall through */
       case 767 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x5000)
-          { itype = SH5_COMPACT_INSN_MOVL11_COMPACT; sh5_compact_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVL11_COMPACT; sh5_compact_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 768 : /* fall through */
       case 784 : /* fall through */
       case 800 : /* fall through */
@@ -1734,9 +1627,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 864 : /* fall through */
       case 880 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6000)
-          { itype = SH5_COMPACT_INSN_MOVB6_COMPACT; sh5_compact_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVB6_COMPACT; sh5_compact_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 769 : /* fall through */
       case 785 : /* fall through */
       case 801 : /* fall through */
@@ -1746,9 +1637,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 865 : /* fall through */
       case 881 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6001)
-          { itype = SH5_COMPACT_INSN_MOVW6_COMPACT; sh5_compact_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVW6_COMPACT; sh5_compact_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 770 : /* fall through */
       case 786 : /* fall through */
       case 802 : /* fall through */
@@ -1758,9 +1647,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 866 : /* fall through */
       case 882 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6002)
-          { itype = SH5_COMPACT_INSN_MOVL6_COMPACT; sh5_compact_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVL6_COMPACT; sh5_compact_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 771 : /* fall through */
       case 787 : /* fall through */
       case 803 : /* fall through */
@@ -1770,9 +1657,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 867 : /* fall through */
       case 883 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6003)
-          { itype = SH5_COMPACT_INSN_MOV_COMPACT; sh5_compact_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOV_COMPACT; sh5_compact_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 772 : /* fall through */
       case 788 : /* fall through */
       case 804 : /* fall through */
@@ -1782,9 +1667,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 868 : /* fall through */
       case 884 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6004)
-          { itype = SH5_COMPACT_INSN_MOVB7_COMPACT; sh5_compact_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVB7_COMPACT; sh5_compact_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 773 : /* fall through */
       case 789 : /* fall through */
       case 805 : /* fall through */
@@ -1794,9 +1677,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 869 : /* fall through */
       case 885 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6005)
-          { itype = SH5_COMPACT_INSN_MOVW7_COMPACT; sh5_compact_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVW7_COMPACT; sh5_compact_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 774 : /* fall through */
       case 790 : /* fall through */
       case 806 : /* fall through */
@@ -1806,9 +1687,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 870 : /* fall through */
       case 886 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6006)
-          { itype = SH5_COMPACT_INSN_MOVL7_COMPACT; sh5_compact_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVL7_COMPACT; sh5_compact_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 775 : /* fall through */
       case 791 : /* fall through */
       case 807 : /* fall through */
@@ -1818,9 +1697,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 871 : /* fall through */
       case 887 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6007)
-          { itype = SH5_COMPACT_INSN_NOT_COMPACT; sh5_compact_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_NOT_COMPACT; sh5_compact_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 776 : /* fall through */
       case 792 : /* fall through */
       case 808 : /* fall through */
@@ -1830,9 +1707,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 872 : /* fall through */
       case 888 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6008)
-          { itype = SH5_COMPACT_INSN_SWAPB_COMPACT; sh5_compact_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_SWAPB_COMPACT; sh5_compact_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 777 : /* fall through */
       case 793 : /* fall through */
       case 809 : /* fall through */
@@ -1842,9 +1717,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 873 : /* fall through */
       case 889 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x6009)
-          { itype = SH5_COMPACT_INSN_SWAPW_COMPACT; sh5_compact_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_SWAPW_COMPACT; sh5_compact_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 778 : /* fall through */
       case 794 : /* fall through */
       case 810 : /* fall through */
@@ -1854,9 +1727,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 874 : /* fall through */
       case 890 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600a)
-          { itype = SH5_COMPACT_INSN_NEGC_COMPACT; sh5_compact_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_NEGC_COMPACT; sh5_compact_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 779 : /* fall through */
       case 795 : /* fall through */
       case 811 : /* fall through */
@@ -1866,9 +1737,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 875 : /* fall through */
       case 891 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600b)
-          { itype = SH5_COMPACT_INSN_NEG_COMPACT; sh5_compact_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_NEG_COMPACT; sh5_compact_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 780 : /* fall through */
       case 796 : /* fall through */
       case 812 : /* fall through */
@@ -1878,9 +1747,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 876 : /* fall through */
       case 892 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600c)
-          { itype = SH5_COMPACT_INSN_EXTUB_COMPACT; sh5_compact_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_EXTUB_COMPACT; sh5_compact_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 781 : /* fall through */
       case 797 : /* fall through */
       case 813 : /* fall through */
@@ -1890,9 +1757,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 877 : /* fall through */
       case 893 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600d)
-          { itype = SH5_COMPACT_INSN_EXTUW_COMPACT; sh5_compact_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_EXTUW_COMPACT; sh5_compact_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 782 : /* fall through */
       case 798 : /* fall through */
       case 814 : /* fall through */
@@ -1902,9 +1767,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 878 : /* fall through */
       case 894 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600e)
-          { itype = SH5_COMPACT_INSN_EXTSB_COMPACT; sh5_compact_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_EXTSB_COMPACT; sh5_compact_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 783 : /* fall through */
       case 799 : /* fall through */
       case 815 : /* fall through */
@@ -1914,9 +1777,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 879 : /* fall through */
       case 895 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0x600f)
-          { itype = SH5_COMPACT_INSN_EXTSW_COMPACT; sh5_compact_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_EXTSW_COMPACT; sh5_compact_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 896 : /* fall through */
       case 897 : /* fall through */
       case 898 : /* fall through */
@@ -2046,9 +1907,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 1022 : /* fall through */
       case 1023 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x7000)
-          { itype = SH5_COMPACT_INSN_ADDI_COMPACT; sh5_compact_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_ADDI_COMPACT; sh5_compact_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1024 : /* fall through */
       case 1025 : /* fall through */
       case 1026 : /* fall through */
@@ -2183,49 +2042,31 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8000)
-              { itype = SH5_COMPACT_INSN_MOVB5_COMPACT; sh5_compact_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_MOVB5_COMPACT; sh5_compact_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8100)
-              { itype = SH5_COMPACT_INSN_MOVW5_COMPACT; sh5_compact_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_MOVW5_COMPACT; sh5_compact_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8400)
-              { itype = SH5_COMPACT_INSN_MOVB10_COMPACT; sh5_compact_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_MOVB10_COMPACT; sh5_compact_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8500)
-              { itype = SH5_COMPACT_INSN_MOVW11_COMPACT; sh5_compact_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_MOVW11_COMPACT; sh5_compact_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8800)
-              { itype = SH5_COMPACT_INSN_CMPEQI_COMPACT; sh5_compact_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_CMPEQI_COMPACT; sh5_compact_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8900)
-              { itype = SH5_COMPACT_INSN_BT_COMPACT; sh5_compact_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_BT_COMPACT; sh5_compact_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8b00)
-              { itype = SH5_COMPACT_INSN_BF_COMPACT; sh5_compact_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_BF_COMPACT; sh5_compact_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8d00)
-              { itype = SH5_COMPACT_INSN_BTS_COMPACT; sh5_compact_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_BTS_COMPACT; sh5_compact_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0x8f00)
-              { itype = SH5_COMPACT_INSN_BFS_COMPACT; sh5_compact_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_BFS_COMPACT; sh5_compact_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -2358,9 +2199,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 1278 : /* fall through */
       case 1279 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x9000)
-          { itype = SH5_COMPACT_INSN_MOVW10_COMPACT; sh5_compact_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVW10_COMPACT; sh5_compact_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1280 : /* fall through */
       case 1281 : /* fall through */
       case 1282 : /* fall through */
@@ -2490,9 +2329,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 1406 : /* fall through */
       case 1407 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xa000)
-          { itype = SH5_COMPACT_INSN_BRA_COMPACT; sh5_compact_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_BRA_COMPACT; sh5_compact_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1408 : /* fall through */
       case 1409 : /* fall through */
       case 1410 : /* fall through */
@@ -2622,9 +2459,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 1534 : /* fall through */
       case 1535 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xb000)
-          { itype = SH5_COMPACT_INSN_BSR_COMPACT; sh5_compact_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_BSR_COMPACT; sh5_compact_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1536 : /* fall through */
       case 1537 : /* fall through */
       case 1538 : /* fall through */
@@ -2759,84 +2594,52 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc000)
-              { itype = SH5_COMPACT_INSN_MOVB4_COMPACT; sh5_compact_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_MOVB4_COMPACT; sh5_compact_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc100)
-              { itype = SH5_COMPACT_INSN_MOVW4_COMPACT; sh5_compact_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_MOVW4_COMPACT; sh5_compact_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc200)
-              { itype = SH5_COMPACT_INSN_MOVL4_COMPACT; sh5_compact_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_MOVL4_COMPACT; sh5_compact_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc300)
-              { itype = SH5_COMPACT_INSN_TRAPA_COMPACT; sh5_compact_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_TRAPA_COMPACT; sh5_compact_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 4 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc400)
-              { itype = SH5_COMPACT_INSN_MOVB9_COMPACT; sh5_compact_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_MOVB9_COMPACT; sh5_compact_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc500)
-              { itype = SH5_COMPACT_INSN_MOVW9_COMPACT; sh5_compact_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_MOVW9_COMPACT; sh5_compact_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 6 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc600)
-              { itype = SH5_COMPACT_INSN_MOVL9_COMPACT; sh5_compact_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_MOVL9_COMPACT; sh5_compact_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 7 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc700)
-              { itype = SH5_COMPACT_INSN_MOVA_COMPACT; sh5_compact_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_MOVA_COMPACT; sh5_compact_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc800)
-              { itype = SH5_COMPACT_INSN_TSTI_COMPACT; sh5_compact_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_TSTI_COMPACT; sh5_compact_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 9 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xc900)
-              { itype = SH5_COMPACT_INSN_ANDI_COMPACT; sh5_compact_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_ANDI_COMPACT; sh5_compact_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 10 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xca00)
-              { itype = SH5_COMPACT_INSN_XORI_COMPACT; sh5_compact_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_XORI_COMPACT; sh5_compact_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 11 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcb00)
-              { itype = SH5_COMPACT_INSN_ORI_COMPACT; sh5_compact_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_ORI_COMPACT; sh5_compact_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 12 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcc00)
-              { itype = SH5_COMPACT_INSN_TSTB_COMPACT; sh5_compact_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_TSTB_COMPACT; sh5_compact_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 13 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcd00)
-              { itype = SH5_COMPACT_INSN_ANDB_COMPACT; sh5_compact_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_ANDB_COMPACT; sh5_compact_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 14 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xce00)
-              { itype = SH5_COMPACT_INSN_XORB_COMPACT; sh5_compact_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_XORB_COMPACT; sh5_compact_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xff00) == 0xcf00)
-              { itype = SH5_COMPACT_INSN_ORB_COMPACT; sh5_compact_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_ORB_COMPACT; sh5_compact_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -2969,9 +2772,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 1790 : /* fall through */
       case 1791 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xd000)
-          { itype = SH5_COMPACT_INSN_MOVL10_COMPACT; sh5_compact_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVL10_COMPACT; sh5_compact_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1792 : /* fall through */
       case 1793 : /* fall through */
       case 1794 : /* fall through */
@@ -3101,9 +2902,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 1918 : /* fall through */
       case 1919 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xe000)
-          { itype = SH5_COMPACT_INSN_MOVI_COMPACT; sh5_compact_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_MOVI_COMPACT; sh5_compact_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1920 : /* fall through */
       case 1936 : /* fall through */
       case 1952 : /* fall through */
@@ -3113,9 +2912,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 2016 : /* fall through */
       case 2032 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf000)
-          { itype = SH5_COMPACT_INSN_FADD_COMPACT; sh5_compact_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_FADD_COMPACT; sh5_compact_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1921 : /* fall through */
       case 1937 : /* fall through */
       case 1953 : /* fall through */
@@ -3125,9 +2922,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 2017 : /* fall through */
       case 2033 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf001)
-          { itype = SH5_COMPACT_INSN_FSUB_COMPACT; sh5_compact_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_FSUB_COMPACT; sh5_compact_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1922 : /* fall through */
       case 1938 : /* fall through */
       case 1954 : /* fall through */
@@ -3137,9 +2932,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 2018 : /* fall through */
       case 2034 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf002)
-          { itype = SH5_COMPACT_INSN_FMUL_COMPACT; sh5_compact_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_FMUL_COMPACT; sh5_compact_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1923 : /* fall through */
       case 1939 : /* fall through */
       case 1955 : /* fall through */
@@ -3149,9 +2942,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 2019 : /* fall through */
       case 2035 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf003)
-          { itype = SH5_COMPACT_INSN_FDIV_COMPACT; sh5_compact_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_FDIV_COMPACT; sh5_compact_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1924 : /* fall through */
       case 1940 : /* fall through */
       case 1956 : /* fall through */
@@ -3161,9 +2952,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 2020 : /* fall through */
       case 2036 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf004)
-          { itype = SH5_COMPACT_INSN_FCMPEQ_COMPACT; sh5_compact_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_FCMPEQ_COMPACT; sh5_compact_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1925 : /* fall through */
       case 1941 : /* fall through */
       case 1957 : /* fall through */
@@ -3173,9 +2962,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 2021 : /* fall through */
       case 2037 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf005)
-          { itype = SH5_COMPACT_INSN_FCMPGT_COMPACT; sh5_compact_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_FCMPGT_COMPACT; sh5_compact_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1926 : /* fall through */
       case 1942 : /* fall through */
       case 1958 : /* fall through */
@@ -3185,9 +2972,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 2022 : /* fall through */
       case 2038 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf006)
-          { itype = SH5_COMPACT_INSN_FMOV4_COMPACT; sh5_compact_extract_sfmt_fmov4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_FMOV4_COMPACT; sh5_compact_extract_sfmt_fmov4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1927 : /* fall through */
       case 1943 : /* fall through */
       case 1959 : /* fall through */
@@ -3197,9 +2982,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 2023 : /* fall through */
       case 2039 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf007)
-          { itype = SH5_COMPACT_INSN_FMOV7_COMPACT; sh5_compact_extract_sfmt_fmov7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_FMOV7_COMPACT; sh5_compact_extract_sfmt_fmov7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1928 : /* fall through */
       case 1944 : /* fall through */
       case 1960 : /* fall through */
@@ -3209,9 +2992,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 2024 : /* fall through */
       case 2040 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf008)
-          { itype = SH5_COMPACT_INSN_FMOV2_COMPACT; sh5_compact_extract_sfmt_fmov2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_FMOV2_COMPACT; sh5_compact_extract_sfmt_fmov2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1929 : /* fall through */
       case 1945 : /* fall through */
       case 1961 : /* fall through */
@@ -3221,9 +3002,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 2025 : /* fall through */
       case 2041 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf009)
-          { itype = SH5_COMPACT_INSN_FMOV3_COMPACT; sh5_compact_extract_sfmt_fmov3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_FMOV3_COMPACT; sh5_compact_extract_sfmt_fmov3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1930 : /* fall through */
       case 1946 : /* fall through */
       case 1962 : /* fall through */
@@ -3233,9 +3012,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 2026 : /* fall through */
       case 2042 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00a)
-          { itype = SH5_COMPACT_INSN_FMOV5_COMPACT; sh5_compact_extract_sfmt_fmov5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_FMOV5_COMPACT; sh5_compact_extract_sfmt_fmov5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1931 : /* fall through */
       case 1947 : /* fall through */
       case 1963 : /* fall through */
@@ -3245,9 +3022,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 2027 : /* fall through */
       case 2043 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00b)
-          { itype = SH5_COMPACT_INSN_FMOV6_COMPACT; sh5_compact_extract_sfmt_fmov6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_FMOV6_COMPACT; sh5_compact_extract_sfmt_fmov6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1932 : /* fall through */
       case 1948 : /* fall through */
       case 1964 : /* fall through */
@@ -3257,9 +3032,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 2028 : /* fall through */
       case 2044 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00c)
-          { itype = SH5_COMPACT_INSN_FMOV1_COMPACT; sh5_compact_extract_sfmt_fmov1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_FMOV1_COMPACT; sh5_compact_extract_sfmt_fmov1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1933 :
         {
           unsigned int val = (((insn >> 23) & (1 << 0)));
@@ -3267,14 +3040,10 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf00d)
-              { itype = SH5_COMPACT_INSN_FSTS_COMPACT; sh5_compact_extract_sfmt_fsts_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_FSTS_COMPACT; sh5_compact_extract_sfmt_fsts_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf08d)
-              { itype = SH5_COMPACT_INSN_FLDI0_COMPACT; sh5_compact_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_FLDI0_COMPACT; sh5_compact_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -3287,9 +3056,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
       case 2030 : /* fall through */
       case 2046 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf00f) == 0xf00e)
-          { itype = SH5_COMPACT_INSN_FMAC_COMPACT; sh5_compact_extract_sfmt_fmac_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = SH5_COMPACT_INSN_FMAC_COMPACT; sh5_compact_extract_sfmt_fmac_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1949 :
         {
           unsigned int val = (((insn >> 23) & (1 << 0)));
@@ -3297,14 +3064,10 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf01d)
-              { itype = SH5_COMPACT_INSN_FLDS_COMPACT; sh5_compact_extract_sfmt_flds_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_FLDS_COMPACT; sh5_compact_extract_sfmt_flds_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf09d)
-              { itype = SH5_COMPACT_INSN_FLDI1_COMPACT; sh5_compact_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_FLDI1_COMPACT; sh5_compact_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -3315,9 +3078,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf02d)
-              { itype = SH5_COMPACT_INSN_FLOAT_COMPACT; sh5_compact_extract_sfmt_float_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_FLOAT_COMPACT; sh5_compact_extract_sfmt_float_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
             if ((entire_insn & 0xf1ff) == 0xf0ad)
@@ -3333,9 +3094,7 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf03d)
-              { itype = SH5_COMPACT_INSN_FTRC_COMPACT; sh5_compact_extract_sfmt_ftrc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_FTRC_COMPACT; sh5_compact_extract_sfmt_ftrc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
             if ((entire_insn & 0xf1ff) == 0xf0bd)
@@ -3361,14 +3120,10 @@ sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_wo
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf06d)
-              { itype = SH5_COMPACT_INSN_FSQRT_COMPACT; sh5_compact_extract_sfmt_fabs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_FSQRT_COMPACT; sh5_compact_extract_sfmt_fabs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf0ff) == 0xf0ed)
-              { itype = SH5_COMPACT_INSN_FIPR_COMPACT; sh5_compact_extract_sfmt_fipr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = SH5_COMPACT_INSN_FIPR_COMPACT; sh5_compact_extract_sfmt_fipr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
index d29d585..12a7b42 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 8fcd436..82ec6c6 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 54c808c..a785ec9 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 9529e05..d6195ee 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 588441c..9889e76 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index ec1b3a8..2b162bf 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index d430f10..5b6bdff 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -123,7 +123,7 @@ current_cpu->hardware.h_pc = ANDDI (newval, INVDI (1));
 }
  }
 
-  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (0) : (current_cpu->hardware.h_gr[regno])); }
+  inline DI h_gr_get (UINT regno) const { return ((((regno) == (63))) ? (MAKEDI (0, 0)) : (current_cpu->hardware.h_gr[regno])); }
   inline void h_gr_set (UINT regno, DI newval) { if (((regno) != (63))) {
 current_cpu->hardware.h_gr[regno] = newval;
 } else {
index 491bcdb..73dd244 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -363,8 +363,6 @@ sh5_media_extract_sfmt_mcmv (sh5_media_scache* abuf, sh5_cpu* current_cpu, PCADD
 static void
 sh5_media_extract_sfmt_movi (sh5_media_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_media_insn_word base_insn, sh5_media_insn_word entire_insn);
 static void
-sh5_media_extract_sfmt_mpermw (sh5_media_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_media_insn_word base_insn, sh5_media_insn_word entire_insn);
-static void
 sh5_media_extract_sfmt_nop (sh5_media_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_media_insn_word base_insn, sh5_media_insn_word entire_insn);
 static void
 sh5_media_extract_sfmt_ori (sh5_media_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_media_insn_word base_insn, sh5_media_insn_word entire_insn);
@@ -381,8 +379,6 @@ sh5_media_extract_sfmt_putcon (sh5_media_scache* abuf, sh5_cpu* current_cpu, PCA
 static void
 sh5_media_extract_sfmt_shari (sh5_media_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_media_insn_word base_insn, sh5_media_insn_word entire_insn);
 static void
-sh5_media_extract_sfmt_sharil (sh5_media_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_media_insn_word base_insn, sh5_media_insn_word entire_insn);
-static void
 sh5_media_extract_sfmt_shori (sh5_media_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_media_insn_word base_insn, sh5_media_insn_word entire_insn);
 static void
 sh5_media_extract_sfmt_stb (sh5_media_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_media_insn_word base_insn, sh5_media_insn_word entire_insn);
@@ -699,7 +695,7 @@ sh5_media_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_media_insn_word b
         itype = SH5_MEDIA_INSN_X_INVALID; sh5_media_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 173 :
         if ((entire_insn & 0xfc0f000f) == 0x280d0000)
-          { itype = SH5_MEDIA_INSN_MPERMW; sh5_media_extract_sfmt_mpermw (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+          { itype = SH5_MEDIA_INSN_MPERMW; sh5_media_extract_sfmt_add (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = SH5_MEDIA_INSN_X_INVALID; sh5_media_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 175 :
         if ((entire_insn & 0xfc0f000f) == 0x280f0000)
@@ -1391,7 +1387,7 @@ sh5_media_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_media_insn_word b
         itype = SH5_MEDIA_INSN_X_INVALID; sh5_media_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 784 :
         if ((entire_insn & 0xfc0f000f) == 0xc4000000)
-          { itype = SH5_MEDIA_INSN_SHLLIL; sh5_media_extract_sfmt_sharil (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+          { itype = SH5_MEDIA_INSN_SHLLIL; sh5_media_extract_sfmt_shari (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = SH5_MEDIA_INSN_X_INVALID; sh5_media_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 785 :
         if ((entire_insn & 0xfc0f000f) == 0xc4010000)
@@ -1399,7 +1395,7 @@ sh5_media_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_media_insn_word b
         itype = SH5_MEDIA_INSN_X_INVALID; sh5_media_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 786 :
         if ((entire_insn & 0xfc0f000f) == 0xc4020000)
-          { itype = SH5_MEDIA_INSN_SHLRIL; sh5_media_extract_sfmt_sharil (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+          { itype = SH5_MEDIA_INSN_SHLRIL; sh5_media_extract_sfmt_shari (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = SH5_MEDIA_INSN_X_INVALID; sh5_media_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 787 :
         if ((entire_insn & 0xfc0f000f) == 0xc4030000)
@@ -1407,7 +1403,7 @@ sh5_media_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_media_insn_word b
         itype = SH5_MEDIA_INSN_X_INVALID; sh5_media_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 790 :
         if ((entire_insn & 0xfc0f000f) == 0xc4060000)
-          { itype = SH5_MEDIA_INSN_SHARIL; sh5_media_extract_sfmt_sharil (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+          { itype = SH5_MEDIA_INSN_SHARIL; sh5_media_extract_sfmt_shari (this, current_cpu, pc, base_insn, entire_insn); goto done; }
         itype = SH5_MEDIA_INSN_X_INVALID; sh5_media_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 791 :
         if ((entire_insn & 0xfc0f000f) == 0xc4070000)
@@ -3553,42 +3549,6 @@ sh5_media_extract_sfmt_movi (sh5_media_scache* abuf, sh5_cpu* current_cpu, PCADD
 }
 
 void
-sh5_media_extract_sfmt_mpermw (sh5_media_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_media_insn_word base_insn, sh5_media_insn_word entire_insn){
-    sh5_media_insn_word insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_mcmv.f
-    UINT f_left;
-    UINT f_right;
-    UINT f_dest;
-
-    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
-    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
-
-  /* Record the fields for the semantic handler.  */
-  FLD (f_left) = f_left;
-  FLD (f_right) = f_right;
-  FLD (f_dest) = f_dest;
-  if (UNLIKELY(current_cpu->trace_extract_p))
-    {
-      current_cpu->trace_stream 
-        << "0x" << hex << pc << dec << " (sfmt_mpermw)\t"
-        << " f_left:0x" << hex << f_left << dec
-        << " f_right:0x" << hex << f_right << dec
-        << " f_dest:0x" << hex << f_dest << dec
-        << endl;
-    }
-
-  /* Record the fields for profiling.  */
-  if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
-    {
-      FLD (in_rm) = f_left;
-      FLD (in_rn) = f_right;
-      FLD (out_rd) = f_dest;
-    }
-#undef FLD
-}
-
-void
 sh5_media_extract_sfmt_nop (sh5_media_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_media_insn_word base_insn, sh5_media_insn_word entire_insn){
     sh5_media_insn_word insn = entire_insn;
 #define FLD(f) abuf->fields.fmt_empty.f
@@ -3845,41 +3805,6 @@ sh5_media_extract_sfmt_shari (sh5_media_scache* abuf, sh5_cpu* current_cpu, PCAD
 }
 
 void
-sh5_media_extract_sfmt_sharil (sh5_media_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_media_insn_word base_insn, sh5_media_insn_word entire_insn){
-    sh5_media_insn_word insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_shari.f
-    UINT f_left;
-    UINT f_uimm6;
-    UINT f_dest;
-
-    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_uimm6 = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
-    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
-
-  /* Record the fields for the semantic handler.  */
-  FLD (f_left) = f_left;
-  FLD (f_uimm6) = f_uimm6;
-  FLD (f_dest) = f_dest;
-  if (UNLIKELY(current_cpu->trace_extract_p))
-    {
-      current_cpu->trace_stream 
-        << "0x" << hex << pc << dec << " (sfmt_sharil)\t"
-        << " f_left:0x" << hex << f_left << dec
-        << " f_uimm6:0x" << hex << f_uimm6 << dec
-        << " f_dest:0x" << hex << f_dest << dec
-        << endl;
-    }
-
-  /* Record the fields for profiling.  */
-  if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
-    {
-      FLD (in_rm) = f_left;
-      FLD (out_rd) = f_dest;
-    }
-#undef FLD
-}
-
-void
 sh5_media_extract_sfmt_shori (sh5_media_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_media_insn_word base_insn, sh5_media_insn_word entire_insn){
     sh5_media_insn_word insn = entire_insn;
 #define FLD(f) abuf->fields.sfmt_shori.f
index 5726711..e941a5f 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 618ac89..b6ee194 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 2c2c49e..ab0de1d 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 119a4c3..b8dcb68 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index aece5d7..c5e8a9b 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 962cc86..7b01bcc 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index c70f16c..371345c 100644 (file)
@@ -1,6 +1,6 @@
 #include "bfd.h"
 #include "dis-asm.h"
-#include "opcode/cgen-bitset.h"
+#include "cgen/bitset.h"
 
 // ansidecl.h interferes with this perfectly ordinary word
 #undef AND
index 0d24e3d..16d3be4 100644 (file)
@@ -1,3 +1,8 @@
+2009-10-23  Doug Evans  <dje@sebabeach.org>
+
+       * xstormy16-desc.h: Regenerate.
+       * xstormy16-decode.cxx: Regenerate.
+
 2008-06-17  Dave Brolley  <brolley@redhat.com>
 
        * xstormy16.h (xstormy16_cpu_cgen): Now inherits from
index b546e37..510e253 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2007 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 4235909..b919e24 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -261,14 +261,8 @@ xstormy16_extract_sfmt_andimm8 (xstormy16_scache* abuf, xstormy16_cpu* current_c
 static void
 xstormy16_extract_sfmt_andgrimm16 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
 static void
-xstormy16_extract_sfmt_addgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
-static void
 xstormy16_extract_sfmt_addgrimm4 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
 static void
-xstormy16_extract_sfmt_addimm8 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
-static void
-xstormy16_extract_sfmt_addgrimm16 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
-static void
 xstormy16_extract_sfmt_adcgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
 static void
 xstormy16_extract_sfmt_adcgrimm4 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
@@ -279,20 +273,10 @@ xstormy16_extract_sfmt_adcgrimm16 (xstormy16_scache* abuf, xstormy16_cpu* curren
 static void
 xstormy16_extract_sfmt_incgrimm2 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
 static void
-xstormy16_extract_sfmt_rrcgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
-static void
-xstormy16_extract_sfmt_rrcgrimm4 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
-static void
 xstormy16_extract_sfmt_shrgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
 static void
 xstormy16_extract_sfmt_shrgrimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
 static void
-xstormy16_extract_sfmt_asrgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
-static void
-xstormy16_extract_sfmt_asrgrimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
-static void
-xstormy16_extract_sfmt_set1grimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
-static void
 xstormy16_extract_sfmt_set1lmemimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
 static void
 xstormy16_extract_sfmt_set1hmemimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
@@ -341,8 +325,6 @@ xstormy16_extract_sfmt_ret (xstormy16_scache* abuf, xstormy16_cpu* current_cpu,
 static void
 xstormy16_extract_sfmt_mul (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
 static void
-xstormy16_extract_sfmt_sdiv (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
-static void
 xstormy16_extract_sfmt_sdivlh (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
 static void
 xstormy16_extract_sfmt_reset (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
@@ -368,29 +350,19 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xffff) == 0x0)
-              { itype = XSTORMY16_INSN_NOP; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_NOP; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xffff) == 0x1)
-              { itype = XSTORMY16_INSN_SYSCALL; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_SYSCALL; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xffff) == 0x2)
-              { itype = XSTORMY16_INSN_IRET; xstormy16_extract_sfmt_iret (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_IRET; xstormy16_extract_sfmt_iret (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xffff) == 0x3)
-              { itype = XSTORMY16_INSN_RET; xstormy16_extract_sfmt_ret (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_RET; xstormy16_extract_sfmt_ret (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 5 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xffff) == 0x5)
-              { itype = XSTORMY16_INSN_BRK; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_BRK; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 : /* fall through */
           case 9 : /* fall through */
           case 10 : /* fall through */
@@ -400,9 +372,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           case 14 : /* fall through */
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xfff0) == 0x10)
-              { itype = XSTORMY16_INSN_CALLRGR; xstormy16_extract_sfmt_callrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_CALLRGR; xstormy16_extract_sfmt_callrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 16 : /* fall through */
           case 17 : /* fall through */
           case 18 : /* fall through */
@@ -412,9 +382,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           case 22 : /* fall through */
           case 23 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xfff0) == 0x20)
-              { itype = XSTORMY16_INSN_BGR; xstormy16_extract_sfmt_bgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_BGR; xstormy16_extract_sfmt_bgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 24 : /* fall through */
           case 25 : /* fall through */
           case 26 : /* fall through */
@@ -424,9 +392,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           case 30 : /* fall through */
           case 31 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xfff0) == 0x30)
-              { itype = XSTORMY16_INSN_ICALLRGR; xstormy16_extract_sfmt_icallrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_ICALLRGR; xstormy16_extract_sfmt_icallrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -437,24 +403,16 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xffff) == 0x8)
-              { itype = XSTORMY16_INSN_HALT; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_HALT; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xffff) == 0xa)
-              { itype = XSTORMY16_INSN_HOLD; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_HOLD; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xffff) == 0xb)
-              { itype = XSTORMY16_INSN_HOLDX; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_HOLDX; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 7 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xffff) == 0xf)
-              { itype = XSTORMY16_INSN_RESET; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_RESET; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 8 : /* fall through */
           case 9 : /* fall through */
           case 10 : /* fall through */
@@ -464,9 +422,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           case 14 : /* fall through */
           case 15 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xfff0) == 0x10)
-              { itype = XSTORMY16_INSN_CALLRGR; xstormy16_extract_sfmt_callrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_CALLRGR; xstormy16_extract_sfmt_callrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 16 : /* fall through */
           case 17 : /* fall through */
           case 18 : /* fall through */
@@ -476,9 +432,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           case 22 : /* fall through */
           case 23 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xfff0) == 0x20)
-              { itype = XSTORMY16_INSN_BGR; xstormy16_extract_sfmt_bgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_BGR; xstormy16_extract_sfmt_bgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 24 : /* fall through */
           case 25 : /* fall through */
           case 26 : /* fall through */
@@ -488,9 +442,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           case 30 : /* fall through */
           case 31 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xfff0) == 0x30)
-              { itype = XSTORMY16_INSN_ICALLRGR; xstormy16_extract_sfmt_icallrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_ICALLRGR; xstormy16_extract_sfmt_icallrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -502,14 +454,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xffe0) == 0x40)
-              { itype = XSTORMY16_INSN_JMP; xstormy16_extract_sfmt_jmp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_JMP; xstormy16_extract_sfmt_jmp (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xffe0) == 0x60)
-              { itype = XSTORMY16_INSN_ICALLGR; xstormy16_extract_sfmt_icallgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_ICALLGR; xstormy16_extract_sfmt_icallgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -521,20 +469,14 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xfff0) == 0x80)
-              { itype = XSTORMY16_INSN_PUSHGR; xstormy16_extract_sfmt_pushgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_PUSHGR; xstormy16_extract_sfmt_pushgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xfff0) == 0x90)
-              { itype = XSTORMY16_INSN_POPGR; xstormy16_extract_sfmt_popgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_POPGR; xstormy16_extract_sfmt_popgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 : /* fall through */
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xffe0) == 0xa0)
-              { itype = XSTORMY16_INSN_CALLGR; xstormy16_extract_sfmt_callgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_CALLGR; xstormy16_extract_sfmt_callgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -569,7 +511,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           case 0 :
             entire_insn = entire_insn >> 16;
             if ((entire_insn & 0xffff) == 0xc8)
-              { itype = XSTORMY16_INSN_SDIV; xstormy16_extract_sfmt_sdiv (this, current_cpu, pc, base_insn, entire_insn); goto done; }
+              { itype = XSTORMY16_INSN_SDIV; xstormy16_extract_sfmt_mul (this, current_cpu, pc, base_insn, entire_insn); goto done; }
             itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
@@ -586,10 +528,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 12 : /* fall through */
       case 13 : /* fall through */
       case 14 : /* fall through */
-      case 15 :
-        if ((entire_insn & 0xff000000) == 0x1000000)
-          { itype = XSTORMY16_INSN_CALLFIMM; xstormy16_extract_sfmt_callfimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 15 : itype = XSTORMY16_INSN_CALLFIMM; xstormy16_extract_sfmt_callfimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 16 : /* fall through */
       case 17 : /* fall through */
       case 18 : /* fall through */
@@ -597,10 +536,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 20 : /* fall through */
       case 21 : /* fall through */
       case 22 : /* fall through */
-      case 23 :
-        if ((entire_insn & 0xff000000) == 0x2000000)
-          { itype = XSTORMY16_INSN_JMPF; xstormy16_extract_sfmt_jmpf (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 23 : itype = XSTORMY16_INSN_JMPF; xstormy16_extract_sfmt_jmpf (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 24 : /* fall through */
       case 25 : /* fall through */
       case 26 : /* fall through */
@@ -608,10 +544,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 28 : /* fall through */
       case 29 : /* fall through */
       case 30 : /* fall through */
-      case 31 :
-        if ((entire_insn & 0xff000000) == 0x3000000)
-          { itype = XSTORMY16_INSN_ICALLFIMM; xstormy16_extract_sfmt_icallfimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 31 : itype = XSTORMY16_INSN_ICALLFIMM; xstormy16_extract_sfmt_icallfimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 32 : /* fall through */
       case 33 : /* fall through */
       case 34 : /* fall through */
@@ -665,9 +598,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 70 : /* fall through */
       case 71 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x800)
-          { itype = XSTORMY16_INSN_CLR1GRIMM; xstormy16_extract_sfmt_set1grimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_CLR1GRIMM; xstormy16_extract_sfmt_addgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 72 : /* fall through */
       case 73 : /* fall through */
       case 74 : /* fall through */
@@ -677,9 +608,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 78 : /* fall through */
       case 79 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x900)
-          { itype = XSTORMY16_INSN_SET1GRIMM; xstormy16_extract_sfmt_set1grimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_SET1GRIMM; xstormy16_extract_sfmt_addgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 80 : /* fall through */
       case 81 : /* fall through */
       case 82 : /* fall through */
@@ -689,9 +618,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 86 : /* fall through */
       case 87 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0xa00)
-          { itype = XSTORMY16_INSN_CLR1GRGR; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_CLR1GRGR; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 88 : /* fall through */
       case 89 : /* fall through */
       case 90 : /* fall through */
@@ -701,9 +628,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 94 : /* fall through */
       case 95 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0xb00)
-          { itype = XSTORMY16_INSN_SET1GRGR; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_SET1GRGR; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 104 : /* fall through */
       case 105 : /* fall through */
       case 106 : /* fall through */
@@ -711,10 +636,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 108 : /* fall through */
       case 109 : /* fall through */
       case 110 : /* fall through */
-      case 111 :
-        if ((entire_insn & 0xff000000) == 0xd000000)
-          { itype = XSTORMY16_INSN_BCCGRGR; xstormy16_extract_sfmt_bccgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 111 : itype = XSTORMY16_INSN_BCCGRGR; xstormy16_extract_sfmt_bccgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 128 : /* fall through */
       case 129 : /* fall through */
       case 130 : /* fall through */
@@ -849,14 +771,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf001) == 0x1000)
-              { itype = XSTORMY16_INSN_BR; xstormy16_extract_sfmt_br (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_BR; xstormy16_extract_sfmt_br (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xf001) == 0x1001)
-              { itype = XSTORMY16_INSN_CALLRIMM; xstormy16_extract_sfmt_callrimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_CALLRIMM; xstormy16_extract_sfmt_callrimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -923,10 +841,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 372 : /* fall through */
       case 373 : /* fall through */
       case 374 : /* fall through */
-      case 375 :
-        if ((entire_insn & 0xf1000000) == 0x20000000)
-          { itype = XSTORMY16_INSN_BCCGRIMM8; xstormy16_extract_sfmt_bccgrimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 375 : itype = XSTORMY16_INSN_BCCGRIMM8; xstormy16_extract_sfmt_bccgrimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 264 : /* fall through */
       case 265 : /* fall through */
       case 266 : /* fall through */
@@ -992,21 +907,15 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 382 : /* fall through */
       case 383 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf100) == 0x2100)
-          { itype = XSTORMY16_INSN_MOVWGRIMM8; xstormy16_extract_sfmt_movwgrimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_MOVWGRIMM8; xstormy16_extract_sfmt_movwgrimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 384 : /* fall through */
       case 385 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xffc0) == 0x3000)
-          { itype = XSTORMY16_INSN_INCGRIMM2; xstormy16_extract_sfmt_incgrimm2 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_INCGRIMM2; xstormy16_extract_sfmt_incgrimm2 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 386 : /* fall through */
       case 387 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xffc0) == 0x3040)
-          { itype = XSTORMY16_INSN_DECGRIMM2; xstormy16_extract_sfmt_incgrimm2 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_DECGRIMM2; xstormy16_extract_sfmt_incgrimm2 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 388 : /* fall through */
       case 389 :
         {
@@ -1015,24 +924,16 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xfff0) == 0x3080)
-              { itype = XSTORMY16_INSN_SWPB; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_SWPB; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xfff0) == 0x3090)
-              { itype = XSTORMY16_INSN_SWPN; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_SWPN; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 2 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xfff0) == 0x30a0)
-              { itype = XSTORMY16_INSN_CBWGR; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_CBWGR; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xfff0) == 0x30b0)
-              { itype = XSTORMY16_INSN_NOTGR; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_NOTGR; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1044,23 +945,14 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           {
           case 0 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xfff0) == 0x30c0)
-              { itype = XSTORMY16_INSN_MOVLOWGR; xstormy16_extract_sfmt_movlowgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_MOVLOWGR; xstormy16_extract_sfmt_movlowgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 1 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xfff0) == 0x30d0)
-              { itype = XSTORMY16_INSN_MOVHIGHGR; xstormy16_extract_sfmt_movlowgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 2 :
-            if ((entire_insn & 0xfff00000) == 0x30e00000)
-              { itype = XSTORMY16_INSN_MASKGRIMM16; xstormy16_extract_sfmt_maskgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_MOVHIGHGR; xstormy16_extract_sfmt_movlowgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 2 : itype = XSTORMY16_INSN_MASKGRIMM16; xstormy16_extract_sfmt_maskgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           case 3 :
             entire_insn = entire_insn >> 16;
-            if ((entire_insn & 0xfff0) == 0x30f0)
-              { itype = XSTORMY16_INSN_REVGR; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+            itype = XSTORMY16_INSN_REVGR; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1070,22 +962,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           unsigned int val = (((insn >> 20) & (3 << 0)));
           switch (val)
           {
-          case 0 :
-            if ((entire_insn & 0xfff00000) == 0x31000000)
-              { itype = XSTORMY16_INSN_ANDGRIMM16; xstormy16_extract_sfmt_andgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 :
-            if ((entire_insn & 0xfff00000) == 0x31100000)
-              { itype = XSTORMY16_INSN_ORGRIMM16; xstormy16_extract_sfmt_andgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 2 :
-            if ((entire_insn & 0xfff00000) == 0x31200000)
-              { itype = XSTORMY16_INSN_XORGRIMM16; xstormy16_extract_sfmt_andgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 3 :
-            if ((entire_insn & 0xfff00000) == 0x31300000)
-              { itype = XSTORMY16_INSN_MOVWGRIMM16; xstormy16_extract_sfmt_movwgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 : itype = XSTORMY16_INSN_ANDGRIMM16; xstormy16_extract_sfmt_andgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 : itype = XSTORMY16_INSN_ORGRIMM16; xstormy16_extract_sfmt_andgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 2 : itype = XSTORMY16_INSN_XORGRIMM16; xstormy16_extract_sfmt_andgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 3 : itype = XSTORMY16_INSN_MOVWGRIMM16; xstormy16_extract_sfmt_movwgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1095,22 +975,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           unsigned int val = (((insn >> 20) & (3 << 0)));
           switch (val)
           {
-          case 0 :
-            if ((entire_insn & 0xfff00000) == 0x31400000)
-              { itype = XSTORMY16_INSN_ADDGRIMM16; xstormy16_extract_sfmt_addgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 :
-            if ((entire_insn & 0xfff00000) == 0x31500000)
-              { itype = XSTORMY16_INSN_ADCGRIMM16; xstormy16_extract_sfmt_adcgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 2 :
-            if ((entire_insn & 0xfff00000) == 0x31600000)
-              { itype = XSTORMY16_INSN_SUBGRIMM16; xstormy16_extract_sfmt_addgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 3 :
-            if ((entire_insn & 0xfff00000) == 0x31700000)
-              { itype = XSTORMY16_INSN_SBCGRIMM16; xstormy16_extract_sfmt_adcgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-            itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 : itype = XSTORMY16_INSN_ADDGRIMM16; xstormy16_extract_sfmt_andgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 : itype = XSTORMY16_INSN_ADCGRIMM16; xstormy16_extract_sfmt_adcgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 2 : itype = XSTORMY16_INSN_SUBGRIMM16; xstormy16_extract_sfmt_andgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 3 : itype = XSTORMY16_INSN_SBCGRIMM16; xstormy16_extract_sfmt_adcgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
           default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
@@ -1123,9 +991,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 406 : /* fall through */
       case 407 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x3200)
-          { itype = XSTORMY16_INSN_SWPW; xstormy16_extract_sfmt_swpw (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_SWPW; xstormy16_extract_sfmt_swpw (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 408 : /* fall through */
       case 409 : /* fall through */
       case 410 : /* fall through */
@@ -1135,9 +1001,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 414 : /* fall through */
       case 415 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x3300)
-          { itype = XSTORMY16_INSN_MASKGRGR; xstormy16_extract_sfmt_maskgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_MASKGRGR; xstormy16_extract_sfmt_maskgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 432 : /* fall through */
       case 433 : /* fall through */
       case 434 : /* fall through */
@@ -1147,9 +1011,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 438 : /* fall through */
       case 439 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x3600)
-          { itype = XSTORMY16_INSN_ASRGRGR; xstormy16_extract_sfmt_asrgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_ASRGRGR; xstormy16_extract_sfmt_shrgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 440 : /* fall through */
       case 441 : /* fall through */
       case 442 : /* fall through */
@@ -1159,9 +1021,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 446 : /* fall through */
       case 447 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x3700)
-          { itype = XSTORMY16_INSN_ASRGRIMM; xstormy16_extract_sfmt_asrgrimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_ASRGRIMM; xstormy16_extract_sfmt_shrgrimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 448 : /* fall through */
       case 449 : /* fall through */
       case 450 : /* fall through */
@@ -1171,9 +1031,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 454 : /* fall through */
       case 455 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x3800)
-          { itype = XSTORMY16_INSN_RRCGRGR; xstormy16_extract_sfmt_rrcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_RRCGRGR; xstormy16_extract_sfmt_adcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 456 : /* fall through */
       case 457 : /* fall through */
       case 458 : /* fall through */
@@ -1183,9 +1041,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 462 : /* fall through */
       case 463 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x3900)
-          { itype = XSTORMY16_INSN_RRCGRIMM4; xstormy16_extract_sfmt_rrcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_RRCGRIMM4; xstormy16_extract_sfmt_adcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 464 : /* fall through */
       case 465 : /* fall through */
       case 466 : /* fall through */
@@ -1195,9 +1051,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 470 : /* fall through */
       case 471 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x3a00)
-          { itype = XSTORMY16_INSN_RLCGRGR; xstormy16_extract_sfmt_rrcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_RLCGRGR; xstormy16_extract_sfmt_adcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 472 : /* fall through */
       case 473 : /* fall through */
       case 474 : /* fall through */
@@ -1207,9 +1061,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 478 : /* fall through */
       case 479 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x3b00)
-          { itype = XSTORMY16_INSN_RLCGRIMM4; xstormy16_extract_sfmt_rrcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_RLCGRIMM4; xstormy16_extract_sfmt_adcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 480 : /* fall through */
       case 481 : /* fall through */
       case 482 : /* fall through */
@@ -1219,9 +1071,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 486 : /* fall through */
       case 487 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x3c00)
-          { itype = XSTORMY16_INSN_SHRGRGR; xstormy16_extract_sfmt_shrgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_SHRGRGR; xstormy16_extract_sfmt_shrgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 488 : /* fall through */
       case 489 : /* fall through */
       case 490 : /* fall through */
@@ -1231,9 +1081,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 494 : /* fall through */
       case 495 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x3d00)
-          { itype = XSTORMY16_INSN_SHRGRIMM; xstormy16_extract_sfmt_shrgrimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_SHRGRIMM; xstormy16_extract_sfmt_shrgrimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 496 : /* fall through */
       case 497 : /* fall through */
       case 498 : /* fall through */
@@ -1243,9 +1091,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 502 : /* fall through */
       case 503 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x3e00)
-          { itype = XSTORMY16_INSN_SHLGRGR; xstormy16_extract_sfmt_shrgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_SHLGRGR; xstormy16_extract_sfmt_shrgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 504 : /* fall through */
       case 505 : /* fall through */
       case 506 : /* fall through */
@@ -1255,9 +1101,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 510 : /* fall through */
       case 511 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x3f00)
-          { itype = XSTORMY16_INSN_SHLGRIMM; xstormy16_extract_sfmt_shrgrimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_SHLGRIMM; xstormy16_extract_sfmt_shrgrimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 512 : /* fall through */
       case 513 : /* fall through */
       case 514 : /* fall through */
@@ -1267,9 +1111,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 518 : /* fall through */
       case 519 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x4000)
-          { itype = XSTORMY16_INSN_ANDGRGR; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_ANDGRGR; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 520 : /* fall through */
       case 521 : /* fall through */
       case 522 : /* fall through */
@@ -1279,9 +1121,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 526 : /* fall through */
       case 527 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x4100)
-          { itype = XSTORMY16_INSN_ANDIMM8; xstormy16_extract_sfmt_andimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_ANDIMM8; xstormy16_extract_sfmt_andimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 528 : /* fall through */
       case 529 : /* fall through */
       case 530 : /* fall through */
@@ -1291,9 +1131,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 534 : /* fall through */
       case 535 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x4200)
-          { itype = XSTORMY16_INSN_ORGRGR; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_ORGRGR; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 536 : /* fall through */
       case 537 : /* fall through */
       case 538 : /* fall through */
@@ -1303,9 +1141,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 542 : /* fall through */
       case 543 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x4300)
-          { itype = XSTORMY16_INSN_ORIMM8; xstormy16_extract_sfmt_andimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_ORIMM8; xstormy16_extract_sfmt_andimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 544 : /* fall through */
       case 545 : /* fall through */
       case 546 : /* fall through */
@@ -1315,9 +1151,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 550 : /* fall through */
       case 551 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x4400)
-          { itype = XSTORMY16_INSN_XORGRGR; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_XORGRGR; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 552 : /* fall through */
       case 553 : /* fall through */
       case 554 : /* fall through */
@@ -1327,9 +1161,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 558 : /* fall through */
       case 559 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x4500)
-          { itype = XSTORMY16_INSN_XORIMM8; xstormy16_extract_sfmt_andimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_XORIMM8; xstormy16_extract_sfmt_andimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 560 : /* fall through */
       case 561 : /* fall through */
       case 562 : /* fall through */
@@ -1339,9 +1171,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 566 : /* fall through */
       case 567 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x4600)
-          { itype = XSTORMY16_INSN_MOVGRGR; xstormy16_extract_sfmt_movgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_MOVGRGR; xstormy16_extract_sfmt_movgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 568 : /* fall through */
       case 569 : /* fall through */
       case 570 : /* fall through */
@@ -1351,9 +1181,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 574 : /* fall through */
       case 575 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x4700)
-          { itype = XSTORMY16_INSN_MOVWIMM8; xstormy16_extract_sfmt_movwimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_MOVWIMM8; xstormy16_extract_sfmt_movwimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 584 : /* fall through */
       case 585 : /* fall through */
       case 586 : /* fall through */
@@ -1363,9 +1191,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 590 : /* fall through */
       case 591 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x4900)
-          { itype = XSTORMY16_INSN_ADDGRGR; xstormy16_extract_sfmt_addgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_ADDGRGR; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 600 : /* fall through */
       case 601 : /* fall through */
       case 602 : /* fall through */
@@ -1375,9 +1201,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 606 : /* fall through */
       case 607 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x4b00)
-          { itype = XSTORMY16_INSN_ADCGRGR; xstormy16_extract_sfmt_adcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_ADCGRGR; xstormy16_extract_sfmt_adcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 616 : /* fall through */
       case 617 : /* fall through */
       case 618 : /* fall through */
@@ -1387,9 +1211,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 622 : /* fall through */
       case 623 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x4d00)
-          { itype = XSTORMY16_INSN_SUBGRGR; xstormy16_extract_sfmt_addgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_SUBGRGR; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 632 : /* fall through */
       case 633 : /* fall through */
       case 634 : /* fall through */
@@ -1399,9 +1221,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 638 : /* fall through */
       case 639 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x4f00)
-          { itype = XSTORMY16_INSN_SBCGRGR; xstormy16_extract_sfmt_adcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_SBCGRGR; xstormy16_extract_sfmt_adcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 648 : /* fall through */
       case 649 : /* fall through */
       case 650 : /* fall through */
@@ -1411,9 +1231,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 654 : /* fall through */
       case 655 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x5100)
-          { itype = XSTORMY16_INSN_ADDGRIMM4; xstormy16_extract_sfmt_addgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_ADDGRIMM4; xstormy16_extract_sfmt_addgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 664 : /* fall through */
       case 665 : /* fall through */
       case 666 : /* fall through */
@@ -1423,9 +1241,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 670 : /* fall through */
       case 671 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x5300)
-          { itype = XSTORMY16_INSN_ADCGRIMM4; xstormy16_extract_sfmt_adcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_ADCGRIMM4; xstormy16_extract_sfmt_adcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 680 : /* fall through */
       case 681 : /* fall through */
       case 682 : /* fall through */
@@ -1435,9 +1251,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 686 : /* fall through */
       case 687 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x5500)
-          { itype = XSTORMY16_INSN_SUBGRIMM4; xstormy16_extract_sfmt_addgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_SUBGRIMM4; xstormy16_extract_sfmt_addgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 696 : /* fall through */
       case 697 : /* fall through */
       case 698 : /* fall through */
@@ -1447,9 +1261,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 702 : /* fall through */
       case 703 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x5700)
-          { itype = XSTORMY16_INSN_SBCGRIMM4; xstormy16_extract_sfmt_adcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_SBCGRIMM4; xstormy16_extract_sfmt_adcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 712 : /* fall through */
       case 713 : /* fall through */
       case 714 : /* fall through */
@@ -1459,9 +1271,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 718 : /* fall through */
       case 719 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x5900)
-          { itype = XSTORMY16_INSN_ADDIMM8; xstormy16_extract_sfmt_addimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_ADDIMM8; xstormy16_extract_sfmt_andimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 728 : /* fall through */
       case 729 : /* fall through */
       case 730 : /* fall through */
@@ -1471,9 +1281,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 734 : /* fall through */
       case 735 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x5b00)
-          { itype = XSTORMY16_INSN_ADCIMM8; xstormy16_extract_sfmt_adcimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_ADCIMM8; xstormy16_extract_sfmt_adcimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 744 : /* fall through */
       case 745 : /* fall through */
       case 746 : /* fall through */
@@ -1483,9 +1291,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 750 : /* fall through */
       case 751 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x5d00)
-          { itype = XSTORMY16_INSN_SUBIMM8; xstormy16_extract_sfmt_addimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_SUBIMM8; xstormy16_extract_sfmt_andimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 760 : /* fall through */
       case 761 : /* fall through */
       case 762 : /* fall through */
@@ -1495,9 +1301,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 766 : /* fall through */
       case 767 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xff00) == 0x5f00)
-          { itype = XSTORMY16_INSN_SBCGRIMM8; xstormy16_extract_sfmt_adcimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_SBCGRIMM8; xstormy16_extract_sfmt_adcimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 768 : /* fall through */
       case 770 : /* fall through */
       case 772 : /* fall through */
@@ -1507,9 +1311,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 780 : /* fall through */
       case 782 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xfe08) == 0x6000)
-          { itype = XSTORMY16_INSN_MOVGRGRIPOSTINC; xstormy16_extract_sfmt_movgrgripostinc (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_MOVGRGRIPOSTINC; xstormy16_extract_sfmt_movgrgripostinc (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 769 : /* fall through */
       case 771 : /* fall through */
       case 773 : /* fall through */
@@ -1530,9 +1332,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 796 : /* fall through */
       case 798 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xfe08) == 0x6200)
-          { itype = XSTORMY16_INSN_MOVGRIPOSTINCGR; xstormy16_extract_sfmt_movgripostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_MOVGRIPOSTINCGR; xstormy16_extract_sfmt_movgripostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 785 : /* fall through */
       case 787 : /* fall through */
       case 789 : /* fall through */
@@ -1553,9 +1353,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 812 : /* fall through */
       case 814 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xfe08) == 0x6400)
-          { itype = XSTORMY16_INSN_MOVFGRGRIPOSTINC; xstormy16_extract_sfmt_movfgrgripostinc (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_MOVFGRGRIPOSTINC; xstormy16_extract_sfmt_movfgrgripostinc (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 801 : /* fall through */
       case 803 : /* fall through */
       case 805 : /* fall through */
@@ -1576,9 +1374,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 828 : /* fall through */
       case 830 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xfe08) == 0x6600)
-          { itype = XSTORMY16_INSN_MOVFGRIPOSTINCGR; xstormy16_extract_sfmt_movfgripostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_MOVFGRIPOSTINCGR; xstormy16_extract_sfmt_movfgripostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 817 : /* fall through */
       case 819 : /* fall through */
       case 821 : /* fall through */
@@ -1599,9 +1395,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 844 : /* fall through */
       case 846 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xfe08) == 0x6800)
-          { itype = XSTORMY16_INSN_MOVGRGRIPREDEC; xstormy16_extract_sfmt_movgrgripredec (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_MOVGRGRIPREDEC; xstormy16_extract_sfmt_movgrgripredec (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 833 : /* fall through */
       case 835 : /* fall through */
       case 837 : /* fall through */
@@ -1622,9 +1416,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 860 : /* fall through */
       case 862 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xfe08) == 0x6a00)
-          { itype = XSTORMY16_INSN_MOVGRIPREDECGR; xstormy16_extract_sfmt_movgripredecgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_MOVGRIPREDECGR; xstormy16_extract_sfmt_movgripredecgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 849 : /* fall through */
       case 851 : /* fall through */
       case 853 : /* fall through */
@@ -1645,9 +1437,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 876 : /* fall through */
       case 878 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xfe08) == 0x6c00)
-          { itype = XSTORMY16_INSN_MOVFGRGRIPREDEC; xstormy16_extract_sfmt_movfgrgripredec (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_MOVFGRGRIPREDEC; xstormy16_extract_sfmt_movfgrgripredec (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 865 : /* fall through */
       case 867 : /* fall through */
       case 869 : /* fall through */
@@ -1668,9 +1458,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 892 : /* fall through */
       case 894 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xfe08) == 0x6e00)
-          { itype = XSTORMY16_INSN_MOVFGRIPREDECGR; xstormy16_extract_sfmt_movfgripredecgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_MOVFGRIPREDECGR; xstormy16_extract_sfmt_movfgripredecgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 881 : /* fall through */
       case 883 : /* fall through */
       case 885 : /* fall through */
@@ -1691,9 +1479,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 908 : /* fall through */
       case 910 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xfe08) == 0x7000)
-          { itype = XSTORMY16_INSN_MOVGRGRI; xstormy16_extract_sfmt_movgrgri (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_MOVGRGRI; xstormy16_extract_sfmt_movgrgri (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 897 : /* fall through */
       case 899 : /* fall through */
       case 901 : /* fall through */
@@ -1714,9 +1500,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 924 : /* fall through */
       case 926 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xfe08) == 0x7200)
-          { itype = XSTORMY16_INSN_MOVGRIGR; xstormy16_extract_sfmt_movgrigr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_MOVGRIGR; xstormy16_extract_sfmt_movgrigr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 913 : /* fall through */
       case 915 : /* fall through */
       case 917 : /* fall through */
@@ -1737,9 +1521,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 940 : /* fall through */
       case 942 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xfe08) == 0x7400)
-          { itype = XSTORMY16_INSN_MOVFGRGRI; xstormy16_extract_sfmt_movfgrgri (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_MOVFGRGRI; xstormy16_extract_sfmt_movfgrgri (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 929 : /* fall through */
       case 931 : /* fall through */
       case 933 : /* fall through */
@@ -1760,9 +1542,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 956 : /* fall through */
       case 958 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xfe08) == 0x7600)
-          { itype = XSTORMY16_INSN_MOVFGRIGR; xstormy16_extract_sfmt_movfgrigr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_MOVFGRIGR; xstormy16_extract_sfmt_movfgrigr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 945 : /* fall through */
       case 947 : /* fall through */
       case 949 : /* fall through */
@@ -1789,10 +1569,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 972 : /* fall through */
       case 973 : /* fall through */
       case 974 : /* fall through */
-      case 975 :
-        if ((entire_insn & 0xfe000000) == 0x78000000)
-          { itype = XSTORMY16_INSN_MOVLMEMIMM; xstormy16_extract_sfmt_movlmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 975 : itype = XSTORMY16_INSN_MOVLMEMIMM; xstormy16_extract_sfmt_movlmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 976 : /* fall through */
       case 977 : /* fall through */
       case 978 : /* fall through */
@@ -1808,10 +1585,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 988 : /* fall through */
       case 989 : /* fall through */
       case 990 : /* fall through */
-      case 991 :
-        if ((entire_insn & 0xfe000000) == 0x7a000000)
-          { itype = XSTORMY16_INSN_MOVHMEMIMM; xstormy16_extract_sfmt_movhmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 991 : itype = XSTORMY16_INSN_MOVHMEMIMM; xstormy16_extract_sfmt_movhmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 992 : /* fall through */
       case 993 : /* fall through */
       case 994 : /* fall through */
@@ -1985,9 +1759,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 1150 : /* fall through */
       case 1151 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x8000)
-          { itype = XSTORMY16_INSN_MOVLGRMEM; xstormy16_extract_sfmt_movlgrmem (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_MOVLGRMEM; xstormy16_extract_sfmt_movlgrmem (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1152 : /* fall through */
       case 1153 : /* fall through */
       case 1154 : /* fall through */
@@ -2117,9 +1889,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 1278 : /* fall through */
       case 1279 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0x9000)
-          { itype = XSTORMY16_INSN_MOVLMEMGR; xstormy16_extract_sfmt_movlmemgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_MOVLMEMGR; xstormy16_extract_sfmt_movlmemgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1280 : /* fall through */
       case 1281 : /* fall through */
       case 1282 : /* fall through */
@@ -2249,9 +2019,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 1406 : /* fall through */
       case 1407 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xa000)
-          { itype = XSTORMY16_INSN_MOVHGRMEM; xstormy16_extract_sfmt_movhgrmem (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_MOVHGRMEM; xstormy16_extract_sfmt_movhgrmem (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1408 : /* fall through */
       case 1409 : /* fall through */
       case 1410 : /* fall through */
@@ -2381,9 +2149,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 1534 : /* fall through */
       case 1535 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xb000)
-          { itype = XSTORMY16_INSN_MOVHMEMGR; xstormy16_extract_sfmt_movhmemgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_MOVHMEMGR; xstormy16_extract_sfmt_movhmemgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1536 : /* fall through */
       case 1537 : /* fall through */
       case 1538 : /* fall through */
@@ -2511,10 +2277,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 1660 : /* fall through */
       case 1661 : /* fall through */
       case 1662 : /* fall through */
-      case 1663 :
-        if ((entire_insn & 0xf0000000) == 0xc0000000)
-          { itype = XSTORMY16_INSN_BCCIMM16; xstormy16_extract_sfmt_bccimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 1663 : itype = XSTORMY16_INSN_BCCIMM16; xstormy16_extract_sfmt_bccimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1664 : /* fall through */
       case 1665 : /* fall through */
       case 1666 : /* fall through */
@@ -2644,9 +2407,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 1790 : /* fall through */
       case 1791 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf000) == 0xd000)
-          { itype = XSTORMY16_INSN_BCC; xstormy16_extract_sfmt_bcc (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_BCC; xstormy16_extract_sfmt_bcc (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1792 : /* fall through */
       case 1793 : /* fall through */
       case 1794 : /* fall through */
@@ -2712,9 +2473,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 1910 : /* fall through */
       case 1911 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf100) == 0xe000)
-          { itype = XSTORMY16_INSN_CLR1LMEMIMM; xstormy16_extract_sfmt_set1lmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_CLR1LMEMIMM; xstormy16_extract_sfmt_set1lmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1800 : /* fall through */
       case 1801 : /* fall through */
       case 1802 : /* fall through */
@@ -2780,9 +2539,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 1918 : /* fall through */
       case 1919 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf100) == 0xe100)
-          { itype = XSTORMY16_INSN_SET1LMEMIMM; xstormy16_extract_sfmt_set1lmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_SET1LMEMIMM; xstormy16_extract_sfmt_set1lmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1920 : /* fall through */
       case 1921 : /* fall through */
       case 1922 : /* fall through */
@@ -2848,9 +2605,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 2038 : /* fall through */
       case 2039 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf100) == 0xf000)
-          { itype = XSTORMY16_INSN_CLR1HMEMIMM; xstormy16_extract_sfmt_set1hmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_CLR1HMEMIMM; xstormy16_extract_sfmt_set1hmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 1928 : /* fall through */
       case 1929 : /* fall through */
       case 1930 : /* fall through */
@@ -2916,9 +2671,7 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 2046 : /* fall through */
       case 2047 :
         entire_insn = entire_insn >> 16;
-        if ((entire_insn & 0xf100) == 0xf100)
-          { itype = XSTORMY16_INSN_SET1HMEMIMM; xstormy16_extract_sfmt_set1hmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
-        itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+        itype = XSTORMY16_INSN_SET1HMEMIMM; xstormy16_extract_sfmt_set1hmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
       default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       }
     }
@@ -4221,31 +3974,6 @@ xstormy16_extract_sfmt_andgrimm16 (xstormy16_scache* abuf, xstormy16_cpu* curren
 }
 
 void
-xstormy16_extract_sfmt_addgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
-    xstormy16_insn_word insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_bccgrgr.f
-    UINT f_Rs;
-    UINT f_Rd;
-
-    f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
-    f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
-
-  /* Record the fields for the semantic handler.  */
-  FLD (f_Rd) = f_Rd;
-  FLD (f_Rs) = f_Rs;
-  if (UNLIKELY(current_cpu->trace_extract_p))
-    {
-      current_cpu->trace_stream 
-        << "0x" << hex << pc << dec << " (sfmt_addgrgr)\t"
-        << " f_Rd:0x" << hex << f_Rd << dec
-        << " f_Rs:0x" << hex << f_Rs << dec
-        << endl;
-    }
-
-#undef FLD
-}
-
-void
 xstormy16_extract_sfmt_addgrimm4 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
     xstormy16_insn_word insn = entire_insn;
 #define FLD(f) abuf->fields.sfmt_bngrimm4.f
@@ -4271,52 +3999,6 @@ xstormy16_extract_sfmt_addgrimm4 (xstormy16_scache* abuf, xstormy16_cpu* current
 }
 
 void
-xstormy16_extract_sfmt_addimm8 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
-    xstormy16_insn_word insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_bccgrimm8.f
-    UINT f_imm8;
-
-    f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
-
-  /* Record the fields for the semantic handler.  */
-  FLD (f_imm8) = f_imm8;
-  if (UNLIKELY(current_cpu->trace_extract_p))
-    {
-      current_cpu->trace_stream 
-        << "0x" << hex << pc << dec << " (sfmt_addimm8)\t"
-        << " f_imm8:0x" << hex << f_imm8 << dec
-        << endl;
-    }
-
-#undef FLD
-}
-
-void
-xstormy16_extract_sfmt_addgrimm16 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
-    xstormy16_insn_word insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_movwgrimm16.f
-    UINT f_Rd;
-    UINT f_imm16;
-
-    f_Rd = EXTRACT_MSB0_UINT (insn, 32, 12, 4);
-    f_imm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16);
-
-  /* Record the fields for the semantic handler.  */
-  FLD (f_Rd) = f_Rd;
-  FLD (f_imm16) = f_imm16;
-  if (UNLIKELY(current_cpu->trace_extract_p))
-    {
-      current_cpu->trace_stream 
-        << "0x" << hex << pc << dec << " (sfmt_addgrimm16)\t"
-        << " f_Rd:0x" << hex << f_Rd << dec
-        << " f_imm16:0x" << hex << f_imm16 << dec
-        << endl;
-    }
-
-#undef FLD
-}
-
-void
 xstormy16_extract_sfmt_adcgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
     xstormy16_insn_word insn = entire_insn;
 #define FLD(f) abuf->fields.sfmt_bccgrgr.f
@@ -4438,56 +4120,6 @@ xstormy16_extract_sfmt_incgrimm2 (xstormy16_scache* abuf, xstormy16_cpu* current
 }
 
 void
-xstormy16_extract_sfmt_rrcgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
-    xstormy16_insn_word insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_bccgrgr.f
-    UINT f_Rs;
-    UINT f_Rd;
-
-    f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
-    f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
-
-  /* Record the fields for the semantic handler.  */
-  FLD (f_Rd) = f_Rd;
-  FLD (f_Rs) = f_Rs;
-  if (UNLIKELY(current_cpu->trace_extract_p))
-    {
-      current_cpu->trace_stream 
-        << "0x" << hex << pc << dec << " (sfmt_rrcgrgr)\t"
-        << " f_Rd:0x" << hex << f_Rd << dec
-        << " f_Rs:0x" << hex << f_Rs << dec
-        << endl;
-    }
-
-#undef FLD
-}
-
-void
-xstormy16_extract_sfmt_rrcgrimm4 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
-    xstormy16_insn_word insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_bngrimm4.f
-    UINT f_imm4;
-    UINT f_Rd;
-
-    f_imm4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
-    f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
-
-  /* Record the fields for the semantic handler.  */
-  FLD (f_Rd) = f_Rd;
-  FLD (f_imm4) = f_imm4;
-  if (UNLIKELY(current_cpu->trace_extract_p))
-    {
-      current_cpu->trace_stream 
-        << "0x" << hex << pc << dec << " (sfmt_rrcgrimm4)\t"
-        << " f_Rd:0x" << hex << f_Rd << dec
-        << " f_imm4:0x" << hex << f_imm4 << dec
-        << endl;
-    }
-
-#undef FLD
-}
-
-void
 xstormy16_extract_sfmt_shrgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
     xstormy16_insn_word insn = entire_insn;
 #define FLD(f) abuf->fields.sfmt_bccgrgr.f
@@ -4538,81 +4170,6 @@ xstormy16_extract_sfmt_shrgrimm (xstormy16_scache* abuf, xstormy16_cpu* current_
 }
 
 void
-xstormy16_extract_sfmt_asrgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
-    xstormy16_insn_word insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_bccgrgr.f
-    UINT f_Rs;
-    UINT f_Rd;
-
-    f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
-    f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
-
-  /* Record the fields for the semantic handler.  */
-  FLD (f_Rd) = f_Rd;
-  FLD (f_Rs) = f_Rs;
-  if (UNLIKELY(current_cpu->trace_extract_p))
-    {
-      current_cpu->trace_stream 
-        << "0x" << hex << pc << dec << " (sfmt_asrgrgr)\t"
-        << " f_Rd:0x" << hex << f_Rd << dec
-        << " f_Rs:0x" << hex << f_Rs << dec
-        << endl;
-    }
-
-#undef FLD
-}
-
-void
-xstormy16_extract_sfmt_asrgrimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
-    xstormy16_insn_word insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_bngrimm4.f
-    UINT f_imm4;
-    UINT f_Rd;
-
-    f_imm4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
-    f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
-
-  /* Record the fields for the semantic handler.  */
-  FLD (f_Rd) = f_Rd;
-  FLD (f_imm4) = f_imm4;
-  if (UNLIKELY(current_cpu->trace_extract_p))
-    {
-      current_cpu->trace_stream 
-        << "0x" << hex << pc << dec << " (sfmt_asrgrimm)\t"
-        << " f_Rd:0x" << hex << f_Rd << dec
-        << " f_imm4:0x" << hex << f_imm4 << dec
-        << endl;
-    }
-
-#undef FLD
-}
-
-void
-xstormy16_extract_sfmt_set1grimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
-    xstormy16_insn_word insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_bngrimm4.f
-    UINT f_imm4;
-    UINT f_Rd;
-
-    f_imm4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
-    f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
-
-  /* Record the fields for the semantic handler.  */
-  FLD (f_Rd) = f_Rd;
-  FLD (f_imm4) = f_imm4;
-  if (UNLIKELY(current_cpu->trace_extract_p))
-    {
-      current_cpu->trace_stream 
-        << "0x" << hex << pc << dec << " (sfmt_set1grimm)\t"
-        << " f_Rd:0x" << hex << f_Rd << dec
-        << " f_imm4:0x" << hex << f_imm4 << dec
-        << endl;
-    }
-
-#undef FLD
-}
-
-void
 xstormy16_extract_sfmt_set1lmemimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
     xstormy16_insn_word insn = entire_insn;
 #define FLD(f) abuf->fields.sfmt_set1lmemimm.f
@@ -5205,23 +4762,6 @@ xstormy16_extract_sfmt_mul (xstormy16_scache* abuf, xstormy16_cpu* current_cpu,
 }
 
 void
-xstormy16_extract_sfmt_sdiv (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
-    xstormy16_insn_word insn = entire_insn;
-#define FLD(f) abuf->fields.fmt_empty.f
-
-
-  /* Record the fields for the semantic handler.  */
-  if (UNLIKELY(current_cpu->trace_extract_p))
-    {
-      current_cpu->trace_stream 
-        << "0x" << hex << pc << dec << " (sfmt_sdiv)\t"
-        << endl;
-    }
-
-#undef FLD
-}
-
-void
 xstormy16_extract_sfmt_sdivlh (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
     xstormy16_insn_word insn = entire_insn;
 #define FLD(f) abuf->fields.fmt_empty.f
index 3e03bce..77793f9 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 7d9ce34..edbe1b6 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 88ab727..2742b52 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -12,7 +12,7 @@ This file is part of the Red Hat simulators.
 #ifndef DESC_XSTORMY16_H
 #define DESC_XSTORMY16_H
 
-#include "opcode/cgen-bitset.h"
+#include "cgen/bitset.h"
 
 namespace xstormy16 {
 
index 7372c39..84c65c7 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2005 Red Hat, Inc.
+Copyright (C) 2000-2009 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -384,7 +384,7 @@ if (FLD (f_op2m)) {
 } else {
 {
   HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, current_cpu->h_gr_get (FLD (f_Rs))));
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMQI (pc, current_cpu->h_gr_get (FLD (f_Rs))));
   {
     HI opval = tmp_nvalue;
     if (UNLIKELY(current_cpu->trace_result_p))
@@ -437,7 +437,7 @@ if (FLD (f_op2m)) {
 } else {
 {
   HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, current_cpu->h_gr_get (FLD (f_Rs))));
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMQI (pc, current_cpu->h_gr_get (FLD (f_Rs))));
   {
     HI opval = tmp_nvalue;
     if (UNLIKELY(current_cpu->trace_result_p))
@@ -503,7 +503,7 @@ if (FLD (f_op2m)) {
 } else {
 {
   HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, current_cpu->h_gr_get (FLD (f_Rs))));
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMQI (pc, current_cpu->h_gr_get (FLD (f_Rs))));
   {
     HI opval = tmp_nvalue;
     if (UNLIKELY(current_cpu->trace_result_p))
@@ -700,7 +700,7 @@ if (FLD (f_op2m)) {
 } else {
 {
   HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12))));
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMQI (pc, ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12))));
   {
     HI opval = tmp_nvalue;
     if (UNLIKELY(current_cpu->trace_result_p))
@@ -753,7 +753,7 @@ if (FLD (f_op2m)) {
 } else {
 {
   HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12))));
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMQI (pc, ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12))));
   {
     HI opval = tmp_nvalue;
     if (UNLIKELY(current_cpu->trace_result_p))
@@ -819,7 +819,7 @@ if (FLD (f_op2m)) {
 } else {
 {
   HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12))));
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMQI (pc, ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12))));
   {
     HI opval = tmp_nvalue;
     if (UNLIKELY(current_cpu->trace_result_p))
@@ -1214,7 +1214,7 @@ if (FLD (f_op2m)) {
 } else {
 {
   HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, ORSI (SLLSI (current_cpu->h_gr_get (((UINT) 8)), 16), current_cpu->h_gr_get (FLD (f_Rs)))));
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMQI (pc, ORSI (SLLSI (current_cpu->h_gr_get (((UINT) 8)), 16), current_cpu->h_gr_get (FLD (f_Rs)))));
   {
     HI opval = tmp_nvalue;
     if (UNLIKELY(current_cpu->trace_result_p))
@@ -1267,7 +1267,7 @@ if (FLD (f_op2m)) {
 } else {
 {
   HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs)))));
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMQI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs)))));
   {
     HI opval = tmp_nvalue;
     if (UNLIKELY(current_cpu->trace_result_p))
@@ -1333,7 +1333,7 @@ if (FLD (f_op2m)) {
 } else {
 {
   HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs)))));
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMQI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs)))));
   {
     HI opval = tmp_nvalue;
     if (UNLIKELY(current_cpu->trace_result_p))
@@ -1530,7 +1530,7 @@ if (FLD (f_op2m)) {
 } else {
 {
   HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12))));
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMQI (pc, ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12))));
   {
     HI opval = tmp_nvalue;
     if (UNLIKELY(current_cpu->trace_result_p))
@@ -1583,7 +1583,7 @@ if (FLD (f_op2m)) {
 } else {
 {
   HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12))));
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMQI (pc, ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12))));
   {
     HI opval = tmp_nvalue;
     if (UNLIKELY(current_cpu->trace_result_p))
@@ -1649,7 +1649,7 @@ if (FLD (f_op2m)) {
 } else {
 {
   HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12))));
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMQI (pc, ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12))));
   {
     HI opval = tmp_nvalue;
     if (UNLIKELY(current_cpu->trace_result_p))