OSDN Git Service

* xstormy16-decode.cxx: Regenerate.
authordj <dj>
Tue, 18 Feb 2003 22:57:29 +0000 (22:57 +0000)
committerdj <dj>
Tue, 18 Feb 2003 22:57:29 +0000 (22:57 +0000)
* xstormy16-sem.cxx: Regenerate.
* xstormy16-write.cxx: Regenerate.

* xstormy16.cxx (parity): Fix logic.

sid/component/cgen-cpu/xstormy16/ChangeLog
sid/component/cgen-cpu/xstormy16/xstormy16-decode.cxx
sid/component/cgen-cpu/xstormy16/xstormy16-sem.cxx
sid/component/cgen-cpu/xstormy16/xstormy16-write.cxx
sid/component/cgen-cpu/xstormy16/xstormy16.cxx

index 90d4c8a..941b3c0 100644 (file)
@@ -1,3 +1,11 @@
+2003-02-18  DJ Delorie  <dj@redhat.com>
+
+       * xstormy16-decode.cxx: Regenerate.
+       * xstormy16-sem.cxx: Regenerate.
+       * xstormy16-write.cxx: Regenerate.
+       
+       * xstormy16.cxx (parity): Fix logic.
+
 2002-11-25  DJ Delorie  <dj@redhat.com>
 
        * xstormy16-decode.cxx: Regenerate.
index 5e15971..e3cb531 100644 (file)
@@ -199,6 +199,8 @@ xstormy16_extract_sfmt_movgrgriipredec (xstormy16_scache* abuf, xstormy16_cpu* c
 static void
 xstormy16_extract_sfmt_movgriigr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
 static void
+xstormy16_extract_sfmt_movgriipostincgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
+static void
 xstormy16_extract_sfmt_movgriipredecgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
 static void
 xstormy16_extract_sfmt_movgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
@@ -219,6 +221,8 @@ xstormy16_extract_sfmt_movfgrgripredec (xstormy16_scache* abuf, xstormy16_cpu* c
 static void
 xstormy16_extract_sfmt_movfgrigr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
 static void
+xstormy16_extract_sfmt_movfgripostincgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
+static void
 xstormy16_extract_sfmt_movfgripredecgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
 static void
 xstormy16_extract_sfmt_movfgrgrii (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
@@ -229,6 +233,8 @@ xstormy16_extract_sfmt_movfgrgriipredec (xstormy16_scache* abuf, xstormy16_cpu*
 static void
 xstormy16_extract_sfmt_movfgriigr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
 static void
+xstormy16_extract_sfmt_movfgriipostincgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
+static void
 xstormy16_extract_sfmt_movfgriipredecgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
 static void
 xstormy16_extract_sfmt_maskgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
@@ -1154,7 +1160,7 @@ 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_movgriigr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 799 : itype = XSTORMY16_INSN_MOVGRIIPOSTINCGR; xstormy16_extract_sfmt_movgriipostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 800 : /* fall through */
       case 802 : /* fall through */
       case 804 : /* fall through */
@@ -1178,7 +1184,7 @@ 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; xstormy16_extract_sfmt_movfgrigr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 830 : itype = XSTORMY16_INSN_MOVFGRIPOSTINCGR; xstormy16_extract_sfmt_movfgripostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 817 : /* fall through */
       case 819 : /* fall through */
       case 821 : /* fall through */
@@ -1186,7 +1192,7 @@ 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_movfgriigr (this, current_cpu, pc, base_insn, entire_insn); goto done;
+      case 831 : itype = XSTORMY16_INSN_MOVFGRIIPOSTINCGR; xstormy16_extract_sfmt_movfgriipostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
       case 832 : /* fall through */
       case 834 : /* fall through */
       case 836 : /* fall through */
@@ -2888,6 +2894,39 @@ xstormy16_extract_sfmt_movgriigr (xstormy16_scache* abuf, xstormy16_cpu* current
 }
 
 void
+xstormy16_extract_sfmt_movgriipostincgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
+    xstormy16_insn_word insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
+    UINT f_op2m;
+    UINT f_Rs;
+    UINT f_Rdm;
+    INT f_imm12;
+
+    f_op2m = EXTRACT_MSB0_UINT (insn, 32, 7, 1);
+    f_Rs = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
+    f_Rdm = EXTRACT_MSB0_UINT (insn, 32, 13, 3);
+    f_imm12 = EXTRACT_MSB0_INT (insn, 32, 20, 12);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_Rdm) = f_Rdm;
+  FLD (f_Rs) = f_Rs;
+  FLD (f_imm12) = f_imm12;
+  FLD (f_op2m) = f_op2m;
+  if (UNLIKELY(current_cpu->trace_extract_p))
+    {
+      current_cpu->trace_stream 
+        << "0x" << hex << pc << dec << " (sfmt_movgriipostincgr)\t"
+        << " f_Rdm:0x" << hex << f_Rdm << dec
+        << " f_Rs:0x" << hex << f_Rs << dec
+        << " f_imm12:0x" << hex << f_imm12 << dec
+        << " f_op2m:0x" << hex << f_op2m << dec
+        << endl;
+    }
+
+#undef FLD
+}
+
+void
 xstormy16_extract_sfmt_movgriipredecgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
     xstormy16_insn_word insn = entire_insn;
 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
@@ -3154,6 +3193,35 @@ xstormy16_extract_sfmt_movfgrigr (xstormy16_scache* abuf, xstormy16_cpu* current
 }
 
 void
+xstormy16_extract_sfmt_movfgripostincgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
+    xstormy16_insn_word insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
+    UINT f_op2m;
+    UINT f_Rs;
+    UINT f_Rdm;
+
+    f_op2m = EXTRACT_MSB0_UINT (insn, 16, 7, 1);
+    f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
+    f_Rdm = EXTRACT_MSB0_UINT (insn, 16, 13, 3);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_Rdm) = f_Rdm;
+  FLD (f_Rs) = f_Rs;
+  FLD (f_op2m) = f_op2m;
+  if (UNLIKELY(current_cpu->trace_extract_p))
+    {
+      current_cpu->trace_stream 
+        << "0x" << hex << pc << dec << " (sfmt_movfgripostincgr)\t"
+        << " f_Rdm:0x" << hex << f_Rdm << dec
+        << " f_Rs:0x" << hex << f_Rs << dec
+        << " f_op2m:0x" << hex << f_op2m << dec
+        << endl;
+    }
+
+#undef FLD
+}
+
+void
 xstormy16_extract_sfmt_movfgripredecgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
     xstormy16_insn_word insn = entire_insn;
 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
@@ -3331,6 +3399,43 @@ xstormy16_extract_sfmt_movfgriigr (xstormy16_scache* abuf, xstormy16_cpu* curren
 }
 
 void
+xstormy16_extract_sfmt_movfgriipostincgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
+    xstormy16_insn_word insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_movfgrgrii.f
+    UINT f_op2m;
+    UINT f_Rs;
+    UINT f_Rdm;
+    UINT f_Rb;
+    INT f_imm12;
+
+    f_op2m = EXTRACT_MSB0_UINT (insn, 32, 7, 1);
+    f_Rs = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
+    f_Rdm = EXTRACT_MSB0_UINT (insn, 32, 13, 3);
+    f_Rb = EXTRACT_MSB0_UINT (insn, 32, 17, 3);
+    f_imm12 = EXTRACT_MSB0_INT (insn, 32, 20, 12);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_Rb) = f_Rb;
+  FLD (f_Rdm) = f_Rdm;
+  FLD (f_Rs) = f_Rs;
+  FLD (f_imm12) = f_imm12;
+  FLD (f_op2m) = f_op2m;
+  if (UNLIKELY(current_cpu->trace_extract_p))
+    {
+      current_cpu->trace_stream 
+        << "0x" << hex << pc << dec << " (sfmt_movfgriipostincgr)\t"
+        << " f_Rb:0x" << hex << f_Rb << dec
+        << " f_Rdm:0x" << hex << f_Rdm << dec
+        << " f_Rs:0x" << hex << f_Rs << dec
+        << " f_imm12:0x" << hex << f_imm12 << dec
+        << " f_op2m:0x" << hex << f_op2m << dec
+        << endl;
+    }
+
+#undef FLD
+}
+
+void
 xstormy16_extract_sfmt_movfgriipredecgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
     xstormy16_insn_word insn = entire_insn;
 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
