OSDN Git Service

2005-08-19 Dave Brolley <brolley@redhat.com>
authorbrolley <brolley>
Fri, 19 Aug 2005 18:58:56 +0000 (18:58 +0000)
committerbrolley <brolley>
Fri, 19 Aug 2005 18:58:56 +0000 (18:58 +0000)
        * Makefile.am: Remove references to xstormy16-write.cxx.
        * xstormy16-cpu.h: Regenerate.
        * xstormy16-decode.cxx: Regenerate.
        * xstormy16-decode.h: Regenerate.
        * xstormy16-defs.h: Regenerate.
        * xstormy16-desc.h: Regenerate.
        * xstormy16-sem.cxx: Regenerate.
        * xstormy16-write.cxx: Removed.

sid/component/cgen-cpu/xstormy16/ChangeLog
sid/component/cgen-cpu/xstormy16/Makefile.am
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
sid/component/cgen-cpu/xstormy16/xstormy16-write.cxx [deleted file]

index 6caff67..9bcfb06 100644 (file)
@@ -1,3 +1,14 @@
+2005-08-19  Dave Brolley  <brolley@redhat.com>
+
+       * Makefile.am: Remove references to xstormy16-write.cxx.
+       * xstormy16-cpu.h: Regenerate.
+       * xstormy16-decode.cxx: Regenerate.
+       * xstormy16-decode.h: Regenerate.
+       * xstormy16-defs.h: Regenerate.
+       * xstormy16-desc.h: Regenerate.
+       * xstormy16-sem.cxx: Regenerate.
+       * xstormy16-write.cxx: Removed.
+
 2005-06-03  Jim Blandy  <jimb@redhat.com>
 
        * Makefile.in, aclocal.m4: Regenerated with Automake 1.9.5.
index 571438c..53930c8 100644 (file)
@@ -53,4 +53,4 @@ cgen-xstormy16:
        $(SHELL) ../CGEN.sh cpu-decode $(srcdir) $(cgendir) "$(CGENFLAGS)" \
        xstormy16 "with-scache" xstormy16 xstormy16 xstormy16 xstormy16 "xstormy16-" \
        $(cgendir)/cpu/xstormy16.cpu \
-       "desc.h cpu.h defs.h decode.h decode.cxx write.cxx semantics.cxx"
+       "desc.h cpu.h defs.h decode.h decode.cxx semantics.cxx"
index 95a2127..9018518 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-2005 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -23,6 +23,18 @@ public:
   SI h_gr[16];
   } 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] << ' ';
+  }
+  void destream_cgen_hardware (std::istream &ist) 
+  {
+    ist >> hardware.h_pc;
+    for (int i = 0; i < 16; i++)
+      ist >> hardware.h_gr[i];
+  }
   // C++ register access function templates
 #define current_cpu this
 