index a859622..fbd13bc 100644 (file)
@@ -53,26 +53,18 @@ xstormy16_sem_movlmemimm (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
 if (FLD (f_op2m)) {
 {
   HI tmp_nvalue;
-  SI tmp_ndest;
   tmp_nvalue = FLD (f_imm16);
-  tmp_ndest = current_cpu->GETMEMHI (pc, FLD (f_lmem8));
   {
     SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 65436), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-if (ANDSI (tmp_ndest, 1)) {
-{
-  tmp_ndest = SUBSI (tmp_ndest, 1);
-  tmp_nvalue = ORHI (ANDHI (SLLHI (tmp_nvalue, 8), 65280), ANDHI (SRLHI (tmp_nvalue, 8), 255));
-}
-}
   {
     HI opval = tmp_nvalue;
-    current_cpu->SETMEMHI (pc, FLD (f_lmem8), opval);
+    current_cpu->SETMEMHI (pc, ANDSI (FLD (f_lmem8), 65534), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) FLD (f_lmem8) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+      current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) ANDSI (FLD (f_lmem8), 65534) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
   }
 }
 } else {
@@ -113,26 +105,18 @@ xstormy16_sem_movhmemimm (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
 if (FLD (f_op2m)) {
 {
   HI tmp_nvalue;
-  SI tmp_ndest;
   tmp_nvalue = FLD (f_imm16);
-  tmp_ndest = current_cpu->GETMEMHI (pc, FLD (f_hmem8));
   {
     SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 65436), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-if (ANDSI (tmp_ndest, 1)) {
-{
-  tmp_ndest = SUBSI (tmp_ndest, 1);
-  tmp_nvalue = ORHI (ANDHI (SLLHI (tmp_nvalue, 8), 65280), ANDHI (SRLHI (tmp_nvalue, 8), 255));
-}
-}
   {
     HI opval = tmp_nvalue;
-    current_cpu->SETMEMHI (pc, FLD (f_hmem8), opval);
+    current_cpu->SETMEMHI (pc, ANDSI (FLD (f_hmem8), 65534), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) FLD (f_hmem8) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+      current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) ANDSI (FLD (f_hmem8), 65534) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
   }
 }
 } else {
@@ -175,34 +159,34 @@ if (FLD (f_op2m)) {
   HI tmp_nvalue;
   tmp_nvalue = ((ANDSI (FLD (f_lmem8), 1)) ? (ORHI (ANDQI (SLLQI (current_cpu->GETMEMQI (pc, SUBSI (FLD (f_lmem8), 1)), 8), 65280), ANDQI (current_cpu->GETMEMQI (pc, FLD (f_lmem8)), 255))) : (current_cpu->GETMEMHI (pc, FLD (f_lmem8))));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-}
-} else {
-{
-  HI tmp_nvalue;
-  tmp_nvalue = current_cpu->GETMEMQI (pc, FLD (f_lmem8));
   {
     SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
+} else {
+{
+  HI tmp_nvalue;
+  tmp_nvalue = current_cpu->GETMEMQI (pc, FLD (f_lmem8));
   {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 }
 
@@ -227,34 +211,34 @@ if (FLD (f_op2m)) {
   HI tmp_nvalue;
   tmp_nvalue = ((ANDSI (FLD (f_hmem8), 1)) ? (ORHI (ANDQI (SLLQI (current_cpu->GETMEMQI (pc, SUBSI (FLD (f_hmem8), 1)), 8), 65280), ANDQI (current_cpu->GETMEMQI (pc, FLD (f_hmem8)), 255))) : (current_cpu->GETMEMHI (pc, FLD (f_hmem8))));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-}
-} else {
-{
-  HI tmp_nvalue;
-  tmp_nvalue = current_cpu->GETMEMQI (pc, FLD (f_hmem8));
   {
     SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
+} else {
+{
+  HI tmp_nvalue;
+  tmp_nvalue = current_cpu->GETMEMQI (pc, FLD (f_hmem8));
   {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 }
 
@@ -277,26 +261,18 @@ xstormy16_sem_movlmemgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
 if (FLD (f_op2m)) {
 {
   HI tmp_nvalue;
-  SI tmp_ndest;
   tmp_nvalue = current_cpu->h_gr_get (FLD (f_Rm));
-  tmp_ndest = current_cpu->GETMEMHI (pc, FLD (f_lmem8));
   {
     SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 65436), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-if (ANDSI (tmp_ndest, 1)) {
-{
-  tmp_ndest = SUBSI (tmp_ndest, 1);
-  tmp_nvalue = ORHI (ANDHI (SLLHI (tmp_nvalue, 8), 65280), ANDHI (SRLHI (tmp_nvalue, 8), 255));
-}
-}
   {
     HI opval = tmp_nvalue;
-    current_cpu->SETMEMHI (pc, FLD (f_lmem8), opval);
+    current_cpu->SETMEMHI (pc, ANDSI (FLD (f_lmem8), 65534), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) FLD (f_lmem8) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+      current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) ANDSI (FLD (f_lmem8), 65534) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
   }
 }
 } else {
@@ -337,26 +313,18 @@ xstormy16_sem_movhmemgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
 if (FLD (f_op2m)) {
 {
   HI tmp_nvalue;
-  SI tmp_ndest;
   tmp_nvalue = current_cpu->h_gr_get (FLD (f_Rm));
-  tmp_ndest = current_cpu->GETMEMHI (pc, FLD (f_lmem8));
   {
     SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 65436), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-if (ANDSI (tmp_ndest, 1)) {
-{
-  tmp_ndest = SUBSI (tmp_ndest, 1);
-  tmp_nvalue = ORHI (ANDHI (SLLHI (tmp_nvalue, 8), 65280), ANDHI (SRLHI (tmp_nvalue, 8), 255));
-}
-}
   {
     HI opval = tmp_nvalue;
-    current_cpu->SETMEMHI (pc, FLD (f_lmem8), opval);
+    current_cpu->SETMEMHI (pc, ANDSI (FLD (f_lmem8), 65534), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) FLD (f_lmem8) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
+      current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) ANDSI (FLD (f_lmem8), 65534) << dec << ']' << ":=0x" << hex << opval << dec << "  ";
   }
 }
 } else {
@@ -399,34 +367,34 @@ if (FLD (f_op2m)) {
   HI tmp_nvalue;
   tmp_nvalue = ((ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 1)) ? (ORHI (ANDQI (SLLQI (current_cpu->GETMEMQI (pc, SUBSI (current_cpu->h_gr_get (FLD (f_Rs)), 1)), 8), 65280), ANDQI (current_cpu->GETMEMQI (pc, current_cpu->h_gr_get (FLD (f_Rs))), 255))) : (current_cpu->GETMEMHI (pc, current_cpu->h_gr_get (FLD (f_Rs)))));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-}
-} else {
-{
-  HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, current_cpu->h_gr_get (FLD (f_Rs))));
   {
     SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
+} else {
+{
+  HI tmp_nvalue;
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, current_cpu->h_gr_get (FLD (f_Rs))));
   {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 }
 
@@ -452,34 +420,34 @@ if (FLD (f_op2m)) {
   HI tmp_nvalue;
   tmp_nvalue = ((ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 1)) ? (ORHI (ANDQI (SLLQI (current_cpu->GETMEMQI (pc, SUBSI (current_cpu->h_gr_get (FLD (f_Rs)), 1)), 8), 65280), ANDQI (current_cpu->GETMEMQI (pc, current_cpu->h_gr_get (FLD (f_Rs))), 255))) : (current_cpu->GETMEMHI (pc, current_cpu->h_gr_get (FLD (f_Rs)))));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-}
-} else {
-{
-  HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, current_cpu->h_gr_get (FLD (f_Rs))));
   {
     SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
+} else {
+{
+  HI tmp_nvalue;
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, current_cpu->h_gr_get (FLD (f_Rs))));
   {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 }
   {
@@ -518,34 +486,34 @@ if (FLD (f_op2m)) {
   HI tmp_nvalue;
   tmp_nvalue = ((ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 1)) ? (ORHI (ANDQI (SLLQI (current_cpu->GETMEMQI (pc, SUBSI (current_cpu->h_gr_get (FLD (f_Rs)), 1)), 8), 65280), ANDQI (current_cpu->GETMEMQI (pc, current_cpu->h_gr_get (FLD (f_Rs))), 255))) : (current_cpu->GETMEMHI (pc, current_cpu->h_gr_get (FLD (f_Rs)))));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-}
-} else {
-{
-  HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, current_cpu->h_gr_get (FLD (f_Rs))));
   {
     SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
+} else {
+{
+  HI tmp_nvalue;
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, current_cpu->h_gr_get (FLD (f_Rs))));
   {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 }
 }
@@ -597,9 +565,9 @@ if (ANDSI (tmp_nwhere, 1)) {
 }
 {
   HI tmp_nvalue;
-  tmp_nvalue = current_cpu->h_gr_get (FLD (f_Rs));
+  tmp_nvalue = current_cpu->h_gr_get (FLD (f_Rdm));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rs), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
@@ -654,21 +622,21 @@ if (ANDSI (tmp_nwhere, 1)) {
 }
 {
   HI tmp_nvalue;
-  tmp_nvalue = ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), ADDSI (FLD (f_op2m), 1));
+  tmp_nvalue = current_cpu->h_gr_get (FLD (f_Rdm));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rs), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
   {
-    HI opval = tmp_nvalue;
+    SI opval = ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), ADDSI (FLD (f_op2m), 1));
     current_cpu->h_gr_set (FLD (f_Rs), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rs) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
 }
-}
 
   current_cpu->done_insn (npc, status);
   return status;
@@ -687,21 +655,21 @@ xstormy16_sem_movgripredecgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   PCADDR npc = pc + 2;
 
 {
+  {
+    SI opval = SUBSI (current_cpu->h_gr_get (FLD (f_Rs)), ADDSI (FLD (f_op2m), 1));
+    current_cpu->h_gr_set (FLD (f_Rs), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << FLD (f_Rs) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 {
   HI tmp_nvalue;
-  tmp_nvalue = SUBSI (current_cpu->h_gr_get (FLD (f_Rs)), ADDSI (FLD (f_op2m), 1));
+  tmp_nvalue = current_cpu->h_gr_get (FLD (f_Rdm));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rs), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-  {
-    HI opval = tmp_nvalue;
-    current_cpu->h_gr_set (FLD (f_Rs), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << FLD (f_Rs) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
 }
 if (FLD (f_op2m)) {
 {
@@ -754,34 +722,34 @@ if (FLD (f_op2m)) {
   HI tmp_nvalue;
   tmp_nvalue = ((ANDSI (ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12)), 1)) ? (ORHI (ANDQI (SLLQI (current_cpu->GETMEMQI (pc, SUBSI (ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12)), 1)), 8), 65280), ANDQI (current_cpu->GETMEMQI (pc, ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12))), 255))) : (current_cpu->GETMEMHI (pc, ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12)))));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-}
-} else {
-{
-  HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12))));
   {
     SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
+} else {
+{
+  HI tmp_nvalue;
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12))));
   {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 }
 
@@ -807,34 +775,34 @@ if (FLD (f_op2m)) {
   HI tmp_nvalue;
   tmp_nvalue = ((ANDSI (ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12)), 1)) ? (ORHI (ANDQI (SLLQI (current_cpu->GETMEMQI (pc, SUBSI (ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12)), 1)), 8), 65280), ANDQI (current_cpu->GETMEMQI (pc, ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12))), 255))) : (current_cpu->GETMEMHI (pc, ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12)))));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-}
-} else {
-{
-  HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12))));
   {
     SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
+} else {
+{
+  HI tmp_nvalue;
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12))));
   {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 }
   {
@@ -873,34 +841,34 @@ if (FLD (f_op2m)) {
   HI tmp_nvalue;
   tmp_nvalue = ((ANDSI (ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12)), 1)) ? (ORHI (ANDQI (SLLQI (current_cpu->GETMEMQI (pc, SUBSI (ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12)), 1)), 8), 65280), ANDQI (current_cpu->GETMEMQI (pc, ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12))), 255))) : (current_cpu->GETMEMHI (pc, ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12)))));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-}
-} else {
-{
-  HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12))));
   {
     SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
+} else {
+{
+  HI tmp_nvalue;
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), FLD (f_imm12))));
   {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 }
 }
@@ -952,19 +920,13 @@ if (ANDSI (tmp_nwhere, 1)) {
 }
 {
   HI tmp_nvalue;
-  tmp_nvalue = current_cpu->h_gr_get (FLD (f_Rs));
+  tmp_nvalue = current_cpu->h_gr_get (FLD (f_Rdm));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rs), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-  {
-    HI opval = tmp_nvalue;
-    current_cpu->h_gr_set (FLD (f_Rs), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << FLD (f_Rs) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
 }
 }
 
@@ -1015,21 +977,21 @@ if (ANDSI (tmp_nwhere, 1)) {
 }
 {
   HI tmp_nvalue;
-  tmp_nvalue = ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), 1);
+  tmp_nvalue = current_cpu->h_gr_get (FLD (f_Rdm));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rs), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
   {
-    HI opval = tmp_nvalue;
+    SI opval = ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), 1);
     current_cpu->h_gr_set (FLD (f_Rs), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rs) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
 }
-}
 
   current_cpu->done_insn (npc, status);
   return status;
@@ -1048,21 +1010,21 @@ xstormy16_sem_movgriipredecgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem
   PCADDR npc = pc + 4;
 
 {
+  {
+    SI opval = SUBSI (current_cpu->h_gr_get (FLD (f_Rs)), 1);
+    current_cpu->h_gr_set (FLD (f_Rs), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << FLD (f_Rs) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 {
   HI tmp_nvalue;
-  tmp_nvalue = SUBSI (current_cpu->h_gr_get (FLD (f_Rs)), 1);
+  tmp_nvalue = current_cpu->h_gr_get (FLD (f_Rdm));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rs), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-  {
-    HI opval = tmp_nvalue;
-    current_cpu->h_gr_set (FLD (f_Rs), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << FLD (f_Rs) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
 }
 if (FLD (f_op2m)) {
 {
@@ -1114,17 +1076,17 @@ xstormy16_sem_movgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = current_cpu->h_gr_get (FLD (f_Rs));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -1147,17 +1109,17 @@ xstormy16_sem_movwimm8 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = FLD (f_imm8);
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (current_cpu->h_Rpsw_get (), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (current_cpu->h_Rpsw_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << current_cpu->h_Rpsw_get () << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (current_cpu->h_Rpsw_get (), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -1180,17 +1142,17 @@ xstormy16_sem_movwgrimm8 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = FLD (f_imm8);
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -1213,17 +1175,17 @@ xstormy16_sem_movwgrimm16 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = FLD (f_imm16);
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -1246,17 +1208,17 @@ xstormy16_sem_movlowgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = ORSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 65280), ANDHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), 255));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -1279,17 +1241,17 @@ xstormy16_sem_movhighgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = ORSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 255), ANDHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), 65280));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -1313,34 +1275,34 @@ if (FLD (f_op2m)) {
   HI tmp_nvalue;
   tmp_nvalue = ((ANDSI (ORSI (SLLSI (current_cpu->h_gr_get (((UINT) 8)), 16), current_cpu->h_gr_get (FLD (f_Rs))), 1)) ? (ORHI (ANDQI (SLLQI (current_cpu->GETMEMQI (pc, SUBSI (ORSI (SLLSI (current_cpu->h_gr_get (((UINT) 8)), 16), current_cpu->h_gr_get (FLD (f_Rs))), 1)), 8), 65280), ANDQI (current_cpu->GETMEMQI (pc, ORSI (SLLSI (current_cpu->h_gr_get (((UINT) 8)), 16), current_cpu->h_gr_get (FLD (f_Rs)))), 255))) : (current_cpu->GETMEMHI (pc, ORSI (SLLSI (current_cpu->h_gr_get (((UINT) 8)), 16), current_cpu->h_gr_get (FLD (f_Rs))))));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-}
-} else {
-{
-  HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, ORSI (SLLSI (current_cpu->h_gr_get (((UINT) 8)), 16), current_cpu->h_gr_get (FLD (f_Rs)))));
   {
     SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
+} else {
+{
+  HI tmp_nvalue;
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, ORSI (SLLSI (current_cpu->h_gr_get (((UINT) 8)), 16), current_cpu->h_gr_get (FLD (f_Rs)))));
   {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 }
 
@@ -1366,34 +1328,34 @@ if (FLD (f_op2m)) {
   HI tmp_nvalue;
   tmp_nvalue = ((ANDSI (JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs))), 1)) ? (ORHI (ANDQI (SLLQI (current_cpu->GETMEMQI (pc, SUBSI (JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs))), 1)), 8), 65280), ANDQI (current_cpu->GETMEMQI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs)))), 255))) : (current_cpu->GETMEMHI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs))))));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-}
-} else {
-{
-  HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs)))));
   {
     SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
+} else {
+{
+  HI tmp_nvalue;
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs)))));
   {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 }
   {
@@ -1432,34 +1394,34 @@ if (FLD (f_op2m)) {
   HI tmp_nvalue;
   tmp_nvalue = ((ANDSI (JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs))), 1)) ? (ORHI (ANDQI (SLLQI (current_cpu->GETMEMQI (pc, SUBSI (JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs))), 1)), 8), 65280), ANDQI (current_cpu->GETMEMQI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs)))), 255))) : (current_cpu->GETMEMHI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs))))));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-}
-} else {
-{
-  HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs)))));
   {
     SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
+} else {
+{
+  HI tmp_nvalue;
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs)))));
   {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 }
 }
@@ -1483,54 +1445,41 @@ xstormy16_sem_movfgrigr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
 {
 if (FLD (f_op2m)) {
 {
-  HI tmp_nvalue;
-  tmp_nvalue = ((ANDSI (JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rdm))), 1)) ? (ORHI (ANDQI (SLLQI (current_cpu->GETMEMQI (pc, SUBSI (JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rdm))), 1)), 8), 65280), ANDQI (current_cpu->GETMEMQI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rdm)))), 255))) : (current_cpu->GETMEMHI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rdm))))));
-  {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rs), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
-    HI opval = tmp_nvalue;
-    current_cpu->h_gr_set (FLD (f_Rs), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << FLD (f_Rs) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
+  SI tmp_nwhere;
+  HI tmp_nwhat;
+  tmp_nwhere = JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs)));
+if (ANDSI (tmp_nwhere, 1)) {
+{
+  tmp_nwhat = ORHI (ANDSI (SLLSI (current_cpu->h_gr_get (FLD (f_Rdm)), 8), 65280), ANDSI (SRLSI (current_cpu->h_gr_get (FLD (f_Rdm)), 8), 255));
+  tmp_nwhere = SUBSI (tmp_nwhere, 1);
 }
 } else {
-{
-  HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rdm)))));
+  tmp_nwhat = current_cpu->h_gr_get (FLD (f_Rdm));
+}
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rs), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
+    HI opval = current_cpu->h_gr_get (FLD (f_Rdm));
+    current_cpu->SETMEMHI (pc, tmp_nwhere, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+      current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_nwhere << dec << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
+} else {
   {
-    HI opval = tmp_nvalue;
-    current_cpu->h_gr_set (FLD (f_Rs), opval);
+    QI opval = current_cpu->h_gr_get (FLD (f_Rdm));
+    current_cpu->SETMEMQI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs))), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << FLD (f_Rs) << ']' << ":=0x" << hex << opval << dec << "  ";
+      current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs))) << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
   }
 }