index 4379413..d86559f 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2004 Red Hat, Inc.
+Copyright (C) 2000-2005 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -366,11 +366,31 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           unsigned int val = (((insn >> 17) & (3 << 3)) | ((insn >> 16) & (7 << 0)));
           switch (val)
           {
-          case 0 : itype = XSTORMY16_INSN_NOP; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = XSTORMY16_INSN_SYSCALL; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 2 : itype = XSTORMY16_INSN_IRET; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_iret (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 3 : itype = XSTORMY16_INSN_RET; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_ret (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 5 : itype = XSTORMY16_INSN_BRK; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 :
+            entire_insn = base_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;
+          case 1 :
+            entire_insn = base_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;
+          case 2 :
+            entire_insn = base_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;
+          case 3 :
+            entire_insn = base_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;
+          case 5 :
+            entire_insn = base_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;
           case 8 : /* fall through */
           case 9 : /* fall through */
           case 10 : /* fall through */
@@ -378,7 +398,11 @@ 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 : itype = XSTORMY16_INSN_CALLRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_callrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 15 :
+            entire_insn = base_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;
           case 16 : /* fall through */
           case 17 : /* fall through */
           case 18 : /* fall through */
@@ -386,7 +410,11 @@ 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 : itype = XSTORMY16_INSN_BGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_bgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 23 :
+            entire_insn = base_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;
           case 24 : /* fall through */
           case 25 : /* fall through */
           case 26 : /* fall through */
@@ -394,8 +422,12 @@ 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 : itype = XSTORMY16_INSN_ICALLRGR; entire_insn = base_insn >> 16; 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;
+          case 31 :
+            entire_insn = base_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;
+          default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 1 :
@@ -403,10 +435,26 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           unsigned int val = (((insn >> 17) & (3 << 3)) | ((insn >> 16) & (7 << 0)));
           switch (val)
           {
-          case 0 : itype = XSTORMY16_INSN_HALT; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 2 : itype = XSTORMY16_INSN_HOLD; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 3 : itype = XSTORMY16_INSN_HOLDX; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 7 : itype = XSTORMY16_INSN_RESET; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 :
+            entire_insn = base_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;
+          case 2 :
+            entire_insn = base_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;
+          case 3 :
+            entire_insn = base_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;
+          case 7 :
+            entire_insn = base_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;
           case 8 : /* fall through */
           case 9 : /* fall through */
           case 10 : /* fall through */
@@ -414,7 +462,11 @@ 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 : itype = XSTORMY16_INSN_CALLRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_callrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 15 :
+            entire_insn = base_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;
           case 16 : /* fall through */
           case 17 : /* fall through */
           case 18 : /* fall through */
@@ -422,7 +474,11 @@ 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 : itype = XSTORMY16_INSN_BGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_bgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 23 :
+            entire_insn = base_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;
           case 24 : /* fall through */
           case 25 : /* fall through */
           case 26 : /* fall through */
@@ -430,8 +486,12 @@ 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 : itype = XSTORMY16_INSN_ICALLRGR; entire_insn = base_insn >> 16; 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;
+          case 31 :
+            entire_insn = base_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;
+          default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 2 : /* fall through */
@@ -440,9 +500,17 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           unsigned int val = (((insn >> 21) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = XSTORMY16_INSN_JMP; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_jmp (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = XSTORMY16_INSN_ICALLGR; entire_insn = base_insn >> 16; 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;
+          case 0 :
+            entire_insn = base_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;
+          case 1 :
+            entire_insn = base_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;
+          default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 4 : /* fall through */
@@ -451,11 +519,23 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           unsigned int val = (((insn >> 20) & (3 << 0)));
           switch (val)
           {
-          case 0 : itype = XSTORMY16_INSN_PUSHGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_pushgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = XSTORMY16_INSN_POPGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_popgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 0 :
+            entire_insn = base_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;
+          case 1 :
+            entire_insn = base_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;
           case 2 : /* fall through */
-          case 3 : itype = XSTORMY16_INSN_CALLGR; entire_insn = base_insn >> 16; 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;
+          case 3 :
+            entire_insn = base_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;
+          default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 6 :
@@ -463,10 +543,22 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           unsigned int val = (((insn >> 20) & (3 << 0)));
           switch (val)
           {
-          case 0 : itype = XSTORMY16_INSN_DIV; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_mul (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = XSTORMY16_INSN_MUL; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_mul (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 2 : itype = XSTORMY16_INSN_DIVLH; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_sdivlh (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;
+          case 0 :
+            entire_insn = base_insn >> 16;
+            if ((entire_insn & 0xffff) == 0xc0)
+              { itype = XSTORMY16_INSN_DIV; 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 = base_insn >> 16;
+            if ((entire_insn & 0xffff) == 0xd0)
+              { itype = XSTORMY16_INSN_MUL; 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 2 :
+            entire_insn = base_insn >> 16;
+            if ((entire_insn & 0xffff) == 0xe0)
+              { itype = XSTORMY16_INSN_DIVLH; xstormy16_extract_sfmt_sdivlh (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;
+          default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 7 :
@@ -474,9 +566,17 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           unsigned int val = (((insn >> 21) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = XSTORMY16_INSN_SDIV; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_sdiv (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = XSTORMY16_INSN_SDIVLH; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_sdivlh (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;
+          case 0 :
+            entire_insn = base_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_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
+          case 1 :
+            entire_insn = base_insn >> 16;
+            if ((entire_insn & 0xffff) == 0xe8)
+              { itype = XSTORMY16_INSN_SDIVLH; xstormy16_extract_sfmt_sdivlh (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;
+          default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 8 : /* fall through */
@@ -486,7 +586,10 @@ 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 : itype = XSTORMY16_INSN_CALLFIMM; xstormy16_extract_sfmt_callfimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      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 16 : /* fall through */
       case 17 : /* fall through */
       case 18 : /* fall through */
@@ -494,7 +597,10 @@ 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 : itype = XSTORMY16_INSN_JMPF; xstormy16_extract_sfmt_jmpf (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      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 24 : /* fall through */
       case 25 : /* fall through */
       case 26 : /* fall through */
@@ -502,7 +608,10 @@ 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 : itype = XSTORMY16_INSN_ICALLFIMM; xstormy16_extract_sfmt_icallfimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      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 32 : /* fall through */
       case 33 : /* fall through */
       case 34 : /* fall through */
@@ -510,7 +619,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 36 : /* fall through */
       case 37 : /* fall through */
       case 38 : /* fall through */
-      case 39 : itype = XSTORMY16_INSN_BNGRIMM4; xstormy16_extract_sfmt_bngrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 39 :
+        if ((entire_insn & 0xff00f000) == 0x4000000)
+          { itype = XSTORMY16_INSN_BNGRIMM4; xstormy16_extract_sfmt_bngrimm4 (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 40 : /* fall through */
       case 41 : /* fall through */
       case 42 : /* fall through */
@@ -518,7 +630,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 44 : /* fall through */
       case 45 : /* fall through */
       case 46 : /* fall through */
-      case 47 : itype = XSTORMY16_INSN_BPGRIMM4; xstormy16_extract_sfmt_bngrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 47 :
+        if ((entire_insn & 0xff00f000) == 0x5000000)
+          { itype = XSTORMY16_INSN_BPGRIMM4; xstormy16_extract_sfmt_bngrimm4 (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 48 : /* fall through */
       case 49 : /* fall through */
       case 50 : /* fall through */
@@ -526,7 +641,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 52 : /* fall through */
       case 53 : /* fall through */
       case 54 : /* fall through */
-      case 55 : itype = XSTORMY16_INSN_BNGRGR; xstormy16_extract_sfmt_bngrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 55 :
+        if ((entire_insn & 0xff00f000) == 0x6000000)
+          { itype = XSTORMY16_INSN_BNGRGR; xstormy16_extract_sfmt_bngrgr (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 56 : /* fall through */
       case 57 : /* fall through */
       case 58 : /* fall through */
@@ -534,7 +652,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 60 : /* fall through */
       case 61 : /* fall through */
       case 62 : /* fall through */
-      case 63 : itype = XSTORMY16_INSN_BPGRGR; xstormy16_extract_sfmt_bngrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 63 :
+        if ((entire_insn & 0xff00f000) == 0x7000000)
+          { itype = XSTORMY16_INSN_BPGRGR; xstormy16_extract_sfmt_bngrgr (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 64 : /* fall through */
       case 65 : /* fall through */
       case 66 : /* fall through */
@@ -542,7 +663,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 68 : /* fall through */
       case 69 : /* fall through */
       case 70 : /* fall through */
-      case 71 : itype = XSTORMY16_INSN_CLR1GRIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_set1grimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 71 :
+        entire_insn = base_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;
       case 72 : /* fall through */
       case 73 : /* fall through */
       case 74 : /* fall through */
@@ -550,7 +675,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 76 : /* fall through */
       case 77 : /* fall through */
       case 78 : /* fall through */
-      case 79 : itype = XSTORMY16_INSN_SET1GRIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_set1grimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 79 :
+        entire_insn = base_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;
       case 80 : /* fall through */
       case 81 : /* fall through */
       case 82 : /* fall through */
@@ -558,7 +687,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 84 : /* fall through */
       case 85 : /* fall through */
       case 86 : /* fall through */
-      case 87 : itype = XSTORMY16_INSN_CLR1GRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 87 :
+        entire_insn = base_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;
       case 88 : /* fall through */
       case 89 : /* fall through */
       case 90 : /* fall through */
@@ -566,7 +699,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 92 : /* fall through */
       case 93 : /* fall through */
       case 94 : /* fall through */
-      case 95 : itype = XSTORMY16_INSN_SET1GRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 95 :
+        entire_insn = base_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;
       case 104 : /* fall through */
       case 105 : /* fall through */
       case 106 : /* fall through */
@@ -574,7 +711,10 @@ 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 : itype = XSTORMY16_INSN_BCCGRGR; xstormy16_extract_sfmt_bccgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      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 128 : /* fall through */
       case 129 : /* fall through */
       case 130 : /* fall through */
@@ -707,9 +847,17 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           unsigned int val = (((insn >> 16) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = XSTORMY16_INSN_BR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_br (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = XSTORMY16_INSN_CALLRIMM; entire_insn = base_insn >> 16; 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;
+          case 0 :
+            entire_insn = base_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;
+          case 1 :
+            entire_insn = base_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;
+          default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 256 : /* fall through */
@@ -775,7 +923,10 @@ 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 : itype = XSTORMY16_INSN_BCCGRIMM8; xstormy16_extract_sfmt_bccgrimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      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 264 : /* fall through */
       case 265 : /* fall through */
       case 266 : /* fall through */
@@ -839,22 +990,50 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 380 : /* fall through */
       case 381 : /* fall through */
       case 382 : /* fall through */
-      case 383 : itype = XSTORMY16_INSN_MOVWGRIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movwgrimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 383 :
+        entire_insn = base_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;
       case 384 : /* fall through */
-      case 385 : itype = XSTORMY16_INSN_INCGRIMM2; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_incgrimm2 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 385 :
+        entire_insn = base_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;
       case 386 : /* fall through */
-      case 387 : itype = XSTORMY16_INSN_DECGRIMM2; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_incgrimm2 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 387 :
+        entire_insn = base_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;
       case 388 : /* fall through */
       case 389 :
         {
           unsigned int val = (((insn >> 20) & (3 << 0)));
           switch (val)
           {
-          case 0 : itype = XSTORMY16_INSN_SWPB; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = XSTORMY16_INSN_SWPN; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 2 : itype = XSTORMY16_INSN_CBWGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 3 : itype = XSTORMY16_INSN_NOTGR; entire_insn = base_insn >> 16; 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;
+          case 0 :
+            entire_insn = base_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;
+          case 1 :
+            entire_insn = base_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;
+          case 2 :
+            entire_insn = base_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;
+          case 3 :
+            entire_insn = base_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;
+          default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 390 : /* fall through */
@@ -863,11 +1042,26 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           unsigned int val = (((insn >> 20) & (3 << 0)));
           switch (val)
           {
-          case 0 : itype = XSTORMY16_INSN_MOVLOWGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movlowgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
-          case 1 : itype = XSTORMY16_INSN_MOVHIGHGR; entire_insn = base_insn >> 16; 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 : itype = XSTORMY16_INSN_REVGR; entire_insn = base_insn >> 16; 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;
+          case 0 :
+            entire_insn = base_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;
+          case 1 :
+            entire_insn = base_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;
+          case 3 :
+            entire_insn = base_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;
+          default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 392 : /* fall through */
@@ -876,11 +1070,23 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           unsigned int val = (((insn >> 20) & (3 << 0)));
           switch (val)
           {
-          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;
+          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;
+          default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 394 : /* fall through */
@@ -889,11 +1095,23 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
           unsigned int val = (((insn >> 20) & (3 << 0)));
           switch (val)
           {
-          case 0 : itype = XSTORMY16_INSN_ADDGRIMM16; xstormy16_extract_sfmt_addgrimm16 (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_addgrimm16 (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;
+          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;
+          default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
           }
         }
       case 400 : /* fall through */
@@ -903,7 +1121,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 404 : /* fall through */
       case 405 : /* fall through */
       case 406 : /* fall through */
-      case 407 : itype = XSTORMY16_INSN_SWPW; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_swpw (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 407 :
+        entire_insn = base_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;
       case 408 : /* fall through */
       case 409 : /* fall through */
       case 410 : /* fall through */
@@ -911,7 +1133,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 412 : /* fall through */
       case 413 : /* fall through */
       case 414 : /* fall through */
-      case 415 : itype = XSTORMY16_INSN_MASKGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_maskgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 415 :
+        entire_insn = base_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;
       case 432 : /* fall through */
       case 433 : /* fall through */
       case 434 : /* fall through */
@@ -919,7 +1145,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 436 : /* fall through */
       case 437 : /* fall through */
       case 438 : /* fall through */
-      case 439 : itype = XSTORMY16_INSN_ASRGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_asrgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 439 :
+        entire_insn = base_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;
       case 440 : /* fall through */
       case 441 : /* fall through */
       case 442 : /* fall through */
@@ -927,7 +1157,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 444 : /* fall through */
       case 445 : /* fall through */
       case 446 : /* fall through */
-      case 447 : itype = XSTORMY16_INSN_ASRGRIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_asrgrimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 447 :
+        entire_insn = base_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;
       case 448 : /* fall through */
       case 449 : /* fall through */
       case 450 : /* fall through */
@@ -935,7 +1169,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 452 : /* fall through */
       case 453 : /* fall through */
       case 454 : /* fall through */
-      case 455 : itype = XSTORMY16_INSN_RRCGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_rrcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 455 :
+        entire_insn = base_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;
       case 456 : /* fall through */
       case 457 : /* fall through */
       case 458 : /* fall through */
@@ -943,7 +1181,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 460 : /* fall through */
       case 461 : /* fall through */
       case 462 : /* fall through */
-      case 463 : itype = XSTORMY16_INSN_RRCGRIMM4; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_rrcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 463 :
+        entire_insn = base_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;
       case 464 : /* fall through */
       case 465 : /* fall through */
       case 466 : /* fall through */
@@ -951,7 +1193,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 468 : /* fall through */
       case 469 : /* fall through */
       case 470 : /* fall through */
-      case 471 : itype = XSTORMY16_INSN_RLCGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_rrcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 471 :
+        entire_insn = base_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;
       case 472 : /* fall through */
       case 473 : /* fall through */
       case 474 : /* fall through */
@@ -959,7 +1205,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 476 : /* fall through */
       case 477 : /* fall through */
       case 478 : /* fall through */
-      case 479 : itype = XSTORMY16_INSN_RLCGRIMM4; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_rrcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 479 :
+        entire_insn = base_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;
       case 480 : /* fall through */
       case 481 : /* fall through */
       case 482 : /* fall through */
@@ -967,7 +1217,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 484 : /* fall through */
       case 485 : /* fall through */
       case 486 : /* fall through */
-      case 487 : itype = XSTORMY16_INSN_SHRGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_shrgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 487 :
+        entire_insn = base_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;
       case 488 : /* fall through */
       case 489 : /* fall through */
       case 490 : /* fall through */
@@ -975,7 +1229,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 492 : /* fall through */
       case 493 : /* fall through */
       case 494 : /* fall through */
-      case 495 : itype = XSTORMY16_INSN_SHRGRIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_shrgrimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 495 :
+        entire_insn = base_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;
       case 496 : /* fall through */
       case 497 : /* fall through */
       case 498 : /* fall through */
@@ -983,7 +1241,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 500 : /* fall through */
       case 501 : /* fall through */
       case 502 : /* fall through */
-      case 503 : itype = XSTORMY16_INSN_SHLGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_shrgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 503 :
+        entire_insn = base_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;
       case 504 : /* fall through */
       case 505 : /* fall through */
       case 506 : /* fall through */
@@ -991,7 +1253,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 508 : /* fall through */
       case 509 : /* fall through */
       case 510 : /* fall through */
-      case 511 : itype = XSTORMY16_INSN_SHLGRIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_shrgrimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 511 :
+        entire_insn = base_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;
       case 512 : /* fall through */
       case 513 : /* fall through */
       case 514 : /* fall through */
@@ -999,7 +1265,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 516 : /* fall through */
       case 517 : /* fall through */
       case 518 : /* fall through */
-      case 519 : itype = XSTORMY16_INSN_ANDGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 519 :
+        entire_insn = base_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;
       case 520 : /* fall through */
       case 521 : /* fall through */
       case 522 : /* fall through */
@@ -1007,7 +1277,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 524 : /* fall through */
       case 525 : /* fall through */
       case 526 : /* fall through */
-      case 527 : itype = XSTORMY16_INSN_ANDIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 527 :
+        entire_insn = base_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;
       case 528 : /* fall through */
       case 529 : /* fall through */
       case 530 : /* fall through */
@@ -1015,7 +1289,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 532 : /* fall through */
       case 533 : /* fall through */
       case 534 : /* fall through */
-      case 535 : itype = XSTORMY16_INSN_ORGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 535 :
+        entire_insn = base_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;
       case 536 : /* fall through */
       case 537 : /* fall through */
       case 538 : /* fall through */
@@ -1023,7 +1301,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 540 : /* fall through */
       case 541 : /* fall through */
       case 542 : /* fall through */
-      case 543 : itype = XSTORMY16_INSN_ORIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 543 :
+        entire_insn = base_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;
       case 544 : /* fall through */
       case 545 : /* fall through */
       case 546 : /* fall through */
@@ -1031,7 +1313,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 548 : /* fall through */
       case 549 : /* fall through */
       case 550 : /* fall through */
-      case 551 : itype = XSTORMY16_INSN_XORGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 551 :
+        entire_insn = base_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;
       case 552 : /* fall through */
       case 553 : /* fall through */
       case 554 : /* fall through */
@@ -1039,7 +1325,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 556 : /* fall through */
       case 557 : /* fall through */
       case 558 : /* fall through */
-      case 559 : itype = XSTORMY16_INSN_XORIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 559 :
+        entire_insn = base_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;
       case 560 : /* fall through */
       case 561 : /* fall through */
       case 562 : /* fall through */
@@ -1047,7 +1337,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 564 : /* fall through */
       case 565 : /* fall through */
       case 566 : /* fall through */
-      case 567 : itype = XSTORMY16_INSN_MOVGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 567 :
+        entire_insn = base_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;
       case 568 : /* fall through */
       case 569 : /* fall through */
       case 570 : /* fall through */
@@ -1055,7 +1349,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 572 : /* fall through */
       case 573 : /* fall through */
       case 574 : /* fall through */
-      case 575 : itype = XSTORMY16_INSN_MOVWIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movwimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 575 :
+        entire_insn = base_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;
       case 584 : /* fall through */
       case 585 : /* fall through */
       case 586 : /* fall through */
@@ -1063,7 +1361,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 588 : /* fall through */
       case 589 : /* fall through */
       case 590 : /* fall through */
-      case 591 : itype = XSTORMY16_INSN_ADDGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_addgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 591 :
+        entire_insn = base_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;
       case 600 : /* fall through */
       case 601 : /* fall through */
       case 602 : /* fall through */
@@ -1071,7 +1373,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 604 : /* fall through */
       case 605 : /* fall through */
       case 606 : /* fall through */
-      case 607 : itype = XSTORMY16_INSN_ADCGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_adcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 607 :
+        entire_insn = base_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;
       case 616 : /* fall through */
       case 617 : /* fall through */
       case 618 : /* fall through */
@@ -1079,7 +1385,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 620 : /* fall through */
       case 621 : /* fall through */
       case 622 : /* fall through */
-      case 623 : itype = XSTORMY16_INSN_SUBGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_addgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 623 :
+        entire_insn = base_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;
       case 632 : /* fall through */
       case 633 : /* fall through */
       case 634 : /* fall through */
@@ -1087,7 +1397,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 636 : /* fall through */
       case 637 : /* fall through */
       case 638 : /* fall through */
-      case 639 : itype = XSTORMY16_INSN_SBCGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_adcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 639 :
+        entire_insn = base_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;
       case 648 : /* fall through */
       case 649 : /* fall through */
       case 650 : /* fall through */
@@ -1095,7 +1409,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 652 : /* fall through */
       case 653 : /* fall through */
       case 654 : /* fall through */
-      case 655 : itype = XSTORMY16_INSN_ADDGRIMM4; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_addgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 655 :
+        entire_insn = base_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;
       case 664 : /* fall through */
       case 665 : /* fall through */
       case 666 : /* fall through */
@@ -1103,7 +1421,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 668 : /* fall through */
       case 669 : /* fall through */
       case 670 : /* fall through */
-      case 671 : itype = XSTORMY16_INSN_ADCGRIMM4; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_adcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 671 :
+        entire_insn = base_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;
       case 680 : /* fall through */
       case 681 : /* fall through */
       case 682 : /* fall through */
@@ -1111,7 +1433,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 684 : /* fall through */
       case 685 : /* fall through */
       case 686 : /* fall through */
-      case 687 : itype = XSTORMY16_INSN_SUBGRIMM4; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_addgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 687 :
+        entire_insn = base_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;
       case 696 : /* fall through */
       case 697 : /* fall through */
       case 698 : /* fall through */
@@ -1119,7 +1445,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 700 : /* fall through */
       case 701 : /* fall through */
       case 702 : /* fall through */
-      case 703 : itype = XSTORMY16_INSN_SBCGRIMM4; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_adcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 703 :
+        entire_insn = base_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;
       case 712 : /* fall through */
       case 713 : /* fall through */
       case 714 : /* fall through */
@@ -1127,7 +1457,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 716 : /* fall through */
       case 717 : /* fall through */
       case 718 : /* fall through */
-      case 719 : itype = XSTORMY16_INSN_ADDIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_addimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 719 :
+        entire_insn = base_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;
       case 728 : /* fall through */
       case 729 : /* fall through */
       case 730 : /* fall through */
@@ -1135,7 +1469,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 732 : /* fall through */
       case 733 : /* fall through */
       case 734 : /* fall through */
-      case 735 : itype = XSTORMY16_INSN_ADCIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_adcimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 735 :
+        entire_insn = base_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;
       case 744 : /* fall through */
       case 745 : /* fall through */
       case 746 : /* fall through */
@@ -1143,7 +1481,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 748 : /* fall through */
       case 749 : /* fall through */
       case 750 : /* fall through */
-      case 751 : itype = XSTORMY16_INSN_SUBIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_addimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 751 :
+        entire_insn = base_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;
       case 760 : /* fall through */
       case 761 : /* fall through */
       case 762 : /* fall through */
@@ -1151,7 +1493,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 764 : /* fall through */
       case 765 : /* fall through */
       case 766 : /* fall through */
-      case 767 : itype = XSTORMY16_INSN_SBCGRIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_adcimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 767 :
+        entire_insn = base_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;
       case 768 : /* fall through */
       case 770 : /* fall through */
       case 772 : /* fall through */
@@ -1159,7 +1505,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 776 : /* fall through */
       case 778 : /* fall through */
       case 780 : /* fall through */
-      case 782 : itype = XSTORMY16_INSN_MOVGRGRIPOSTINC; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movgrgripostinc (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 782 :
+        entire_insn = base_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;
       case 769 : /* fall through */
       case 771 : /* fall through */
       case 773 : /* fall through */
@@ -1167,7 +1517,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 777 : /* fall through */
       case 779 : /* fall through */
       case 781 : /* fall through */
-      case 783 : itype = XSTORMY16_INSN_MOVGRGRIIPOSTINC; xstormy16_extract_sfmt_movgrgriipostinc (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 783 :
+        if ((entire_insn & 0xfe08f000) == 0x60080000)
+          { itype = XSTORMY16_INSN_MOVGRGRIIPOSTINC; xstormy16_extract_sfmt_movgrgriipostinc (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 784 : /* fall through */
       case 786 : /* fall through */
       case 788 : /* fall through */
@@ -1175,7 +1528,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 792 : /* fall through */
       case 794 : /* fall through */
       case 796 : /* fall through */
-      case 798 : itype = XSTORMY16_INSN_MOVGRIPOSTINCGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movgripostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 798 :
+        entire_insn = base_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;
       case 785 : /* fall through */
       case 787 : /* fall through */
       case 789 : /* fall through */
@@ -1183,7 +1540,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 793 : /* fall through */
       case 795 : /* fall through */
       case 797 : /* fall through */
-      case 799 : itype = XSTORMY16_INSN_MOVGRIIPOSTINCGR; xstormy16_extract_sfmt_movgriipostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 799 :
+        if ((entire_insn & 0xfe08f000) == 0x62080000)
+          { itype = XSTORMY16_INSN_MOVGRIIPOSTINCGR; xstormy16_extract_sfmt_movgriipostincgr (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 800 : /* fall through */
       case 802 : /* fall through */
       case 804 : /* fall through */
@@ -1191,7 +1551,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 808 : /* fall through */
       case 810 : /* fall through */
       case 812 : /* fall through */
-      case 814 : itype = XSTORMY16_INSN_MOVFGRGRIPOSTINC; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movfgrgripostinc (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 814 :
+        entire_insn = base_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;
       case 801 : /* fall through */
       case 803 : /* fall through */
       case 805 : /* fall through */
@@ -1199,7 +1563,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 809 : /* fall through */
       case 811 : /* fall through */
       case 813 : /* fall through */
-      case 815 : itype = XSTORMY16_INSN_MOVFGRGRIIPOSTINC; xstormy16_extract_sfmt_movfgrgriipostinc (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 815 :
+        if ((entire_insn & 0xfe088000) == 0x64080000)
+          { itype = XSTORMY16_INSN_MOVFGRGRIIPOSTINC; xstormy16_extract_sfmt_movfgrgriipostinc (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 816 : /* fall through */
       case 818 : /* fall through */
       case 820 : /* fall through */
@@ -1207,7 +1574,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 824 : /* fall through */
       case 826 : /* fall through */
       case 828 : /* fall through */
-      case 830 : itype = XSTORMY16_INSN_MOVFGRIPOSTINCGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movfgripostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 830 :
+        entire_insn = base_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;
       case 817 : /* fall through */
       case 819 : /* fall through */
       case 821 : /* fall through */
@@ -1215,7 +1586,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 825 : /* fall through */
       case 827 : /* fall through */
       case 829 : /* fall through */
-      case 831 : itype = XSTORMY16_INSN_MOVFGRIIPOSTINCGR; xstormy16_extract_sfmt_movfgriipostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 831 :
+        if ((entire_insn & 0xfe088000) == 0x66080000)
+          { itype = XSTORMY16_INSN_MOVFGRIIPOSTINCGR; xstormy16_extract_sfmt_movfgriipostincgr (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 832 : /* fall through */
       case 834 : /* fall through */
       case 836 : /* fall through */
@@ -1223,7 +1597,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 840 : /* fall through */
       case 842 : /* fall through */
       case 844 : /* fall through */
-      case 846 : itype = XSTORMY16_INSN_MOVGRGRIPREDEC; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movgrgripredec (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 846 :
+        entire_insn = base_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;
       case 833 : /* fall through */
       case 835 : /* fall through */
       case 837 : /* fall through */
@@ -1231,7 +1609,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 841 : /* fall through */
       case 843 : /* fall through */
       case 845 : /* fall through */
-      case 847 : itype = XSTORMY16_INSN_MOVGRGRIIPREDEC; xstormy16_extract_sfmt_movgrgriipredec (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 847 :
+        if ((entire_insn & 0xfe08f000) == 0x68080000)
+          { itype = XSTORMY16_INSN_MOVGRGRIIPREDEC; xstormy16_extract_sfmt_movgrgriipredec (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 848 : /* fall through */
       case 850 : /* fall through */
       case 852 : /* fall through */
@@ -1239,7 +1620,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 856 : /* fall through */
       case 858 : /* fall through */
       case 860 : /* fall through */
-      case 862 : itype = XSTORMY16_INSN_MOVGRIPREDECGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movgripredecgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 862 :
+        entire_insn = base_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;
       case 849 : /* fall through */
       case 851 : /* fall through */
       case 853 : /* fall through */
@@ -1247,7 +1632,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 857 : /* fall through */
       case 859 : /* fall through */
       case 861 : /* fall through */
-      case 863 : itype = XSTORMY16_INSN_MOVGRIIPREDECGR; xstormy16_extract_sfmt_movgriipredecgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 863 :
+        if ((entire_insn & 0xfe08f000) == 0x6a080000)
+          { itype = XSTORMY16_INSN_MOVGRIIPREDECGR; xstormy16_extract_sfmt_movgriipredecgr (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 864 : /* fall through */
       case 866 : /* fall through */
       case 868 : /* fall through */
@@ -1255,7 +1643,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 872 : /* fall through */
       case 874 : /* fall through */
       case 876 : /* fall through */
-      case 878 : itype = XSTORMY16_INSN_MOVFGRGRIPREDEC; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movfgrgripredec (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 878 :
+        entire_insn = base_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;
       case 865 : /* fall through */
       case 867 : /* fall through */
       case 869 : /* fall through */
@@ -1263,7 +1655,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 873 : /* fall through */
       case 875 : /* fall through */
       case 877 : /* fall through */
-      case 879 : itype = XSTORMY16_INSN_MOVFGRGRIIPREDEC; xstormy16_extract_sfmt_movfgrgriipredec (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 879 :
+        if ((entire_insn & 0xfe088000) == 0x6c080000)
+          { itype = XSTORMY16_INSN_MOVFGRGRIIPREDEC; xstormy16_extract_sfmt_movfgrgriipredec (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 880 : /* fall through */
       case 882 : /* fall through */
       case 884 : /* fall through */
@@ -1271,7 +1666,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 888 : /* fall through */
       case 890 : /* fall through */
       case 892 : /* fall through */
-      case 894 : itype = XSTORMY16_INSN_MOVFGRIPREDECGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movfgripredecgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 894 :
+        entire_insn = base_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;
       case 881 : /* fall through */
       case 883 : /* fall through */
       case 885 : /* fall through */
@@ -1279,7 +1678,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 889 : /* fall through */
       case 891 : /* fall through */
       case 893 : /* fall through */
-      case 895 : itype = XSTORMY16_INSN_MOVFGRIIPREDECGR; xstormy16_extract_sfmt_movfgriipredecgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 895 :
+        if ((entire_insn & 0xfe088000) == 0x6e080000)
+          { itype = XSTORMY16_INSN_MOVFGRIIPREDECGR; xstormy16_extract_sfmt_movfgriipredecgr (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 896 : /* fall through */
       case 898 : /* fall through */
       case 900 : /* fall through */
@@ -1287,7 +1689,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 904 : /* fall through */
       case 906 : /* fall through */
       case 908 : /* fall through */
-      case 910 : itype = XSTORMY16_INSN_MOVGRGRI; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movgrgri (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 910 :
+        entire_insn = base_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;
       case 897 : /* fall through */
       case 899 : /* fall through */
       case 901 : /* fall through */
@@ -1295,7 +1701,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 905 : /* fall through */
       case 907 : /* fall through */
       case 909 : /* fall through */
-      case 911 : itype = XSTORMY16_INSN_MOVGRGRII; xstormy16_extract_sfmt_movgrgrii (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 911 :
+        if ((entire_insn & 0xfe08f000) == 0x70080000)
+          { itype = XSTORMY16_INSN_MOVGRGRII; xstormy16_extract_sfmt_movgrgrii (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 912 : /* fall through */
       case 914 : /* fall through */
       case 916 : /* fall through */
@@ -1303,7 +1712,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 920 : /* fall through */
       case 922 : /* fall through */
       case 924 : /* fall through */
-      case 926 : itype = XSTORMY16_INSN_MOVGRIGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movgrigr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 926 :
+        entire_insn = base_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;
       case 913 : /* fall through */
       case 915 : /* fall through */
       case 917 : /* fall through */
@@ -1311,7 +1724,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 921 : /* fall through */
       case 923 : /* fall through */
       case 925 : /* fall through */
-      case 927 : itype = XSTORMY16_INSN_MOVGRIIGR; xstormy16_extract_sfmt_movgriigr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 927 :
+        if ((entire_insn & 0xfe08f000) == 0x72080000)
+          { itype = XSTORMY16_INSN_MOVGRIIGR; xstormy16_extract_sfmt_movgriigr (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 928 : /* fall through */
       case 930 : /* fall through */
       case 932 : /* fall through */
@@ -1319,7 +1735,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 936 : /* fall through */
       case 938 : /* fall through */
       case 940 : /* fall through */
-      case 942 : itype = XSTORMY16_INSN_MOVFGRGRI; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movfgrgri (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 942 :
+        entire_insn = base_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;
       case 929 : /* fall through */
       case 931 : /* fall through */
       case 933 : /* fall through */
@@ -1327,7 +1747,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 937 : /* fall through */
       case 939 : /* fall through */
       case 941 : /* fall through */
-      case 943 : itype = XSTORMY16_INSN_MOVFGRGRII; xstormy16_extract_sfmt_movfgrgrii (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 943 :
+        if ((entire_insn & 0xfe088000) == 0x74080000)
+          { itype = XSTORMY16_INSN_MOVFGRGRII; xstormy16_extract_sfmt_movfgrgrii (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 944 : /* fall through */
       case 946 : /* fall through */
       case 948 : /* fall through */
@@ -1335,7 +1758,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 952 : /* fall through */
       case 954 : /* fall through */
       case 956 : /* fall through */
-      case 958 : itype = XSTORMY16_INSN_MOVFGRIGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movfgrigr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 958 :
+        entire_insn = base_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;
       case 945 : /* fall through */
       case 947 : /* fall through */
       case 949 : /* fall through */
@@ -1343,7 +1770,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 953 : /* fall through */
       case 955 : /* fall through */
       case 957 : /* fall through */
-      case 959 : itype = XSTORMY16_INSN_MOVFGRIIGR; xstormy16_extract_sfmt_movfgriigr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 959 :
+        if ((entire_insn & 0xfe088000) == 0x76080000)
+          { itype = XSTORMY16_INSN_MOVFGRIIGR; xstormy16_extract_sfmt_movfgriigr (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 960 : /* fall through */
       case 961 : /* fall through */
       case 962 : /* fall through */
@@ -1359,7 +1789,10 @@ 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 : itype = XSTORMY16_INSN_MOVLMEMIMM; xstormy16_extract_sfmt_movlmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      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 976 : /* fall through */
       case 977 : /* fall through */
       case 978 : /* fall through */
@@ -1375,7 +1808,10 @@ 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 : itype = XSTORMY16_INSN_MOVHMEMIMM; xstormy16_extract_sfmt_movhmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      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 992 : /* fall through */
       case 993 : /* fall through */
       case 994 : /* fall through */
@@ -1383,7 +1819,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 996 : /* fall through */
       case 997 : /* fall through */
       case 998 : /* fall through */
-      case 999 : itype = XSTORMY16_INSN_BNLMEMIMM; xstormy16_extract_sfmt_bnlmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 999 :
+        if ((entire_insn & 0xff008000) == 0x7c000000)
+          { itype = XSTORMY16_INSN_BNLMEMIMM; xstormy16_extract_sfmt_bnlmemimm (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 1000 : /* fall through */
       case 1001 : /* fall through */
       case 1002 : /* fall through */
@@ -1391,7 +1830,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 1004 : /* fall through */
       case 1005 : /* fall through */
       case 1006 : /* fall through */
-      case 1007 : itype = XSTORMY16_INSN_BPLMEMIMM; xstormy16_extract_sfmt_bnlmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 1007 :
+        if ((entire_insn & 0xff008000) == 0x7d000000)
+          { itype = XSTORMY16_INSN_BPLMEMIMM; xstormy16_extract_sfmt_bnlmemimm (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 1008 : /* fall through */
       case 1009 : /* fall through */
       case 1010 : /* fall through */
@@ -1399,7 +1841,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 1012 : /* fall through */
       case 1013 : /* fall through */
       case 1014 : /* fall through */
-      case 1015 : itype = XSTORMY16_INSN_BNHMEMIMM; xstormy16_extract_sfmt_bnhmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 1015 :
+        if ((entire_insn & 0xff008000) == 0x7e000000)
+          { itype = XSTORMY16_INSN_BNHMEMIMM; xstormy16_extract_sfmt_bnhmemimm (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 1016 : /* fall through */
       case 1017 : /* fall through */
       case 1018 : /* fall through */
@@ -1407,7 +1852,10 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 1020 : /* fall through */
       case 1021 : /* fall through */
       case 1022 : /* fall through */
-      case 1023 : itype = XSTORMY16_INSN_BPHMEMIMM; xstormy16_extract_sfmt_bnhmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 1023 :
+        if ((entire_insn & 0xff008000) == 0x7f000000)
+          { itype = XSTORMY16_INSN_BPHMEMIMM; xstormy16_extract_sfmt_bnhmemimm (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 1024 : /* fall through */
       case 1025 : /* fall through */
       case 1026 : /* fall through */
@@ -1535,7 +1983,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 1148 : /* fall through */
       case 1149 : /* fall through */
       case 1150 : /* fall through */
-      case 1151 : itype = XSTORMY16_INSN_MOVLGRMEM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movlgrmem (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 1151 :
+        entire_insn = base_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;
       case 1152 : /* fall through */
       case 1153 : /* fall through */
       case 1154 : /* fall through */
@@ -1663,7 +2115,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 1276 : /* fall through */
       case 1277 : /* fall through */
       case 1278 : /* fall through */
-      case 1279 : itype = XSTORMY16_INSN_MOVLMEMGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movlmemgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 1279 :
+        entire_insn = base_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;
       case 1280 : /* fall through */
       case 1281 : /* fall through */
       case 1282 : /* fall through */
@@ -1791,7 +2247,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 1404 : /* fall through */
       case 1405 : /* fall through */
       case 1406 : /* fall through */
-      case 1407 : itype = XSTORMY16_INSN_MOVHGRMEM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movhgrmem (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 1407 :
+        entire_insn = base_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;
       case 1408 : /* fall through */
       case 1409 : /* fall through */
       case 1410 : /* fall through */
@@ -1919,7 +2379,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 1532 : /* fall through */
       case 1533 : /* fall through */
       case 1534 : /* fall through */
-      case 1535 : itype = XSTORMY16_INSN_MOVHMEMGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movhmemgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 1535 :
+        entire_insn = base_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;
       case 1536 : /* fall through */
       case 1537 : /* fall through */
       case 1538 : /* fall through */
@@ -2047,7 +2511,10 @@ 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 : itype = XSTORMY16_INSN_BCCIMM16; xstormy16_extract_sfmt_bccimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      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 1664 : /* fall through */
       case 1665 : /* fall through */
       case 1666 : /* fall through */
@@ -2175,7 +2642,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 1788 : /* fall through */
       case 1789 : /* fall through */
       case 1790 : /* fall through */
-      case 1791 : itype = XSTORMY16_INSN_BCC; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_bcc (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 1791 :
+        entire_insn = base_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;
       case 1792 : /* fall through */
       case 1793 : /* fall through */
       case 1794 : /* fall through */
@@ -2239,7 +2710,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 1908 : /* fall through */
       case 1909 : /* fall through */
       case 1910 : /* fall through */
-      case 1911 : itype = XSTORMY16_INSN_CLR1LMEMIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_set1lmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 1911 :
+        entire_insn = base_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;
       case 1800 : /* fall through */
       case 1801 : /* fall through */
       case 1802 : /* fall through */
@@ -2303,7 +2778,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 1916 : /* fall through */
       case 1917 : /* fall through */
       case 1918 : /* fall through */
-      case 1919 : itype = XSTORMY16_INSN_SET1LMEMIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_set1lmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 1919 :
+        entire_insn = base_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;
       case 1920 : /* fall through */
       case 1921 : /* fall through */
       case 1922 : /* fall through */
@@ -2367,7 +2846,11 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 2036 : /* fall through */
       case 2037 : /* fall through */
       case 2038 : /* fall through */
-      case 2039 : itype = XSTORMY16_INSN_CLR1HMEMIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_set1hmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 2039 :
+        entire_insn = base_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;
       case 1928 : /* fall through */
       case 1929 : /* fall through */
       case 1930 : /* fall through */
@@ -2431,8 +2914,12 @@ xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_
       case 2044 : /* fall through */
       case 2045 : /* fall through */
       case 2046 : /* fall through */
-      case 2047 : itype = XSTORMY16_INSN_SET1HMEMIMM; entire_insn = base_insn >> 16; 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;
+      case 2047 :
+        entire_insn = base_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;
+      default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
       }
     }
 
index c297445..3e03bce 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-2005 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index 2b19474..7d9ce34 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-2005 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
@@ -12,8 +12,5 @@ This file is part of the Red Hat simulators.
 #ifndef DEFS_XSTORMY16_H
 #define DEFS_XSTORMY16_H
 
-namespace xstormy16 {
-
-} // end xstormy16 namespace
 
 #endif /* DEFS_XSTORMY16_H */
index 99b3432..67945f7 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-2005 Red Hat, Inc.
 
 This file is part of the Red Hat simulators.
 
index fe9ba4e..7372c39 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2004 Red Hat, Inc.
+Copyright (C) 2000-2005 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 "xstormy16.h"
 
 using namespace xstormy16; // FIXME: namespace organization still wip
-
 #define GET_ATTR(name) GET_ATTR_##name ()
 
 
diff --git a/sid/component/cgen-cpu/xstormy16/xstormy16-write.cxx b/sid/component/cgen-cpu/xstormy16/xstormy16-write.cxx
deleted file mode 100644 (file)
index 450a3bb..0000000
+++ /dev/null
@@ -1,2027 +0,0 @@
-/* Simulator instruction operand writer for xstormy16.
-
-THIS FILE IS MACHINE GENERATED WITH CGEN.
-
-Copyright (C) 2000-2004 Red Hat, Inc.
-
-This file is part of the Red Hat simulators.
-
-
-*/
-
-
-#include "xstormy16.h"
-using namespace xstormy16;
-
-
-sem_status
-xstormy16_write_sfmt_empty (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.fmt_empty.f
-#define OPRND(f) par_exec->operands.sfmt_empty.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movlmemimm (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movlmemimm.f
-#define OPRND(f) par_exec->operands.sfmt_movlmemimm.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  if (written & (1ULL << 4))
-    {
-      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_and__DFLT_lmem8_65534_idx), OPRND (h_memory_HI_and__DFLT_lmem8_65534));
-    }
-  if (written & (1ULL << 5))
-    {
-      current_cpu->SETMEMQI (pc, OPRND (h_memory_QI_lmem8_idx), OPRND (h_memory_QI_lmem8));
-    }
-  if (written & (1ULL << 6))
-    {
-      current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movhmemimm (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movhmemimm.f
-#define OPRND(f) par_exec->operands.sfmt_movhmemimm.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  if (written & (1ULL << 4))
-    {
-      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_and__DFLT_hmem8_65534_idx), OPRND (h_memory_HI_and__DFLT_hmem8_65534));
-    }
-  if (written & (1ULL << 5))
-    {
-      current_cpu->SETMEMQI (pc, OPRND (h_memory_QI_hmem8_idx), OPRND (h_memory_QI_hmem8));
-    }
-  if (written & (1ULL << 6))
-    {
-      current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movlgrmem (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movlgrmem.f
-#define OPRND(f) par_exec->operands.sfmt_movlgrmem.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  if (written & (1ULL << 6))
-    {
-      current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rm_idx), OPRND (h_gr_HI_index_of__DFLT_Rm));
-    }
-  if (written & (1ULL << 7))
-    {
-      current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movhgrmem (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movhgrmem.f
-#define OPRND(f) par_exec->operands.sfmt_movhgrmem.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  if (written & (1ULL << 6))
-    {
-      current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rm_idx), OPRND (h_gr_HI_index_of__DFLT_Rm));
-    }
-  if (written & (1ULL << 7))
-    {
-      current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movlmemgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movlgrmem.f
-#define OPRND(f) par_exec->operands.sfmt_movlmemgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  if (written & (1ULL << 4))
-    {
-      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_and__DFLT_lmem8_65534_idx), OPRND (h_memory_HI_and__DFLT_lmem8_65534));
-    }
-  if (written & (1ULL << 5))
-    {
-      current_cpu->SETMEMQI (pc, OPRND (h_memory_QI_lmem8_idx), OPRND (h_memory_QI_lmem8));
-    }
-  if (written & (1ULL << 6))
-    {
-      current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movhmemgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movhgrmem.f
-#define OPRND(f) par_exec->operands.sfmt_movhmemgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  if (written & (1ULL << 4))
-    {
-      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_and__DFLT_hmem8_65534_idx), OPRND (h_memory_HI_and__DFLT_hmem8_65534));
-    }
-  if (written & (1ULL << 5))
-    {
-      current_cpu->SETMEMQI (pc, OPRND (h_memory_QI_hmem8_idx), OPRND (h_memory_QI_hmem8));
-    }
-  if (written & (1ULL << 6))
-    {
-      current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movgrgri (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movgrgri.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  if (written & (1ULL << 6))
-    {
-      current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rdm_idx), OPRND (h_gr_HI_index_of__DFLT_Rdm));
-    }
-  if (written & (1ULL << 7))
-    {
-      current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movgrgripostinc (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movgrgripostinc.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (FLD (f_Rs), OPRND (Rs));
-  if (written & (1ULL << 7))
-    {
-      current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rdm_idx), OPRND (h_gr_HI_index_of__DFLT_Rdm));
-    }
-  if (written & (1ULL << 8))
-    {
-      current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movgrgripredec (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movgrgripredec.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (FLD (f_Rs), OPRND (Rs));
-  if (written & (1ULL << 7))
-    {
-      current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rdm_idx), OPRND (h_gr_HI_index_of__DFLT_Rdm));
-    }
-  if (written & (1ULL << 8))
-    {
-      current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movgrigr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movgrigr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  if (written & (1ULL << 5))
-    {
-      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_and__DFLT_Rs_65534_idx), OPRND (h_memory_HI_and__DFLT_Rs_65534));
-    }
-  if (written & (1ULL << 6))
-    {
-      current_cpu->SETMEMQI (pc, OPRND (h_memory_QI_Rs_idx), OPRND (h_memory_QI_Rs));
-    }
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movgripostincgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movgripostincgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (FLD (f_Rs), OPRND (Rs));
-  if (written & (1ULL << 6))
-    {
-      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_and__DFLT_Rs_65534_idx), OPRND (h_memory_HI_and__DFLT_Rs_65534));
-    }
-  if (written & (1ULL << 7))
-    {
-      current_cpu->SETMEMQI (pc, OPRND (h_memory_QI_Rs_idx), OPRND (h_memory_QI_Rs));
-    }
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movgripredecgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movgripredecgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (FLD (f_Rs), OPRND (Rs));
-  if (written & (1ULL << 6))
-    {
-      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_and__DFLT_Rs_65534_idx), OPRND (h_memory_HI_and__DFLT_Rs_65534));
-    }
-  if (written & (1ULL << 7))
-    {
-      current_cpu->SETMEMQI (pc, OPRND (h_memory_QI_Rs_idx), OPRND (h_memory_QI_Rs));
-    }
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movgrgrii (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movgrgrii.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  if (written & (1ULL << 7))
-    {
-      current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rdm_idx), OPRND (h_gr_HI_index_of__DFLT_Rdm));
-    }
-  if (written & (1ULL << 8))
-    {
-      current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movgrgriipostinc (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movgrgriipostinc.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (FLD (f_Rs), OPRND (Rs));
-  if (written & (1ULL << 8))
-    {
-      current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rdm_idx), OPRND (h_gr_HI_index_of__DFLT_Rdm));
-    }
-  if (written & (1ULL << 9))
-    {
-      current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movgrgriipredec (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movgrgriipredec.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (FLD (f_Rs), OPRND (Rs));
-  if (written & (1ULL << 8))
-    {
-      current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rdm_idx), OPRND (h_gr_HI_index_of__DFLT_Rdm));
-    }
-  if (written & (1ULL << 9))
-    {
-      current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movgriigr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movgriigr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  if (written & (1ULL << 6))
-    {
-      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_and__DFLT_add__DFLT_Rs_imm12_65534_idx), OPRND (h_memory_HI_and__DFLT_add__DFLT_Rs_imm12_65534));
-    }
-  if (written & (1ULL << 7))
-    {
-      current_cpu->SETMEMQI (pc, OPRND (h_memory_QI_add__DFLT_Rs_imm12_idx), OPRND (h_memory_QI_add__DFLT_Rs_imm12));
-    }
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movgriipostincgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movgriipostincgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (FLD (f_Rs), OPRND (Rs));
-  if (written & (1ULL << 7))
-    {
-      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_and__DFLT_add__DFLT_Rs_imm12_65534_idx), OPRND (h_memory_HI_and__DFLT_add__DFLT_Rs_imm12_65534));
-    }
-  if (written & (1ULL << 8))
-    {
-      current_cpu->SETMEMQI (pc, OPRND (h_memory_QI_add__DFLT_Rs_imm12_idx), OPRND (h_memory_QI_add__DFLT_Rs_imm12));
-    }
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movgriipredecgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movgriipredecgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (FLD (f_Rs), OPRND (Rs));
-  if (written & (1ULL << 7))
-    {
-      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_and__DFLT_add__DFLT_Rs_imm12_65534_idx), OPRND (h_memory_HI_and__DFLT_add__DFLT_Rs_imm12_65534));
-    }
-  if (written & (1ULL << 8))
-    {
-      current_cpu->SETMEMQI (pc, OPRND (h_memory_QI_add__DFLT_Rs_imm12_idx), OPRND (h_memory_QI_add__DFLT_Rs_imm12));
-    }
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bccgrgr.f
-#define OPRND(f) par_exec->operands.sfmt_movgrgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movwimm8 (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bccgrimm8.f
-#define OPRND(f) par_exec->operands.sfmt_movwimm8.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_Rpsw_idx), OPRND (h_gr_HI_Rpsw));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movwgrimm8 (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bccgrimm8.f
-#define OPRND(f) par_exec->operands.sfmt_movwgrimm8.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rm_idx), OPRND (h_gr_HI_index_of__DFLT_Rm));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movwgrimm16 (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movwgrimm16.f
-#define OPRND(f) par_exec->operands.sfmt_movwgrimm16.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movlowgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_jmp.f
-#define OPRND(f) par_exec->operands.sfmt_movlowgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movfgrgri (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movfgrgri.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  if (written & (1ULL << 7))
-    {
-      current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rdm_idx), OPRND (h_gr_HI_index_of__DFLT_Rdm));
-    }
-  if (written & (1ULL << 8))
-    {
-      current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movfgrgripostinc (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movfgrgripostinc.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (FLD (f_Rs), OPRND (Rs));
-  if (written & (1ULL << 8))
-    {
-      current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rdm_idx), OPRND (h_gr_HI_index_of__DFLT_Rdm));
-    }
-  if (written & (1ULL << 9))
-    {
-      current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movfgrgripredec (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movfgrgripredec.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (FLD (f_Rs), OPRND (Rs));
-  if (written & (1ULL << 8))
-    {
-      current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rdm_idx), OPRND (h_gr_HI_index_of__DFLT_Rdm));
-    }
-  if (written & (1ULL << 9))
-    {
-      current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movfgrigr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movfgrigr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  if (written & (1ULL << 6))
-    {
-      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_and__DFLT_join__SI_HI_R8_Rs_65534_idx), OPRND (h_memory_HI_and__DFLT_join__SI_HI_R8_Rs_65534));
-    }
-  if (written & (1ULL << 7))
-    {
-      current_cpu->SETMEMQI (pc, OPRND (h_memory_QI_join__SI_HI_R8_Rs_idx), OPRND (h_memory_QI_join__SI_HI_R8_Rs));
-    }
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movfgripostincgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movfgripostincgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (FLD (f_Rs), OPRND (Rs));
-  if (written & (1ULL << 7))
-    {
-      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_and__DFLT_join__SI_HI_R8_Rs_65534_idx), OPRND (h_memory_HI_and__DFLT_join__SI_HI_R8_Rs_65534));
-    }
-  if (written & (1ULL << 8))
-    {
-      current_cpu->SETMEMQI (pc, OPRND (h_memory_QI_join__SI_HI_R8_Rs_idx), OPRND (h_memory_QI_join__SI_HI_R8_Rs));
-    }
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movfgripredecgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movfgripredecgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (FLD (f_Rs), OPRND (Rs));
-  if (written & (1ULL << 7))
-    {
-      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_and__DFLT_join__SI_HI_R8_Rs_65534_idx), OPRND (h_memory_HI_and__DFLT_join__SI_HI_R8_Rs_65534));
-    }
-  if (written & (1ULL << 8))
-    {
-      current_cpu->SETMEMQI (pc, OPRND (h_memory_QI_join__SI_HI_R8_Rs_idx), OPRND (h_memory_QI_join__SI_HI_R8_Rs));
-    }
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movfgrgrii (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movfgrgrii.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  if (written & (1ULL << 8))
-    {
-      current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rdm_idx), OPRND (h_gr_HI_index_of__DFLT_Rdm));
-    }
-  if (written & (1ULL << 9))
-    {
-      current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movfgrgriipostinc (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movfgrgriipostinc.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (FLD (f_Rs), OPRND (Rs));
-  if (written & (1ULL << 9))
-    {
-      current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rdm_idx), OPRND (h_gr_HI_index_of__DFLT_Rdm));
-    }
-  if (written & (1ULL << 10))
-    {
-      current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movfgrgriipredec (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movfgrgriipredec.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (FLD (f_Rs), OPRND (Rs));
-  if (written & (1ULL << 9))
-    {
-      current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rdm_idx), OPRND (h_gr_HI_index_of__DFLT_Rdm));
-    }
-  if (written & (1ULL << 10))
-    {
-      current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movfgriigr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movfgriigr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  if (written & (1ULL << 7))
-    {
-      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_and__DFLT_add__DFLT_join__SI_HI_Rb_Rs_imm12_4294967294_idx), OPRND (h_memory_HI_and__DFLT_add__DFLT_join__SI_HI_Rb_Rs_imm12_4294967294));
-    }
-  if (written & (1ULL << 8))
-    {
-      current_cpu->SETMEMQI (pc, OPRND (h_memory_QI_add__DFLT_join__SI_HI_Rb_Rs_imm12_idx), OPRND (h_memory_QI_add__DFLT_join__SI_HI_Rb_Rs_imm12));
-    }
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movfgriipostincgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movfgriipostincgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (FLD (f_Rs), OPRND (Rs));
-  if (written & (1ULL << 8))
-    {
-      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_and__DFLT_add__DFLT_join__SI_HI_Rb_Rs_imm12_4294967294_idx), OPRND (h_memory_HI_and__DFLT_add__DFLT_join__SI_HI_Rb_Rs_imm12_4294967294));
-    }
-  if (written & (1ULL << 9))
-    {
-      current_cpu->SETMEMQI (pc, OPRND (h_memory_QI_add__DFLT_join__SI_HI_Rb_Rs_imm12_idx), OPRND (h_memory_QI_add__DFLT_join__SI_HI_Rb_Rs_imm12));
-    }
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_movfgriipredecgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
-#define OPRND(f) par_exec->operands.sfmt_movfgriipredecgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (FLD (f_Rs), OPRND (Rs));
-  if (written & (1ULL << 8))
-    {
-      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_and__DFLT_add__DFLT_join__SI_HI_Rb_Rs_imm12_4294967294_idx), OPRND (h_memory_HI_and__DFLT_add__DFLT_join__SI_HI_Rb_Rs_imm12_4294967294));
-    }
-  if (written & (1ULL << 9))
-    {
-      current_cpu->SETMEMQI (pc, OPRND (h_memory_QI_add__DFLT_join__SI_HI_Rb_Rs_imm12_idx), OPRND (h_memory_QI_add__DFLT_join__SI_HI_Rb_Rs_imm12));
-    }
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_maskgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bccgrgr.f
-#define OPRND(f) par_exec->operands.sfmt_maskgrgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_maskgrimm16 (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movwgrimm16.f
-#define OPRND(f) par_exec->operands.sfmt_maskgrimm16.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_pushgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_jmp.f
-#define OPRND(f) par_exec->operands.sfmt_pushgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_sp_idx), OPRND (h_memory_HI_sp));
-  current_cpu->h_gr_set (((UINT) 15), OPRND (sp));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_popgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_jmp.f
-#define OPRND(f) par_exec->operands.sfmt_popgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (FLD (f_Rd), OPRND (Rd));
-  current_cpu->h_gr_set (((UINT) 15), OPRND (sp));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_swpn (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_jmp.f
-#define OPRND(f) par_exec->operands.sfmt_swpn.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_swpw (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bccgrgr.f
-#define OPRND(f) par_exec->operands.sfmt_swpw.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (FLD (f_Rs), OPRND (Rs));
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_andgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bccgrgr.f
-#define OPRND(f) par_exec->operands.sfmt_andgrgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_andimm8 (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bccgrimm8.f
-#define OPRND(f) par_exec->operands.sfmt_andimm8.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_Rpsw_idx), OPRND (h_gr_HI_Rpsw));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_andgrimm16 (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movwgrimm16.f
-#define OPRND(f) par_exec->operands.sfmt_andgrimm16.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_addgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bccgrgr.f
-#define OPRND(f) par_exec->operands.sfmt_addgrgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_addgrimm4 (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bngrimm4.f
-#define OPRND(f) par_exec->operands.sfmt_addgrimm4.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_addimm8 (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bccgrimm8.f
-#define OPRND(f) par_exec->operands.sfmt_addimm8.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_Rpsw_idx), OPRND (h_gr_HI_Rpsw));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_addgrimm16 (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movwgrimm16.f
-#define OPRND(f) par_exec->operands.sfmt_addgrimm16.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_adcgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bccgrgr.f
-#define OPRND(f) par_exec->operands.sfmt_adcgrgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_adcgrimm4 (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bngrimm4.f
-#define OPRND(f) par_exec->operands.sfmt_adcgrimm4.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_adcimm8 (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bccgrimm8.f
-#define OPRND(f) par_exec->operands.sfmt_adcimm8.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_Rpsw_idx), OPRND (h_gr_HI_Rpsw));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_adcgrimm16 (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_movwgrimm16.f
-#define OPRND(f) par_exec->operands.sfmt_adcgrimm16.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_incgrimm2 (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_incgrimm2.f
-#define OPRND(f) par_exec->operands.sfmt_incgrimm2.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_rrcgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bccgrgr.f
-#define OPRND(f) par_exec->operands.sfmt_rrcgrgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_rrcgrimm4 (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bngrimm4.f
-#define OPRND(f) par_exec->operands.sfmt_rrcgrimm4.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_shrgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bccgrgr.f
-#define OPRND(f) par_exec->operands.sfmt_shrgrgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_shrgrimm (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bngrimm4.f
-#define OPRND(f) par_exec->operands.sfmt_shrgrimm.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_asrgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bccgrgr.f
-#define OPRND(f) par_exec->operands.sfmt_asrgrgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_asrgrimm (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bngrimm4.f
-#define OPRND(f) par_exec->operands.sfmt_asrgrimm.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_set1grimm (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bngrimm4.f
-#define OPRND(f) par_exec->operands.sfmt_set1grimm.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rd_idx), OPRND (h_gr_HI_index_of__DFLT_Rd));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_set1lmemimm (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_set1lmemimm.f
-#define OPRND(f) par_exec->operands.sfmt_set1lmemimm.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->SETMEMQI (pc, OPRND (h_memory_QI_lmem8_idx), OPRND (h_memory_QI_lmem8));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_set1hmemimm (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_set1hmemimm.f
-#define OPRND(f) par_exec->operands.sfmt_set1hmemimm.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->SETMEMQI (pc, OPRND (h_memory_QI_hmem8_idx), OPRND (h_memory_QI_hmem8));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_bccgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bccgrgr.f
-#define OPRND(f) par_exec->operands.sfmt_bccgrgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  if (written & (1ULL << 13))
-    {
-      current_cpu->branch (OPRND (pc), npc, status);
-    }
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_bccgrimm8 (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bccgrimm8.f
-#define OPRND(f) par_exec->operands.sfmt_bccgrimm8.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  if (written & (1ULL << 13))
-    {
-      current_cpu->branch (OPRND (pc), npc, status);
-    }
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_bccimm16 (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bccimm16.f
-#define OPRND(f) par_exec->operands.sfmt_bccimm16.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  if (written & (1ULL << 12))
-    {
-      current_cpu->branch (OPRND (pc), npc, status);
-    }
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_bngrimm4 (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bngrimm4.f
-#define OPRND(f) par_exec->operands.sfmt_bngrimm4.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_Rpsw_set (OPRND (Rpsw));
-  if (written & (1ULL << 5))
-    {
-      current_cpu->branch (OPRND (pc), npc, status);
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_bngrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bccgrgr.f
-#define OPRND(f) par_exec->operands.sfmt_bngrgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_Rpsw_set (OPRND (Rpsw));
-  if (written & (1ULL << 5))
-    {
-      current_cpu->branch (OPRND (pc), npc, status);
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_bnlmemimm (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bnlmemimm.f
-#define OPRND(f) par_exec->operands.sfmt_bnlmemimm.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  if (written & (1ULL << 4))
-    {
-      current_cpu->branch (OPRND (pc), npc, status);
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_bnhmemimm (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bnhmemimm.f
-#define OPRND(f) par_exec->operands.sfmt_bnhmemimm.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  if (written & (1ULL << 4))
-    {
-      current_cpu->branch (OPRND (pc), npc, status);
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_bcc (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_bcc.f
-#define OPRND(f) par_exec->operands.sfmt_bcc.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  if (written & (1ULL << 7))
-    {
-      current_cpu->branch (OPRND (pc), npc, status);
-    }
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_bgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_jmp.f
-#define OPRND(f) par_exec->operands.sfmt_bgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->branch (OPRND (pc), npc, status);
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_br (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_br.f
-#define OPRND(f) par_exec->operands.sfmt_br.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->branch (OPRND (pc), npc, status);
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_jmp (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_jmp.f
-#define OPRND(f) par_exec->operands.sfmt_jmp.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->branch (OPRND (pc), npc, status);
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_jmpf (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_jmpf.f
-#define OPRND(f) par_exec->operands.sfmt_jmpf.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->branch (OPRND (pc), npc, status);
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_callrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_jmp.f
-#define OPRND(f) par_exec->operands.sfmt_callrgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->SETMEMSI (pc, OPRND (h_memory_SI_sp_idx), OPRND (h_memory_SI_sp));
-  current_cpu->branch (OPRND (pc), npc, status);
-  current_cpu->h_gr_set (((UINT) 15), OPRND (sp));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_callrimm (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_br.f
-#define OPRND(f) par_exec->operands.sfmt_callrimm.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->SETMEMSI (pc, OPRND (h_memory_SI_sp_idx), OPRND (h_memory_SI_sp));
-  current_cpu->branch (OPRND (pc), npc, status);
-  current_cpu->h_gr_set (((UINT) 15), OPRND (sp));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_callgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_jmp.f
-#define OPRND(f) par_exec->operands.sfmt_callgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->SETMEMSI (pc, OPRND (h_memory_SI_sp_idx), OPRND (h_memory_SI_sp));
-  current_cpu->branch (OPRND (pc), npc, status);
-  current_cpu->h_gr_set (((UINT) 15), OPRND (sp));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_callfimm (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_jmpf.f
-#define OPRND(f) par_exec->operands.sfmt_callfimm.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->SETMEMSI (pc, OPRND (h_memory_SI_sp_idx), OPRND (h_memory_SI_sp));
-  current_cpu->branch (OPRND (pc), npc, status);
-  current_cpu->h_gr_set (((UINT) 15), OPRND (sp));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_icallrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_jmp.f
-#define OPRND(f) par_exec->operands.sfmt_icallrgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_add__DFLT_sp_4_idx), OPRND (h_memory_HI_add__DFLT_sp_4));
-  current_cpu->SETMEMSI (pc, OPRND (h_memory_SI_sp_idx), OPRND (h_memory_SI_sp));
-  current_cpu->branch (OPRND (pc), npc, status);
-  current_cpu->h_gr_set (((UINT) 15), OPRND (sp));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_icallgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_jmp.f
-#define OPRND(f) par_exec->operands.sfmt_icallgr.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_add__DFLT_sp_4_idx), OPRND (h_memory_HI_add__DFLT_sp_4));
-  current_cpu->SETMEMSI (pc, OPRND (h_memory_SI_sp_idx), OPRND (h_memory_SI_sp));
-  current_cpu->branch (OPRND (pc), npc, status);
-  current_cpu->h_gr_set (((UINT) 15), OPRND (sp));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_icallfimm (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.sfmt_jmpf.f
-#define OPRND(f) par_exec->operands.sfmt_icallfimm.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_add__DFLT_sp_4_idx), OPRND (h_memory_HI_add__DFLT_sp_4));
-  current_cpu->SETMEMSI (pc, OPRND (h_memory_SI_sp_idx), OPRND (h_memory_SI_sp));
-  current_cpu->branch (OPRND (pc), npc, status);
-  current_cpu->h_gr_set (((UINT) 15), OPRND (sp));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_iret (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.fmt_empty.f
-#define OPRND(f) par_exec->operands.sfmt_iret.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->branch (OPRND (pc), npc, status);
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-  current_cpu->h_gr_set (((UINT) 15), OPRND (sp));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_ret (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.fmt_empty.f
-#define OPRND(f) par_exec->operands.sfmt_ret.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->branch (OPRND (pc), npc, status);
-  current_cpu->h_gr_set (((UINT) 15), OPRND (sp));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_mul (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.fmt_empty.f
-#define OPRND(f) par_exec->operands.sfmt_mul.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (((UINT) 0), OPRND (R0));
-  current_cpu->h_gr_set (((UINT) 1), OPRND (R1));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_sdiv (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.fmt_empty.f
-#define OPRND(f) par_exec->operands.sfmt_sdiv.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (((UINT) 0), OPRND (R0));
-  current_cpu->h_gr_set (((UINT) 1), OPRND (R1));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_sdivlh (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.fmt_empty.f
-#define OPRND(f) par_exec->operands.sfmt_sdivlh.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-  current_cpu->h_gr_set (((UINT) 0), OPRND (R0));
-  current_cpu->h_gr_set (((UINT) 1), OPRND (R1));
-  current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-
-
-sem_status
-xstormy16_write_sfmt_reset (xstormy16_cpu* current_cpu, xstormy16_scache* sem, xstormy16_parexec* par_exec)
-{
-#define FLD(f) abuf->fields.fmt_empty.f
-#define OPRND(f) par_exec->operands.sfmt_reset.f
-  xstormy16_scache* abuf = sem;
-  unsigned long long written = abuf->written;
-  PCADDR pc = abuf->addr;
-  PCADDR npc = 0; // dummy value for branches
-  sem_status status = SEM_STATUS_NORMAL; // ditto
-
-
-  return status;
-#undef OPRND
-#undef FLD
-}
-