-}
 {
   HI tmp_nvalue;
-  tmp_nvalue = current_cpu->h_gr_get (FLD (f_Rs));
+  tmp_nvalue = current_cpu->h_gr_get (FLD (f_Rdm));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rs), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-  {
-    HI opval = tmp_nvalue;
-    current_cpu->h_gr_set (FLD (f_Rs), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << FLD (f_Rs) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
 }
 }
 
@@ -1553,56 +1502,49 @@ xstormy16_sem_movfgripostincgr (xstormy16_cpu* current_cpu, xstormy16_scache* se
 {
 if (FLD (f_op2m)) {
 {
-  HI tmp_nvalue;
-  tmp_nvalue = ((ANDSI (JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rdm))), 1)) ? (ORHI (ANDQI (SLLQI (current_cpu->GETMEMQI (pc, SUBSI (JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rdm))), 1)), 8), 65280), ANDQI (current_cpu->GETMEMQI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rdm)))), 255))) : (current_cpu->GETMEMHI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rdm))))));
-  {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rs), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
-    HI opval = tmp_nvalue;
-    current_cpu->h_gr_set (FLD (f_Rs), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << FLD (f_Rs) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
+  SI tmp_nwhere;
+  HI tmp_nwhat;
+  tmp_nwhere = JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs)));
+if (ANDSI (tmp_nwhere, 1)) {
+{
+  tmp_nwhat = ORHI (ANDSI (SLLSI (current_cpu->h_gr_get (FLD (f_Rdm)), 8), 65280), ANDSI (SRLSI (current_cpu->h_gr_get (FLD (f_Rdm)), 8), 255));
+  tmp_nwhere = SUBSI (tmp_nwhere, 1);
 }
 } else {
-{
-  HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rdm)))));
+  tmp_nwhat = current_cpu->h_gr_get (FLD (f_Rdm));
+}
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rs), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
+    HI opval = current_cpu->h_gr_get (FLD (f_Rdm));
+    current_cpu->SETMEMHI (pc, tmp_nwhere, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+      current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_nwhere << dec << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
+} else {
   {
-    HI opval = tmp_nvalue;
-    current_cpu->h_gr_set (FLD (f_Rs), opval);
+    QI opval = current_cpu->h_gr_get (FLD (f_Rdm));
+    current_cpu->SETMEMQI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs))), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << FLD (f_Rs) << ']' << ":=0x" << hex << opval << dec << "  ";
+      current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs))) << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
   }
 }
-}
 {
   HI tmp_nvalue;
-  tmp_nvalue = ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), ADDSI (FLD (f_op2m), 1));
+  tmp_nvalue = current_cpu->h_gr_get (FLD (f_Rdm));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rs), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
   {
-    HI opval = tmp_nvalue;
+    SI opval = ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), ADDSI (FLD (f_op2m), 1));
     current_cpu->h_gr_set (FLD (f_Rs), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rs) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
 }
-}
 
   current_cpu->done_insn (npc, status);
   return status;
@@ -1623,56 +1565,49 @@ xstormy16_sem_movfgripredecgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem
 {
 {
   HI tmp_nvalue;
-  tmp_nvalue = SUBSI (current_cpu->h_gr_get (FLD (f_Rs)), ADDSI (FLD (f_op2m), 1));
+  tmp_nvalue = current_cpu->h_gr_get (FLD (f_Rdm));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rs), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
   {
-    HI opval = tmp_nvalue;
+    SI opval = SUBSI (current_cpu->h_gr_get (FLD (f_Rs)), ADDSI (FLD (f_op2m), 1));
     current_cpu->h_gr_set (FLD (f_Rs), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rs) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-}
 if (FLD (f_op2m)) {
 {
-  HI tmp_nvalue;
-  tmp_nvalue = ((ANDSI (JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rdm))), 1)) ? (ORHI (ANDQI (SLLQI (current_cpu->GETMEMQI (pc, SUBSI (JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rdm))), 1)), 8), 65280), ANDQI (current_cpu->GETMEMQI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rdm)))), 255))) : (current_cpu->GETMEMHI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rdm))))));
-  {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rs), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
-    HI opval = tmp_nvalue;
-    current_cpu->h_gr_set (FLD (f_Rs), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << FLD (f_Rs) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
+  SI tmp_nwhere;
+  HI tmp_nwhat;
+  tmp_nwhere = JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs)));
+if (ANDSI (tmp_nwhere, 1)) {
+{
+  tmp_nwhat = ORHI (ANDSI (SLLSI (current_cpu->h_gr_get (FLD (f_Rdm)), 8), 65280), ANDSI (SRLSI (current_cpu->h_gr_get (FLD (f_Rdm)), 8), 255));
+  tmp_nwhere = SUBSI (tmp_nwhere, 1);
 }
 } else {
-{
-  HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rdm)))));
+  tmp_nwhat = current_cpu->h_gr_get (FLD (f_Rdm));
+}
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rs), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
+    HI opval = current_cpu->h_gr_get (FLD (f_Rdm));
+    current_cpu->SETMEMHI (pc, tmp_nwhere, opval);
     if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+      current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) tmp_nwhere << dec << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
+} else {
   {
-    HI opval = tmp_nvalue;
-    current_cpu->h_gr_set (FLD (f_Rs), opval);
+    QI opval = current_cpu->h_gr_get (FLD (f_Rdm));
+    current_cpu->SETMEMQI (pc, JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs))), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << FLD (f_Rs) << ']' << ":=0x" << hex << opval << dec << "  ";
+      current_cpu->trace_stream << "memory" << '[' <<  "0x" << hex << (UDI) JOINHISI (current_cpu->h_gr_get (((UINT) 8)), current_cpu->h_gr_get (FLD (f_Rs))) << dec << ']' << ":=0x" << hex << (SI) opval << dec << "  ";
   }
 }
 }
-}
 
   current_cpu->done_insn (npc, status);
   return status;
@@ -1695,34 +1630,34 @@ if (FLD (f_op2m)) {
   HI tmp_nvalue;
   tmp_nvalue = ((ANDSI (ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12)), 1)) ? (ORHI (ANDQI (SLLQI (current_cpu->GETMEMQI (pc, SUBSI (ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12)), 1)), 8), 65280), ANDQI (current_cpu->GETMEMQI (pc, ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12))), 255))) : (current_cpu->GETMEMHI (pc, ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12)))));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-}
-} else {
-{
-  HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12))));
   {
     SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
+} else {
+{
+  HI tmp_nvalue;
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12))));
   {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 }
 
@@ -1748,34 +1683,34 @@ if (FLD (f_op2m)) {
   HI tmp_nvalue;
   tmp_nvalue = ((ANDSI (ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12)), 1)) ? (ORHI (ANDQI (SLLQI (current_cpu->GETMEMQI (pc, SUBSI (ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12)), 1)), 8), 65280), ANDQI (current_cpu->GETMEMQI (pc, ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12))), 255))) : (current_cpu->GETMEMHI (pc, ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12)))));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-}
-} else {
-{
-  HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12))));
   {
     SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
+} else {
+{
+  HI tmp_nvalue;
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12))));
   {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 }
   {
@@ -1814,34 +1749,34 @@ if (FLD (f_op2m)) {
   HI tmp_nvalue;
   tmp_nvalue = ((ANDSI (ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12)), 1)) ? (ORHI (ANDQI (SLLQI (current_cpu->GETMEMQI (pc, SUBSI (ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12)), 1)), 8), 65280), ANDQI (current_cpu->GETMEMQI (pc, ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12))), 255))) : (current_cpu->GETMEMHI (pc, ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12)))));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-}
-} else {
-{
-  HI tmp_nvalue;
-  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12))));
   {
     SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
+} else {
+{
+  HI tmp_nvalue;
+  tmp_nvalue = ANDSI (255, current_cpu->GETMEMSI (pc, ADDSI (JOINHISI (current_cpu->h_Rb_get (FLD (f_Rb)), current_cpu->h_gr_get (FLD (f_Rs))), FLD (f_imm12))));
   {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rdm), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rdm) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 }
 }
@@ -1880,19 +1815,13 @@ if (FLD (f_op2m)) {
 }
 {
   HI tmp_nvalue;
-  tmp_nvalue = current_cpu->h_gr_get (FLD (f_Rs));
+  tmp_nvalue = current_cpu->h_gr_get (FLD (f_Rdm));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rs), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-  {
-    HI opval = tmp_nvalue;
-    current_cpu->h_gr_set (FLD (f_Rs), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << FLD (f_Rs) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
 }
 }
 
@@ -1930,21 +1859,21 @@ if (FLD (f_op2m)) {
 }
 {
   HI tmp_nvalue;
-  tmp_nvalue = ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), ADDSI (FLD (f_op2m), 1));
+  tmp_nvalue = current_cpu->h_gr_get (FLD (f_Rdm));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rs), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+}
   {
-    HI opval = tmp_nvalue;
+    SI opval = ADDSI (current_cpu->h_gr_get (FLD (f_Rs)), ADDSI (FLD (f_op2m), 1));
     current_cpu->h_gr_set (FLD (f_Rs), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rs) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
 }
-}
 
   current_cpu->done_insn (npc, status);
   return status;
@@ -1963,21 +1892,21 @@ xstormy16_sem_movfgriipredecgr (xstormy16_cpu* current_cpu, xstormy16_scache* se
   PCADDR npc = pc + 4;
 
 {
+  {
+    SI opval = SUBSI (current_cpu->h_gr_get (FLD (f_Rs)), 1);
+    current_cpu->h_gr_set (FLD (f_Rs), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << FLD (f_Rs) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 {
   HI tmp_nvalue;
-  tmp_nvalue = SUBSI (current_cpu->h_gr_get (FLD (f_Rs)), 1);
+  tmp_nvalue = current_cpu->h_gr_get (FLD (f_Rdm));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rs), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rdm), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
     current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
-  {
-    HI opval = tmp_nvalue;
-    current_cpu->h_gr_set (FLD (f_Rs), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << FLD (f_Rs) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
 }
 if (FLD (f_op2m)) {
   {
@@ -2016,17 +1945,17 @@ xstormy16_sem_maskgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = ORHI (ANDHI (current_cpu->h_gr_get (FLD (f_Rd)), INVHI (current_cpu->h_gr_get (FLD (f_Rs)))), ANDHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), current_cpu->h_gr_get (FLD (f_Rs))));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2049,17 +1978,17 @@ xstormy16_sem_maskgrimm16 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = ORSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), INVSI (FLD (f_imm16))), ANDHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm16)));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2144,17 +2073,17 @@ xstormy16_sem_swpn (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = ORSI (ORSI (ANDSI (SLLSI (current_cpu->h_gr_get (FLD (f_Rd)), 4), 240), ANDSI (SRLSI (current_cpu->h_gr_get (FLD (f_Rd)), 4), 15)), ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 65280));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2177,17 +2106,17 @@ xstormy16_sem_swpb (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = ORSI (SLLSI (current_cpu->h_gr_get (FLD (f_Rd)), 8), SRLSI (current_cpu->h_gr_get (FLD (f_Rd)), 8));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2219,17 +2148,17 @@ xstormy16_sem_swpw (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = tmp_foo;
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 }
 
@@ -2253,17 +2182,17 @@ xstormy16_sem_andgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2283,20 +2212,20 @@ xstormy16_sem_andimm8 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   PCADDR npc = pc + 2;
 
 {
-  HI tmp_nvalue;
-  tmp_nvalue = ANDHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8));
-  {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (current_cpu->h_Rpsw_get (), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
+  HI tmp_nvalue;
+  tmp_nvalue = ANDHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8));
   {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (current_cpu->h_Rpsw_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << current_cpu->h_Rpsw_get () << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (current_cpu->h_Rpsw_get (), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2319,17 +2248,17 @@ xstormy16_sem_andgrimm16 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2352,17 +2281,17 @@ xstormy16_sem_orgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = ORSI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2385,17 +2314,17 @@ xstormy16_sem_orimm8 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = ORHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (current_cpu->h_Rpsw_get (), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (current_cpu->h_Rpsw_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << current_cpu->h_Rpsw_get () << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (current_cpu->h_Rpsw_get (), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2418,17 +2347,17 @@ xstormy16_sem_orgrimm16 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = ORSI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2451,17 +2380,17 @@ xstormy16_sem_xorgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = XORSI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2484,17 +2413,17 @@ xstormy16_sem_xorimm8 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = XORHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (current_cpu->h_Rpsw_get (), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (current_cpu->h_Rpsw_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << current_cpu->h_Rpsw_get () << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (current_cpu->h_Rpsw_get (), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2517,17 +2446,17 @@ xstormy16_sem_xorgrimm16 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = XORSI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2550,17 +2479,17 @@ xstormy16_sem_notgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = INVSI (current_cpu->h_gr_get (FLD (f_Rd)));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2583,17 +2512,17 @@ xstormy16_sem_addgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_value;
   tmp_value = ADDCSI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)), 0);
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (ADDOFHI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)), 0), 4), SLLHI (ADDCFHI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)), 0), 2)), ORHI (ANDHI (SRLHI (ADDCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15), 0), 1), 8), SLLSI (FLD (f_Rd), 12))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_value;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (ADDOFHI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)), 0), 4), SLLHI (ADDCFHI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)), 0), 2)), ORHI (ANDHI (SRLHI (ADDCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15), 0), 1), 8), SLLSI (FLD (f_Rd), 12))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2616,17 +2545,17 @@ xstormy16_sem_addgrimm4 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_value;
   tmp_value = ADDCSI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4), 0);
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (ADDOFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4), 0), 4), SLLHI (ADDCFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4), 0), 2)), ORHI (ANDHI (SRLHI (ADDCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (FLD (f_imm4), 15), 0), 1), 8), SLLSI (FLD (f_Rd), 12))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_value;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (ADDOFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4), 0), 4), SLLHI (ADDCFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4), 0), 2)), ORHI (ANDHI (SRLHI (ADDCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (FLD (f_imm4), 15), 0), 1), 8), SLLSI (FLD (f_Rd), 12))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2649,17 +2578,17 @@ xstormy16_sem_addimm8 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_value;
   tmp_value = ADDCHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8), 0);
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (ADDOFHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8), 0), 4), SLLHI (ADDCFHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8), 0), 2)), ORHI (ANDHI (SRLHI (ADDCHI (ANDHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), 15), ANDSI (FLD (f_imm8), 15), 0), 1), 8), SLLSI (current_cpu->h_Rpsw_get (), 12))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_value;
     current_cpu->h_gr_set (current_cpu->h_Rpsw_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << current_cpu->h_Rpsw_get () << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (ADDOFHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8), 0), 4), SLLHI (ADDCFHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8), 0), 2)), ORHI (ANDHI (SRLHI (ADDCHI (ANDHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), 15), ANDSI (FLD (f_imm8), 15), 0), 1), 8), SLLSI (current_cpu->h_Rpsw_get (), 12))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2682,17 +2611,17 @@ xstormy16_sem_addgrimm16 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_value;
   tmp_value = ADDCSI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16), 0);
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (ADDOFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16), 0), 4), SLLHI (ADDCFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16), 0), 2)), ORHI (ANDHI (SRLHI (ADDCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (FLD (f_imm16), 15), 0), 1), 8), SLLSI (FLD (f_Rd), 12))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_value;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (ADDOFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16), 0), 4), SLLHI (ADDCFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16), 0), 2)), ORHI (ANDHI (SRLHI (ADDCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (FLD (f_imm16), 15), 0), 1), 8), SLLSI (FLD (f_Rd), 12))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2715,17 +2644,17 @@ xstormy16_sem_adcgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_value;
   tmp_value = ADDCSI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)), current_cpu->h_cy_get ());
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (ADDOFHI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)), current_cpu->h_cy_get ()), 4), SLLHI (ADDCFHI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)), current_cpu->h_cy_get ()), 2)), ORHI (ANDHI (SRLHI (ADDCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15), current_cpu->h_cy_get ()), 1), 8), SLLSI (FLD (f_Rd), 12))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_value;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (ADDOFHI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)), current_cpu->h_cy_get ()), 4), SLLHI (ADDCFHI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)), current_cpu->h_cy_get ()), 2)), ORHI (ANDHI (SRLHI (ADDCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15), current_cpu->h_cy_get ()), 1), 8), SLLSI (FLD (f_Rd), 12))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2748,17 +2677,17 @@ xstormy16_sem_adcgrimm4 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_value;
   tmp_value = ADDCSI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4), current_cpu->h_cy_get ());
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (ADDOFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4), current_cpu->h_cy_get ()), 4), SLLHI (ADDCFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4), current_cpu->h_cy_get ()), 2)), ORHI (ANDHI (SRLHI (ADDCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (FLD (f_imm4), 15), current_cpu->h_cy_get ()), 1), 8), SLLSI (FLD (f_Rd), 12))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_value;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (ADDOFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4), current_cpu->h_cy_get ()), 4), SLLHI (ADDCFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4), current_cpu->h_cy_get ()), 2)), ORHI (ANDHI (SRLHI (ADDCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (FLD (f_imm4), 15), current_cpu->h_cy_get ()), 1), 8), SLLSI (FLD (f_Rd), 12))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2781,17 +2710,17 @@ xstormy16_sem_adcimm8 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_value;
   tmp_value = ADDCHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8), current_cpu->h_cy_get ());
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (ADDOFHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8), current_cpu->h_cy_get ()), 4), SLLHI (ADDCFHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8), current_cpu->h_cy_get ()), 2)), ORHI (ANDHI (SRLHI (ADDCHI (ANDHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), 15), ANDSI (FLD (f_imm8), 15), current_cpu->h_cy_get ()), 1), 8), SLLSI (current_cpu->h_Rpsw_get (), 12))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_value;
     current_cpu->h_gr_set (current_cpu->h_Rpsw_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << current_cpu->h_Rpsw_get () << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (ADDOFHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8), current_cpu->h_cy_get ()), 4), SLLHI (ADDCFHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8), current_cpu->h_cy_get ()), 2)), ORHI (ANDHI (SRLHI (ADDCHI (ANDHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), 15), ANDSI (FLD (f_imm8), 15), current_cpu->h_cy_get ()), 1), 8), SLLSI (current_cpu->h_Rpsw_get (), 12))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2814,17 +2743,17 @@ xstormy16_sem_adcgrimm16 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_value;
   tmp_value = ADDCSI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16), current_cpu->h_cy_get ());
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (ADDOFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16), current_cpu->h_cy_get ()), 4), SLLHI (ADDCFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16), current_cpu->h_cy_get ()), 2)), ORHI (ANDHI (SRLHI (ADDCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (FLD (f_imm16), 15), current_cpu->h_cy_get ()), 1), 8), SLLSI (FLD (f_Rd), 12))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_value;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (ADDOFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16), current_cpu->h_cy_get ()), 4), SLLHI (ADDCFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16), current_cpu->h_cy_get ()), 2)), ORHI (ANDHI (SRLHI (ADDCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (FLD (f_imm16), 15), current_cpu->h_cy_get ()), 1), 8), SLLSI (FLD (f_Rd), 12))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2847,17 +2776,17 @@ xstormy16_sem_subgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_value;
   tmp_value = SUBCSI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)), 0);
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (SUBOFHI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)), 0), 4), SLLHI (SUBCFHI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)), 0), 2)), ORHI (ANDHI (SRLHI (SUBCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15), 0), 1), 8), SLLSI (FLD (f_Rd), 12))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_value;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (SUBOFHI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)), 0), 4), SLLHI (SUBCFHI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)), 0), 2)), ORHI (ANDHI (SRLHI (SUBCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15), 0), 1), 8), SLLSI (FLD (f_Rd), 12))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2880,17 +2809,17 @@ xstormy16_sem_subgrimm4 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_value;
   tmp_value = SUBCSI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4), 0);
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (SUBOFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4), 0), 4), SLLHI (SUBCFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4), 0), 2)), ORHI (ANDHI (SRLHI (SUBCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (FLD (f_imm4), 15), 0), 1), 8), SLLSI (FLD (f_Rd), 12))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_value;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (SUBOFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4), 0), 4), SLLHI (SUBCFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4), 0), 2)), ORHI (ANDHI (SRLHI (SUBCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (FLD (f_imm4), 15), 0), 1), 8), SLLSI (FLD (f_Rd), 12))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2913,17 +2842,17 @@ xstormy16_sem_subimm8 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_value;
   tmp_value = SUBCHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8), 0);
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (SUBOFHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8), 0), 4), SLLHI (SUBCFHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8), 0), 2)), ORHI (ANDHI (SRLHI (SUBCHI (ANDHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), 15), ANDSI (FLD (f_imm8), 15), 0), 1), 8), SLLSI (current_cpu->h_Rpsw_get (), 12))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_value;
     current_cpu->h_gr_set (current_cpu->h_Rpsw_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << current_cpu->h_Rpsw_get () << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (SUBOFHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8), 0), 4), SLLHI (SUBCFHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8), 0), 2)), ORHI (ANDHI (SRLHI (SUBCHI (ANDHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), 15), ANDSI (FLD (f_imm8), 15), 0), 1), 8), SLLSI (current_cpu->h_Rpsw_get (), 12))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2946,17 +2875,17 @@ xstormy16_sem_subgrimm16 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_value;
   tmp_value = SUBCSI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16), 0);
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (SUBOFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16), 0), 4), SLLHI (SUBCFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16), 0), 2)), ORHI (ANDHI (SRLHI (SUBCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (FLD (f_imm16), 15), 0), 1), 8), SLLSI (FLD (f_Rd), 12))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_value;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (SUBOFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16), 0), 4), SLLHI (SUBCFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16), 0), 2)), ORHI (ANDHI (SRLHI (SUBCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (FLD (f_imm16), 15), 0), 1), 8), SLLSI (FLD (f_Rd), 12))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -2979,16 +2908,16 @@ xstormy16_sem_sbcgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_value;
   tmp_value = SUBCSI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)), current_cpu->h_cy_get ());
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (SUBOFHI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)), current_cpu->h_cy_get ()), 4), SLLHI (SUBCFHI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)), current_cpu->h_cy_get ()), 2)), ORHI (ANDHI (SRLHI (SUBCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15), current_cpu->h_cy_get ()), 1), 8), SLLSI (FLD (f_Rd), 12))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
+    HI opval = tmp_value;
+    current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+      current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
   {
-    HI opval = tmp_value;
-    current_cpu->h_gr_set (FLD (f_Rd), opval);
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (SUBOFHI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)), current_cpu->h_cy_get ()), 4), SLLHI (SUBCFHI (current_cpu->h_gr_get (FLD (f_Rd)), current_cpu->h_gr_get (FLD (f_Rs)), current_cpu->h_cy_get ()), 2)), ORHI (ANDHI (SRLHI (SUBCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15), current_cpu->h_cy_get ()), 1), 8), SLLSI (FLD (f_Rd), 12))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
 }
 
@@ -3012,17 +2941,17 @@ xstormy16_sem_sbcgrimm4 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_value;
   tmp_value = SUBCSI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4), current_cpu->h_cy_get ());
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (SUBOFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4), current_cpu->h_cy_get ()), 4), SLLHI (SUBCFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4), current_cpu->h_cy_get ()), 2)), ORHI (ANDHI (SRLHI (SUBCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (FLD (f_imm4), 15), current_cpu->h_cy_get ()), 1), 8), SLLSI (FLD (f_Rd), 12))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_value;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (SUBOFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4), current_cpu->h_cy_get ()), 4), SLLHI (SUBCFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4), current_cpu->h_cy_get ()), 2)), ORHI (ANDHI (SRLHI (SUBCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (FLD (f_imm4), 15), current_cpu->h_cy_get ()), 1), 8), SLLSI (FLD (f_Rd), 12))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -3045,17 +2974,17 @@ xstormy16_sem_sbcgrimm8 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_value;
   tmp_value = SUBCHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8), current_cpu->h_cy_get ());
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (SUBOFHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8), current_cpu->h_cy_get ()), 4), SLLHI (SUBCFHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8), current_cpu->h_cy_get ()), 2)), ORHI (ANDHI (SRLHI (SUBCHI (ANDHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), 15), ANDSI (FLD (f_imm8), 15), current_cpu->h_cy_get ()), 1), 8), SLLSI (current_cpu->h_Rpsw_get (), 12))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_value;
     current_cpu->h_gr_set (current_cpu->h_Rpsw_get (), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << current_cpu->h_Rpsw_get () << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (SUBOFHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8), current_cpu->h_cy_get ()), 4), SLLHI (SUBCFHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), FLD (f_imm8), current_cpu->h_cy_get ()), 2)), ORHI (ANDHI (SRLHI (SUBCHI (ANDHI (current_cpu->h_gr_get (current_cpu->h_Rpsw_get ()), 15), ANDSI (FLD (f_imm8), 15), current_cpu->h_cy_get ()), 1), 8), SLLSI (current_cpu->h_Rpsw_get (), 12))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -3078,17 +3007,17 @@ xstormy16_sem_sbcgrimm16 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_value;
   tmp_value = SUBCSI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16), current_cpu->h_cy_get ());
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (SUBOFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16), current_cpu->h_cy_get ()), 4), SLLHI (SUBCFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16), current_cpu->h_cy_get ()), 2)), ORHI (ANDHI (SRLHI (SUBCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (FLD (f_imm16), 15), current_cpu->h_cy_get ()), 1), 8), SLLSI (FLD (f_Rd), 12))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_value;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3968), ORBI (ORBI (EQHI (ANDHI (tmp_value, 255), 0), SLLHI (EQHI (tmp_value, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_value), 5), SLLHI (LTHI (tmp_value, 0), 6)))), ORHI (ORHI (SLLHI (SUBOFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16), current_cpu->h_cy_get ()), 4), SLLHI (SUBCFHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm16), current_cpu->h_cy_get ()), 2)), ORHI (ANDHI (SRLHI (SUBCHI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), ANDSI (FLD (f_imm16), 15), current_cpu->h_cy_get ()), 1), 8), SLLSI (FLD (f_Rd), 12))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -3111,17 +3040,17 @@ xstormy16_sem_incgrimm2 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = ADDSI (current_cpu->h_gr_get (FLD (f_Rd)), ADDSI (FLD (f_imm2), 1));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -3144,17 +3073,17 @@ xstormy16_sem_decgrimm2 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = SUBSI (current_cpu->h_gr_get (FLD (f_Rd)), ADDSI (FLD (f_imm2), 1));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -3176,22 +3105,22 @@ xstormy16_sem_rrcgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
 {
   SI tmp_tmpfoo;
   tmp_tmpfoo = ORSI (ORSI (ANDSI (SLLSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), 2147352576), current_cpu->h_gr_get (FLD (f_Rd))), ORSI (SLLSI (current_cpu->h_cy_get (), 31), SLLSI (current_cpu->h_cy_get (), 16)));
-  tmp_tmpfoo = ROLSI (tmp_tmpfoo, ANDSI (NEGSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15)), 31));
+  tmp_tmpfoo = ROLSI (tmp_tmpfoo, ANDSI (SUBSI (47, MODSI (ADDSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15), 15), 17)), 31));
 {
   HI tmp_nvalue;
   tmp_nvalue = TRUNCSIHI (tmp_tmpfoo);
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3992), SLLSI (ANDSI (SRLSI (tmp_tmpfoo, 16), 1), 2)), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3992), SLLSI (ANDSI (SRLSI (tmp_tmpfoo, 16), 1), 2)), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 }
 
@@ -3214,22 +3143,22 @@ xstormy16_sem_rrcgrimm4 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
 {
   SI tmp_tmpfoo;
   tmp_tmpfoo = ORSI (ORSI (ANDSI (SLLSI (current_cpu->h_gr_get (FLD (f_Rd)), 15), 2147352576), current_cpu->h_gr_get (FLD (f_Rd))), ORSI (SLLSI (current_cpu->h_cy_get (), 31), SLLSI (current_cpu->h_cy_get (), 16)));
-  tmp_tmpfoo = ROLSI (tmp_tmpfoo, ANDSI (NEGSI (FLD (f_imm4)), 31));
+  tmp_tmpfoo = ROLSI (tmp_tmpfoo, ANDSI (SUBSI (47, MODSI (ADDSI (ANDSI (FLD (f_imm4), 15), 15), 17)), 31));
 {
   HI tmp_nvalue;
   tmp_nvalue = TRUNCSIHI (tmp_tmpfoo);
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3992), SLLSI (ANDSI (SRLSI (tmp_tmpfoo, 16), 1), 2)), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3992), SLLSI (ANDSI (SRLSI (tmp_tmpfoo, 16), 1), 2)), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 }
 
@@ -3257,17 +3186,17 @@ xstormy16_sem_rlcgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = TRUNCSIHI (tmp_tmpfoo);
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3992), SLLSI (ANDSI (SRLSI (tmp_tmpfoo, 16), 1), 2)), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3992), SLLSI (ANDSI (SRLSI (tmp_tmpfoo, 16), 1), 2)), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 }
 
@@ -3295,17 +3224,17 @@ xstormy16_sem_rlcgrimm4 (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = TRUNCSIHI (tmp_tmpfoo);
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3992), SLLSI (ANDSI (SRLSI (tmp_tmpfoo, 16), 1), 2)), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3992), SLLSI (ANDSI (SRLSI (tmp_tmpfoo, 16), 1), 2)), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 }
 
@@ -3329,17 +3258,17 @@ xstormy16_sem_shrgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = SRLSI (current_cpu->h_gr_get (FLD (f_Rd)), ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15));
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3992), SLLSI (ANDSI (((EQSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15), 0)) ? (current_cpu->h_gr_get (FLD (f_Rd))) : (SRLSI (current_cpu->h_gr_get (FLD (f_Rd)), SUBSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15), 1)))), 1), 2)), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3992), SLLSI (ANDSI (((EQSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15), 0)) ? (current_cpu->h_gr_get (FLD (f_Rd))) : (SRLSI (current_cpu->h_gr_get (FLD (f_Rd)), SUBSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15), 1)))), 1), 2)), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -3362,17 +3291,17 @@ xstormy16_sem_shrgrimm (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = SRLSI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4));
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3992), SLLSI (ANDSI (((EQSI (FLD (f_imm4), 0)) ? (current_cpu->h_gr_get (FLD (f_Rd))) : (SRLSI (current_cpu->h_gr_get (FLD (f_Rd)), SUBSI (FLD (f_imm4), 1)))), 1), 2)), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3992), SLLSI (ANDSI (((EQSI (FLD (f_imm4), 0)) ? (current_cpu->h_gr_get (FLD (f_Rd))) : (SRLSI (current_cpu->h_gr_get (FLD (f_Rd)), SUBSI (FLD (f_imm4), 1)))), 1), 2)), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -3395,17 +3324,17 @@ xstormy16_sem_shlgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = SLLSI (current_cpu->h_gr_get (FLD (f_Rd)), ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15));
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3992), SLLSI (SRLSI (((EQSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15), 0)) ? (current_cpu->h_gr_get (FLD (f_Rd))) : (SLLSI (current_cpu->h_gr_get (FLD (f_Rd)), SUBSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15), 1)))), 15), 2)), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3992), SLLSI (SRLSI (((EQSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15), 0)) ? (current_cpu->h_gr_get (FLD (f_Rd))) : (SLLSI (current_cpu->h_gr_get (FLD (f_Rd)), SUBSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15), 1)))), 15), 2)), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -3428,17 +3357,17 @@ xstormy16_sem_shlgrimm (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = SLLSI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4));
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3992), SLLSI (SRLSI (((EQSI (FLD (f_imm4), 0)) ? (current_cpu->h_gr_get (FLD (f_Rd))) : (SLLSI (current_cpu->h_gr_get (FLD (f_Rd)), SUBSI (FLD (f_imm4), 1)))), 15), 2)), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3992), SLLSI (SRLSI (((EQSI (FLD (f_imm4), 0)) ? (current_cpu->h_gr_get (FLD (f_Rd))) : (SLLSI (current_cpu->h_gr_get (FLD (f_Rd)), SUBSI (FLD (f_imm4), 1)))), 15), 2)), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -3461,17 +3390,17 @@ xstormy16_sem_asrgrgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = SRAHI (current_cpu->h_gr_get (FLD (f_Rd)), ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15));
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3992), SLLSI (ANDSI (((EQSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15), 0)) ? (current_cpu->h_gr_get (FLD (f_Rd))) : (SRLSI (current_cpu->h_gr_get (FLD (f_Rd)), SUBSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15), 1)))), 1), 2)), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3992), SLLSI (ANDSI (((EQSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15), 0)) ? (current_cpu->h_gr_get (FLD (f_Rd))) : (SRLSI (current_cpu->h_gr_get (FLD (f_Rd)), SUBSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15), 1)))), 1), 2)), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -3494,17 +3423,17 @@ xstormy16_sem_asrgrimm (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = SRAHI (current_cpu->h_gr_get (FLD (f_Rd)), FLD (f_imm4));
   {
-    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3992), SLLSI (ANDSI (((EQSI (FLD (f_imm4), 0)) ? (current_cpu->h_gr_get (FLD (f_Rd))) : (SRLSI (current_cpu->h_gr_get (FLD (f_Rd)), SUBSI (FLD (f_imm4), 1)))), 1), 2)), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3992), SLLSI (ANDSI (((EQSI (FLD (f_imm4), 0)) ? (current_cpu->h_gr_get (FLD (f_Rd))) : (SRLSI (current_cpu->h_gr_get (FLD (f_Rd)), SUBSI (FLD (f_imm4), 1)))), 1), 2)), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -3527,17 +3456,17 @@ xstormy16_sem_set1grimm (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = ORSI (current_cpu->h_gr_get (FLD (f_Rd)), SLLSI (1, FLD (f_imm4)));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -3560,17 +3489,17 @@ xstormy16_sem_set1grgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = ORSI (current_cpu->h_gr_get (FLD (f_Rd)), SLLSI (1, ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15)));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -3659,17 +3588,17 @@ xstormy16_sem_clr1grimm (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), INVSI (SLLSI (1, FLD (f_imm4))));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -3692,17 +3621,17 @@ xstormy16_sem_clr1grgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), INVSI (SLLSI (1, ANDSI (current_cpu->h_gr_get (FLD (f_Rs)), 15))));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -3791,17 +3720,17 @@ xstormy16_sem_cbwgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = EXTQIHI (TRUNCSIQI (current_cpu->h_gr_get (FLD (f_Rd))));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
@@ -3824,17 +3753,17 @@ xstormy16_sem_revgr (xstormy16_cpu* current_cpu, xstormy16_scache* sem)
   HI tmp_nvalue;
   tmp_nvalue = ORSI (SLLSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 1), 15), ORSI (SLLSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 2), 13), ORSI (SLLSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 4), 11), ORSI (SLLSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 8), 9), ORSI (SLLSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 16), 7), ORSI (SLLSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 32), 5), ORSI (SLLSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 64), 3), ORSI (SLLSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 128), 1), ORSI (SRLSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 256), 1), ORSI (SRLSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 512), 3), ORSI (SRLSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 1024), 5), ORSI (SRLSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 2048), 7), ORSI (SRLSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 4096), 9), ORSI (SRLSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 8192), 11), ORSI (SRLSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 16384), 13), SRLSI (ANDSI (current_cpu->h_gr_get (FLD (f_Rd)), 32768), 15))))))))))))))));
   {
-    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
-    current_cpu->h_gr_set (((UINT) 14), opval);
-    if (UNLIKELY(current_cpu->trace_result_p))
-      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
-  }
-  {
     HI opval = tmp_nvalue;
     current_cpu->h_gr_set (FLD (f_Rd), opval);
     if (UNLIKELY(current_cpu->trace_result_p))
       current_cpu->trace_stream << "gr" << '[' << FLD (f_Rd) << ']' << ":=0x" << hex << opval << dec << "  ";
   }
+  {
+    SI opval = ORSI (ANDSI (current_cpu->h_gr_get (((UINT) 14)), 3996), ORSI (SLLSI (FLD (f_Rd), 12), ORBI (ORBI (EQHI (ANDHI (tmp_nvalue, 255), 0), SLLHI (EQHI (tmp_nvalue, 0), 1)), ORHI (SLLHI (current_cpu->parity (tmp_nvalue), 5), SLLHI (LTHI (tmp_nvalue, 0), 6)))));
+    current_cpu->h_gr_set (((UINT) 14), opval);
+    if (UNLIKELY(current_cpu->trace_result_p))
+      current_cpu->trace_stream << "gr" << '[' << ((UINT) 14) << ']' << ":=0x" << hex << opval << dec << "  ";
+  }
 }
 
   current_cpu->done_insn (npc, status);
index 6c87a06..93b04ec 100644 (file)
@@ -43,15 +43,15 @@ xstormy16_write_sfmt_movlmemimm (xstormy16_cpu* current_cpu, xstormy16_scache* s
   PCADDR npc = 0; // dummy value for branches
   sem_status status = SEM_STATUS_NORMAL; // ditto
 
-  if (written & (1ULL << 5))
+  if (written & (1ULL << 4))
     {
-      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_lmem8_idx), OPRND (h_memory_HI_lmem8));
+      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_and__DFLT_lmem8_65534_idx), OPRND (h_memory_HI_and__DFLT_lmem8_65534));
     }
-  if (written & (1ULL << 6))
+  if (written & (1ULL << 5))
     {
       current_cpu->SETMEMQI (pc, OPRND (h_memory_QI_lmem8_idx), OPRND (h_memory_QI_lmem8));
     }
-  if (written & (1ULL << 7))
+  if (written & (1ULL << 6))
     {
       current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
     }
@@ -73,15 +73,15 @@ xstormy16_write_sfmt_movhmemimm (xstormy16_cpu* current_cpu, xstormy16_scache* s
   PCADDR npc = 0; // dummy value for branches
   sem_status status = SEM_STATUS_NORMAL; // ditto
 
-  if (written & (1ULL << 5))
+  if (written & (1ULL << 4))
     {
-      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_hmem8_idx), OPRND (h_memory_HI_hmem8));
+      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_and__DFLT_hmem8_65534_idx), OPRND (h_memory_HI_and__DFLT_hmem8_65534));
     }
-  if (written & (1ULL << 6))
+  if (written & (1ULL << 5))
     {
       current_cpu->SETMEMQI (pc, OPRND (h_memory_QI_hmem8_idx), OPRND (h_memory_QI_hmem8));
     }
-  if (written & (1ULL << 7))
+  if (written & (1ULL << 6))
     {
       current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
     }
@@ -155,15 +155,15 @@ xstormy16_write_sfmt_movlmemgr (xstormy16_cpu* current_cpu, xstormy16_scache* se
   PCADDR npc = 0; // dummy value for branches
   sem_status status = SEM_STATUS_NORMAL; // ditto
 
-  if (written & (1ULL << 5))
+  if (written & (1ULL << 4))
     {
-      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_lmem8_idx), OPRND (h_memory_HI_lmem8));
+      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_and__DFLT_lmem8_65534_idx), OPRND (h_memory_HI_and__DFLT_lmem8_65534));
     }
-  if (written & (1ULL << 6))
+  if (written & (1ULL << 5))
     {
       current_cpu->SETMEMQI (pc, OPRND (h_memory_QI_lmem8_idx), OPRND (h_memory_QI_lmem8));
     }
-  if (written & (1ULL << 7))
+  if (written & (1ULL << 6))
     {
       current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
     }
@@ -292,7 +292,7 @@ xstormy16_write_sfmt_movgripostincgr (xstormy16_cpu* current_cpu, xstormy16_scac
   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_Rs_idx), OPRND (h_gr_HI_index_of__DFLT_Rs));
+  current_cpu->h_gr_set (FLD (f_Rs), OPRND (Rs));
   if (written & (1ULL << 6))
     {
       current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_nwhere_idx), OPRND (h_memory_HI_nwhere));
@@ -320,7 +320,7 @@ xstormy16_write_sfmt_movgripredecgr (xstormy16_cpu* current_cpu, xstormy16_scach
   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_Rs_idx), OPRND (h_gr_HI_index_of__DFLT_Rs));
+  current_cpu->h_gr_set (FLD (f_Rs), OPRND (Rs));
   if (written & (1ULL << 6))
     {
       current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_nwhere_idx), OPRND (h_memory_HI_nwhere));
@@ -428,7 +428,34 @@ xstormy16_write_sfmt_movgriigr (xstormy16_cpu* current_cpu, xstormy16_scache* se
   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_Rs_idx), OPRND (h_gr_HI_index_of__DFLT_Rs));
+  if (written & (1ULL << 6))
+    {
+      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_nwhere_idx), OPRND (h_memory_HI_nwhere));
+    }
+  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_nwhere_idx), OPRND (h_memory_HI_nwhere));
@@ -456,7 +483,7 @@ xstormy16_write_sfmt_movgriipredecgr (xstormy16_cpu* current_cpu, xstormy16_scac
   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_Rs_idx), OPRND (h_gr_HI_index_of__DFLT_Rs));
+  current_cpu->h_gr_set (FLD (f_Rs), OPRND (Rs));
   if (written & (1ULL << 7))
     {
       current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_nwhere_idx), OPRND (h_memory_HI_nwhere));
@@ -664,14 +691,43 @@ xstormy16_write_sfmt_movfgrigr (xstormy16_cpu* current_cpu, xstormy16_scache* se
   PCADDR npc = 0; // dummy value for branches
   sem_status status = SEM_STATUS_NORMAL; // ditto
 
-  if (written & (1ULL << 9))
+  if (written & (1ULL << 6))
     {
-      current_cpu->h_gr_set (OPRND (h_gr_HI_index_of__DFLT_Rs_idx), OPRND (h_gr_HI_index_of__DFLT_Rs));
+      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_nwhere_idx), OPRND (h_memory_HI_nwhere));
     }
-  if (written & (1ULL << 10))
+  if (written & (1ULL << 7))
     {
-      current_cpu->h_gr_set (((UINT) 14), OPRND (psw));
+      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_nwhere_idx), OPRND (h_memory_HI_nwhere));
     }
+  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
@@ -690,7 +746,15 @@ xstormy16_write_sfmt_movfgripredecgr (xstormy16_cpu* current_cpu, xstormy16_scac
   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_Rs_idx), OPRND (h_gr_HI_index_of__DFLT_Rs));
+  current_cpu->h_gr_set (FLD (f_Rs), OPRND (Rs));
+  if (written & (1ULL << 7))
+    {
+      current_cpu->SETMEMHI (pc, OPRND (h_memory_HI_nwhere_idx), OPRND (h_memory_HI_nwhere));
+    }
+  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;
@@ -790,7 +854,34 @@ xstormy16_write_sfmt_movfgriigr (xstormy16_cpu* current_cpu, xstormy16_scache* s
   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_Rs_idx), OPRND (h_gr_HI_index_of__DFLT_Rs));
+  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));
@@ -818,7 +909,7 @@ xstormy16_write_sfmt_movfgriipredecgr (xstormy16_cpu* current_cpu, xstormy16_sca
   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_Rs_idx), OPRND (h_gr_HI_index_of__DFLT_Rs));
+  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));
index 87815ab..8c7ddc9 100644 (file)
@@ -358,8 +358,8 @@ xstormy16_cpu::parity (int reg)
 {
   int tmp;
   tmp = reg ^ (reg >> 8);
-  tmp ^= reg >> 4;
-  tmp ^= reg >> 2;
-  tmp ^= reg >> 1;
+  tmp ^= tmp >> 4;
+  tmp ^= tmp >> 2;
+  tmp ^= tmp >> 1;
   return tmp & 1;
 }