Move the symbol lists to buildsym_compunit
[deliverable/binutils-gdb.git] / opcodes / rx-decode.c
index 7b25ea7dca53d78b45ab3a7b14c254b5159e205f..16ac0620388309f8d3d881a62a95858bf5bcd698 100644 (file)
@@ -1,12 +1,34 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 #line 1 "rx-decode.opc"
 /* -*- c -*- */
+/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+   Contributed by Red Hat.
+   Written by DJ Delorie.
+
+   This file is part of the GNU opcodes library.
+
+   This library is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   It is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+#include "sysdep.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-
-#include "config.h"
 #include "ansidecl.h"
 #include "opcode/rx.h"
+#include "libiberty.h"
 
 #define RX_OPCODE_BIG_ENDIAN 0
 
@@ -25,28 +47,31 @@ static int trace = 0;
 #define LSIZE 2
 
 /* These are for when the upper bits are "don't care" or "undefined".  */
-static int bwl[] =
+static int bwl[4] =
 {
   RX_Byte,
   RX_Word,
-  RX_Long
+  RX_Long,
+  RX_Bad_Size /* Bogus instructions can have a size field set to 3.  */
 };
 
-static int sbwl[] =
+static int sbwl[4] =
 {
   RX_SByte,
   RX_SWord,
-  RX_Long
+  RX_Long,
+  RX_Bad_Size /* Bogus instructions can have a size field set to 3.  */
 };
 
-static int ubwl[] =
+static int ubw[4] =
 {
   RX_UByte,
   RX_UWord,
-  RX_Long
+  RX_Bad_Size,/* Bogus instructions can have a size field set to 2.  */
+  RX_Bad_Size /* Bogus instructions can have a size field set to 3.  */
 };
 
-static int memex[] =
+static int memex[4] =
 {
   RX_SByte,
   RX_SWord,
@@ -62,10 +87,13 @@ static int memex[] =
                        rx->op[n].size = s )
 
 /* This is for the BWL and BW bitfields.  */
-static int SCALE[] = { 1, 2, 4 };
+static int SCALE[] = { 1, 2, 4, 0 };
 /* This is for the prefix size enum.  */
 static int PSCALE[] = { 4, 1, 1, 1, 2, 2, 2, 3, 4 };
 
+#define GET_SCALE(_indx)  ((unsigned)(_indx) < ARRAY_SIZE (SCALE) ? SCALE[(_indx)] : 0)
+#define GET_PSCALE(_indx) ((unsigned)(_indx) < ARRAY_SIZE (PSCALE) ? PSCALE[(_indx)] : 0)
+
 static int flagmap[] = {0, 1, 2, 3, 0, 0, 0, 0,
                       16, 17, 0, 0, 0, 0, 0, 0 };
 
@@ -84,14 +112,15 @@ static int dsp3map[] = { 8, 9, 10, 3, 4, 5, 6, 7 };
 #define DC(c)       OP (0, RX_Operand_Immediate, 0, c)
 #define DR(r)       OP (0, RX_Operand_Register,  r, 0)
 #define DI(r,a)     OP (0, RX_Operand_Indirect,  r, a)
-#define DIs(r,a,s)  OP (0, RX_Operand_Indirect,  r, (a) * SCALE[s])
+#define DIs(r,a,s)  OP (0, RX_Operand_Indirect,  r, (a) * GET_SCALE (s))
 #define DD(t,r,s)   rx_disp (0, t, r, bwl[s], ld);
 #define DF(r)       OP (0, RX_Operand_Flag,  flagmap[r], 0)
 
 #define SC(i)       OP (1, RX_Operand_Immediate, 0, i)
 #define SR(r)       OP (1, RX_Operand_Register,  r, 0)
+#define SRR(r)      OP (1, RX_Operand_TwoReg,  r, 0)
 #define SI(r,a)     OP (1, RX_Operand_Indirect,  r, a)
-#define SIs(r,a,s)  OP (1, RX_Operand_Indirect,  r, (a) * SCALE[s])
+#define SIs(r,a,s)  OP (1, RX_Operand_Indirect,  r, (a) * GET_SCALE (s))
 #define SD(t,r,s)   rx_disp (1, t, r, bwl[s], ld);
 #define SP(t,r)     rx_disp (1, t, r, (t!=3) ? RX_UByte : RX_Long, ld); P(t, 1);
 #define SPm(t,r,m)  rx_disp (1, t, r, memex[m], ld); rx->op[1].size = memex[m];
@@ -100,7 +129,7 @@ static int dsp3map[] = { 8, 9, 10, 3, 4, 5, 6, 7 };
 #define S2C(i)      OP (2, RX_Operand_Immediate, 0, i)
 #define S2R(r)      OP (2, RX_Operand_Register,  r, 0)
 #define S2I(r,a)    OP (2, RX_Operand_Indirect,  r, a)
-#define S2Is(r,a,s) OP (2, RX_Operand_Indirect,  r, (a) * SCALE[s])
+#define S2Is(r,a,s) OP (2, RX_Operand_Indirect,  r, (a) * GET_SCALE (s))
 #define S2D(t,r,s)  rx_disp (2, t, r, bwl[s], ld);
 #define S2P(t,r)    rx_disp (2, t, r, (t!=3) ? RX_UByte : RX_Long, ld); P(t, 2);
 #define S2Pm(t,r,m) rx_disp (2, t, r, memex[m], ld); rx->op[2].size = memex[m];
@@ -108,7 +137,7 @@ static int dsp3map[] = { 8, 9, 10, 3, 4, 5, 6, 7 };
 
 #define BWL(sz)     rx->op[0].size = rx->op[1].size = rx->op[2].size = rx->size = bwl[sz]
 #define sBWL(sz)    rx->op[0].size = rx->op[1].size = rx->op[2].size = rx->size = sbwl[sz]
-#define uBWL(sz)    rx->op[0].size = rx->op[1].size = rx->op[2].size = rx->size = ubwl[sz]
+#define uBW(sz)     rx->op[0].size = rx->op[1].size = rx->op[2].size = rx->size = ubw[sz]
 #define P(t, n)            rx->op[n].size = (t!=3) ? RX_UByte : RX_Long;
 
 #define F(f) store_flags(rx, f)
@@ -187,7 +216,7 @@ immediate (int sfield, int ex, LocalData * ld)
 }
 
 static void
-rx_disp (int n, int type, int reg, int size, LocalData * ld)
+rx_disp (int n, int type, int reg, unsigned int size, LocalData * ld)
 {
   int disp;
 
@@ -198,13 +227,13 @@ rx_disp (int n, int type, int reg, int size, LocalData * ld)
       ld->rx->op[n].type = RX_Operand_Register;
       break;
     case 0:
-      ld->rx->op[n].type = RX_Operand_Indirect;
+      ld->rx->op[n].type = RX_Operand_Zero_Indirect;
       ld->rx->op[n].addend = 0;
       break;
     case 1:
       ld->rx->op[n].type = RX_Operand_Indirect;
       disp = GETBYTE ();
-      ld->rx->op[n].addend = disp * PSCALE[size];
+      ld->rx->op[n].addend = disp * GET_PSCALE (size);
       break;
     case 2:
       ld->rx->op[n].type = RX_Operand_Indirect;
@@ -214,52 +243,27 @@ rx_disp (int n, int type, int reg, int size, LocalData * ld)
 #else
       disp = disp + GETBYTE () * 256;
 #endif
-      ld->rx->op[n].addend = disp * PSCALE[size];
+      ld->rx->op[n].addend = disp * GET_PSCALE (size);
       break;
     default:
       abort ();
     }
 }
 
-/* The syntax is "OSZC" where each character is one of the following:
-   - = flag unchanged
-   0 = flag cleared
-   1 = flag set
-   ? = flag undefined
-   x = flag set (any letter will do, use it for hints :).  */
+#define xO 8
+#define xS 4
+#define xZ 2
+#define xC 1
 
-static void
-store_flags (RX_Opcode_Decoded * rx, char * str)
-{
-  int i, mask;
-  rx->flags_0 = 0;
-  rx->flags_1 = 0;
-  rx->flags_s = 0;
-  
-  for (i = 0; i < 4; i++)
-    {
-      mask = 8 >> i;
-      switch (str[i])
-       {
-       case 0:
-         abort ();
-       case '-':
-         break;
-       case '0':
-         rx->flags_0 |= mask;
-         break;
-       case '1':
-         rx->flags_1 |= mask;
-         break;
-       case '?':
-         break;
-       default:
-         rx->flags_0 |= mask;
-         rx->flags_s |= mask;
-         break;
-       }
-    }
-}
+#define F_____
+#define F___ZC rx->flags_0 = rx->flags_s = xZ|xC;
+#define F__SZ_ rx->flags_0 = rx->flags_s = xS|xZ;
+#define F__SZC rx->flags_0 = rx->flags_s = xS|xZ|xC;
+#define F_0SZC rx->flags_0 = xO|xS|xZ|xC; rx->flags_s = xS|xZ|xC;
+#define F_O___ rx->flags_0 = rx->flags_s = xO;
+#define F_OS__ rx->flags_0 = rx->flags_s = xO|xS;
+#define F_OSZ_ rx->flags_0 = rx->flags_s = xO|xS|xZ;
+#define F_OSZC rx->flags_0 = rx->flags_s = xO|xS|xZ|xC;
 
 int
 rx_decode_opcode (unsigned long pc AU,
@@ -295,9 +299,9 @@ rx_decode_opcode (unsigned long pc AU,
                      op[0]);
             }
           SYNTAX("brk");
-#line 951 "rx-decode.opc"
+#line 1029 "rx-decode.opc"
           ID(brk);
-        
+
         }
       break;
     case 0x01:
@@ -310,9 +314,9 @@ rx_decode_opcode (unsigned long pc AU,
                      op[0]);
             }
           SYNTAX("dbt");
-#line 954 "rx-decode.opc"
+#line 1032 "rx-decode.opc"
           ID(dbt);
-        
+
         }
       break;
     case 0x02:
@@ -325,12 +329,12 @@ rx_decode_opcode (unsigned long pc AU,
                      op[0]);
             }
           SYNTAX("rts");
-#line 740 "rx-decode.opc"
+#line 810 "rx-decode.opc"
           ID(rts);
-        
+
         /*----------------------------------------------------------------------*/
         /* NOP                                                         */
-        
+
         }
       break;
     case 0x03:
@@ -343,12 +347,12 @@ rx_decode_opcode (unsigned long pc AU,
                      op[0]);
             }
           SYNTAX("nop");
-#line 746 "rx-decode.opc"
+#line 816 "rx-decode.opc"
           ID(nop);
-        
+
         /*----------------------------------------------------------------------*/
         /* STRING FUNCTIONS                                                    */
-        
+
         }
       break;
     case 0x04:
@@ -361,9 +365,9 @@ rx_decode_opcode (unsigned long pc AU,
                      op[0]);
             }
           SYNTAX("bra.a        %a0");
-#line 718 "rx-decode.opc"
-          ID(branch); Scc(RXC_always); DC(pc + IMMex(3));
-        
+#line 788 "rx-decode.opc"
+          ID(branch); DC(pc + IMMex(3));
+
         }
       break;
     case 0x05:
@@ -376,9 +380,9 @@ rx_decode_opcode (unsigned long pc AU,
                      op[0]);
             }
           SYNTAX("bsr.a        %a0");
-#line 734 "rx-decode.opc"
+#line 804 "rx-decode.opc"
           ID(jsr); DC(pc + IMMex(3));
-        
+
         }
       break;
     case 0x06:
@@ -393,13 +397,13 @@ rx_decode_opcode (unsigned long pc AU,
                   op_semantics_1:
                     {
                       /** 0000 0110 mx00 00ss rsrc rdst                        sub     %2%S2, %1 */
-#line 522 "rx-decode.opc"
+#line 546 "rx-decode.opc"
                       int mx AU = (op[1] >> 6) & 0x03;
-#line 522 "rx-decode.opc"
+#line 546 "rx-decode.opc"
                       int ss AU = op[1] & 0x03;
-#line 522 "rx-decode.opc"
+#line 546 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 522 "rx-decode.opc"
+#line 546 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -412,9 +416,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("sub      %2%S2, %1");
-#line 522 "rx-decode.opc"
-                      ID(sub); S2Pm(ss, rsrc, mx); SR(rdst); DR(rdst); F("OSZC");
-                    
+#line 546 "rx-decode.opc"
+                      ID(sub); S2Pm(ss, rsrc, mx); SR(rdst); DR(rdst); F_OSZC;
+
                     }
                   break;
               }
@@ -454,13 +458,13 @@ rx_decode_opcode (unsigned long pc AU,
                   op_semantics_2:
                     {
                       /** 0000 0110 mx00 01ss rsrc rdst                cmp     %2%S2, %1 */
-#line 510 "rx-decode.opc"
+#line 534 "rx-decode.opc"
                       int mx AU = (op[1] >> 6) & 0x03;
-#line 510 "rx-decode.opc"
+#line 534 "rx-decode.opc"
                       int ss AU = op[1] & 0x03;
-#line 510 "rx-decode.opc"
+#line 534 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 510 "rx-decode.opc"
+#line 534 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -473,12 +477,12 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("cmp      %2%S2, %1");
-#line 510 "rx-decode.opc"
-                      ID(sub); S2Pm(ss, rsrc, mx); SR(rdst); F("OSZC");
-                    
+#line 534 "rx-decode.opc"
+                      ID(sub); S2Pm(ss, rsrc, mx); SR(rdst); F_OSZC;
+
                     /*----------------------------------------------------------------------*/
                     /* SUB                                                                     */
-                    
+
                     }
                   break;
               }
@@ -518,13 +522,13 @@ rx_decode_opcode (unsigned long pc AU,
                   op_semantics_3:
                     {
                       /** 0000 0110 mx00 10ss rsrc rdst        add     %1%S1, %0 */
-#line 486 "rx-decode.opc"
+#line 510 "rx-decode.opc"
                       int mx AU = (op[1] >> 6) & 0x03;
-#line 486 "rx-decode.opc"
+#line 510 "rx-decode.opc"
                       int ss AU = op[1] & 0x03;
-#line 486 "rx-decode.opc"
+#line 510 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 486 "rx-decode.opc"
+#line 510 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -537,9 +541,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("add      %1%S1, %0");
-#line 486 "rx-decode.opc"
-                      ID(add); SPm(ss, rsrc, mx); DR(rdst); F("OSZC");
-                    
+#line 510 "rx-decode.opc"
+                      ID(add); SPm(ss, rsrc, mx); DR(rdst); F_OSZC;
+
                     }
                   break;
               }
@@ -579,13 +583,13 @@ rx_decode_opcode (unsigned long pc AU,
                   op_semantics_4:
                     {
                       /** 0000 0110 mx00 11ss rsrc rdst        mul     %1%S1, %0 */
-#line 583 "rx-decode.opc"
+#line 653 "rx-decode.opc"
                       int mx AU = (op[1] >> 6) & 0x03;
-#line 583 "rx-decode.opc"
+#line 653 "rx-decode.opc"
                       int ss AU = op[1] & 0x03;
-#line 583 "rx-decode.opc"
+#line 653 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 583 "rx-decode.opc"
+#line 653 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -598,9 +602,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("mul      %1%S1, %0");
-#line 583 "rx-decode.opc"
-                      ID(mul); SPm(ss, rsrc, mx); DR(rdst); F("----");
-                    
+#line 653 "rx-decode.opc"
+                      ID(mul); SPm(ss, rsrc, mx); DR(rdst); F_____;
+
                     }
                   break;
               }
@@ -640,13 +644,13 @@ rx_decode_opcode (unsigned long pc AU,
                   op_semantics_5:
                     {
                       /** 0000 0110 mx01 00ss rsrc rdst        and     %1%S1, %0 */
-#line 399 "rx-decode.opc"
+#line 423 "rx-decode.opc"
                       int mx AU = (op[1] >> 6) & 0x03;
-#line 399 "rx-decode.opc"
+#line 423 "rx-decode.opc"
                       int ss AU = op[1] & 0x03;
-#line 399 "rx-decode.opc"
+#line 423 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 399 "rx-decode.opc"
+#line 423 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -659,9 +663,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("and      %1%S1, %0");
-#line 399 "rx-decode.opc"
-                      ID(and); SPm(ss, rsrc, mx); DR(rdst); F("-SZ-");
-                    
+#line 423 "rx-decode.opc"
+                      ID(and); SPm(ss, rsrc, mx); DR(rdst); F__SZ_;
+
                     }
                   break;
               }
@@ -701,13 +705,13 @@ rx_decode_opcode (unsigned long pc AU,
                   op_semantics_6:
                     {
                       /** 0000 0110 mx01 01ss rsrc rdst                        or      %1%S1, %0 */
-#line 417 "rx-decode.opc"
+#line 441 "rx-decode.opc"
                       int mx AU = (op[1] >> 6) & 0x03;
-#line 417 "rx-decode.opc"
+#line 441 "rx-decode.opc"
                       int ss AU = op[1] & 0x03;
-#line 417 "rx-decode.opc"
+#line 441 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 417 "rx-decode.opc"
+#line 441 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -720,9 +724,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("or       %1%S1, %0");
-#line 417 "rx-decode.opc"
-                      ID(or); SPm(ss, rsrc, mx); DR(rdst); F("-SZ-");
-                    
+#line 441 "rx-decode.opc"
+                      ID(or); SPm(ss, rsrc, mx); DR(rdst); F__SZ_;
+
                     }
                   break;
               }
@@ -766,13 +770,13 @@ rx_decode_opcode (unsigned long pc AU,
                         op_semantics_7:
                           {
                             /** 0000 0110 mx10 00sp 0000 0000 rsrc rdst        sbb     %1%S1, %0 */
-#line 535 "rx-decode.opc"
+#line 559 "rx-decode.opc"
                             int mx AU = (op[1] >> 6) & 0x03;
-#line 535 "rx-decode.opc"
+#line 559 "rx-decode.opc"
                             int sp AU = op[1] & 0x03;
-#line 535 "rx-decode.opc"
+#line 559 "rx-decode.opc"
                             int rsrc AU = (op[3] >> 4) & 0x0f;
-#line 535 "rx-decode.opc"
+#line 559 "rx-decode.opc"
                             int rdst AU = op[3] & 0x0f;
                             if (trace)
                               {
@@ -785,12 +789,12 @@ rx_decode_opcode (unsigned long pc AU,
                                 printf ("  rdst = 0x%x\n", rdst);
                               }
                             SYNTAX("sbb        %1%S1, %0");
-#line 535 "rx-decode.opc"
-                            ID(sbb); SPm(sp, rsrc, mx); DR(rdst); F("OSZC");
-                          
+#line 559 "rx-decode.opc"
+                            ID(sbb); SPm(sp, rsrc, mx); DR(rdst); F_OSZC;
+
                           /*----------------------------------------------------------------------*/
                           /* ABS                                                                       */
-                          
+
                           }
                         break;
                     }
@@ -803,13 +807,13 @@ rx_decode_opcode (unsigned long pc AU,
                         op_semantics_8:
                           {
                             /** 0000 0110 mx10 00ss 0000 0100 rsrc rdst        max     %1%S1, %0 */
-#line 556 "rx-decode.opc"
+#line 598 "rx-decode.opc"
                             int mx AU = (op[1] >> 6) & 0x03;
-#line 556 "rx-decode.opc"
+#line 598 "rx-decode.opc"
                             int ss AU = op[1] & 0x03;
-#line 556 "rx-decode.opc"
+#line 598 "rx-decode.opc"
                             int rsrc AU = (op[3] >> 4) & 0x0f;
-#line 556 "rx-decode.opc"
+#line 598 "rx-decode.opc"
                             int rdst AU = op[3] & 0x0f;
                             if (trace)
                               {
@@ -822,12 +826,12 @@ rx_decode_opcode (unsigned long pc AU,
                                 printf ("  rdst = 0x%x\n", rdst);
                               }
                             SYNTAX("max        %1%S1, %0");
-#line 556 "rx-decode.opc"
+#line 598 "rx-decode.opc"
                             ID(max); SPm(ss, rsrc, mx); DR(rdst);
-                          
+
                           /*----------------------------------------------------------------------*/
                           /* MIN                                                                       */
-                          
+
                           }
                         break;
                     }
@@ -840,13 +844,13 @@ rx_decode_opcode (unsigned long pc AU,
                         op_semantics_9:
                           {
                             /** 0000 0110 mx10 00ss 0000 0101 rsrc rdst        min     %1%S1, %0 */
-#line 568 "rx-decode.opc"
+#line 610 "rx-decode.opc"
                             int mx AU = (op[1] >> 6) & 0x03;
-#line 568 "rx-decode.opc"
+#line 610 "rx-decode.opc"
                             int ss AU = op[1] & 0x03;
-#line 568 "rx-decode.opc"
+#line 610 "rx-decode.opc"
                             int rsrc AU = (op[3] >> 4) & 0x0f;
-#line 568 "rx-decode.opc"
+#line 610 "rx-decode.opc"
                             int rdst AU = op[3] & 0x0f;
                             if (trace)
                               {
@@ -859,12 +863,12 @@ rx_decode_opcode (unsigned long pc AU,
                                 printf ("  rdst = 0x%x\n", rdst);
                               }
                             SYNTAX("min        %1%S1, %0");
-#line 568 "rx-decode.opc"
+#line 610 "rx-decode.opc"
                             ID(min); SPm(ss, rsrc, mx); DR(rdst);
-                          
+
                           /*----------------------------------------------------------------------*/
                           /* MUL                                                                       */
-                          
+
                           }
                         break;
                     }
@@ -877,13 +881,13 @@ rx_decode_opcode (unsigned long pc AU,
                         op_semantics_10:
                           {
                             /** 0000 0110 mx10 00ss 0000 0110 rsrc rdst        emul    %1%S1, %0 */
-#line 598 "rx-decode.opc"
+#line 668 "rx-decode.opc"
                             int mx AU = (op[1] >> 6) & 0x03;
-#line 598 "rx-decode.opc"
+#line 668 "rx-decode.opc"
                             int ss AU = op[1] & 0x03;
-#line 598 "rx-decode.opc"
+#line 668 "rx-decode.opc"
                             int rsrc AU = (op[3] >> 4) & 0x0f;
-#line 598 "rx-decode.opc"
+#line 668 "rx-decode.opc"
                             int rdst AU = op[3] & 0x0f;
                             if (trace)
                               {
@@ -896,12 +900,12 @@ rx_decode_opcode (unsigned long pc AU,
                                 printf ("  rdst = 0x%x\n", rdst);
                               }
                             SYNTAX("emul       %1%S1, %0");
-#line 598 "rx-decode.opc"
+#line 668 "rx-decode.opc"
                             ID(emul); SPm(ss, rsrc, mx); DR(rdst);
-                          
+
                           /*----------------------------------------------------------------------*/
                           /* EMULU                                                                     */
-                          
+
                           }
                         break;
                     }
@@ -914,13 +918,13 @@ rx_decode_opcode (unsigned long pc AU,
                         op_semantics_11:
                           {
                             /** 0000 0110 mx10 00ss 0000 0111 rsrc rdst        emulu   %1%S1, %0 */
-#line 610 "rx-decode.opc"
+#line 680 "rx-decode.opc"
                             int mx AU = (op[1] >> 6) & 0x03;
-#line 610 "rx-decode.opc"
+#line 680 "rx-decode.opc"
                             int ss AU = op[1] & 0x03;
-#line 610 "rx-decode.opc"
+#line 680 "rx-decode.opc"
                             int rsrc AU = (op[3] >> 4) & 0x0f;
-#line 610 "rx-decode.opc"
+#line 680 "rx-decode.opc"
                             int rdst AU = op[3] & 0x0f;
                             if (trace)
                               {
@@ -933,12 +937,12 @@ rx_decode_opcode (unsigned long pc AU,
                                 printf ("  rdst = 0x%x\n", rdst);
                               }
                             SYNTAX("emulu      %1%S1, %0");
-#line 610 "rx-decode.opc"
+#line 680 "rx-decode.opc"
                             ID(emulu); SPm(ss, rsrc, mx); DR(rdst);
-                          
+
                           /*----------------------------------------------------------------------*/
                           /* DIV                                                                       */
-                          
+
                           }
                         break;
                     }
@@ -951,13 +955,13 @@ rx_decode_opcode (unsigned long pc AU,
                         op_semantics_12:
                           {
                             /** 0000 0110 mx10 00ss 0000 1000 rsrc rdst        div     %1%S1, %0 */
-#line 622 "rx-decode.opc"
+#line 692 "rx-decode.opc"
                             int mx AU = (op[1] >> 6) & 0x03;
-#line 622 "rx-decode.opc"
+#line 692 "rx-decode.opc"
                             int ss AU = op[1] & 0x03;
-#line 622 "rx-decode.opc"
+#line 692 "rx-decode.opc"
                             int rsrc AU = (op[3] >> 4) & 0x0f;
-#line 622 "rx-decode.opc"
+#line 692 "rx-decode.opc"
                             int rdst AU = op[3] & 0x0f;
                             if (trace)
                               {
@@ -970,12 +974,12 @@ rx_decode_opcode (unsigned long pc AU,
                                 printf ("  rdst = 0x%x\n", rdst);
                               }
                             SYNTAX("div        %1%S1, %0");
-#line 622 "rx-decode.opc"
-                            ID(div); SPm(ss, rsrc, mx); DR(rdst); F("O---");
-                          
+#line 692 "rx-decode.opc"
+                            ID(div); SPm(ss, rsrc, mx); DR(rdst); F_O___;
+
                           /*----------------------------------------------------------------------*/
                           /* DIVU                                                                      */
-                          
+
                           }
                         break;
                     }
@@ -988,13 +992,13 @@ rx_decode_opcode (unsigned long pc AU,
                         op_semantics_13:
                           {
                             /** 0000 0110 mx10 00ss 0000 1001 rsrc rdst        divu    %1%S1, %0 */
-#line 634 "rx-decode.opc"
+#line 704 "rx-decode.opc"
                             int mx AU = (op[1] >> 6) & 0x03;
-#line 634 "rx-decode.opc"
+#line 704 "rx-decode.opc"
                             int ss AU = op[1] & 0x03;
-#line 634 "rx-decode.opc"
+#line 704 "rx-decode.opc"
                             int rsrc AU = (op[3] >> 4) & 0x0f;
-#line 634 "rx-decode.opc"
+#line 704 "rx-decode.opc"
                             int rdst AU = op[3] & 0x0f;
                             if (trace)
                               {
@@ -1007,12 +1011,12 @@ rx_decode_opcode (unsigned long pc AU,
                                 printf ("  rdst = 0x%x\n", rdst);
                               }
                             SYNTAX("divu       %1%S1, %0");
-#line 634 "rx-decode.opc"
-                            ID(divu); SPm(ss, rsrc, mx); DR(rdst); F("O---");
-                          
+#line 704 "rx-decode.opc"
+                            ID(divu); SPm(ss, rsrc, mx); DR(rdst); F_O___;
+
                           /*----------------------------------------------------------------------*/
                           /* SHIFT                                                             */
-                          
+
                           }
                         break;
                     }
@@ -1025,13 +1029,13 @@ rx_decode_opcode (unsigned long pc AU,
                         op_semantics_14:
                           {
                             /** 0000 0110 mx10 00ss 0000 1100 rsrc rdst        tst     %1%S1, %2 */
-#line 453 "rx-decode.opc"
+#line 477 "rx-decode.opc"
                             int mx AU = (op[1] >> 6) & 0x03;
-#line 453 "rx-decode.opc"
+#line 477 "rx-decode.opc"
                             int ss AU = op[1] & 0x03;
-#line 453 "rx-decode.opc"
+#line 477 "rx-decode.opc"
                             int rsrc AU = (op[3] >> 4) & 0x0f;
-#line 453 "rx-decode.opc"
+#line 477 "rx-decode.opc"
                             int rdst AU = op[3] & 0x0f;
                             if (trace)
                               {
@@ -1044,12 +1048,12 @@ rx_decode_opcode (unsigned long pc AU,
                                 printf ("  rdst = 0x%x\n", rdst);
                               }
                             SYNTAX("tst        %1%S1, %2");
-#line 453 "rx-decode.opc"
-                            ID(and); SPm(ss, rsrc, mx); S2R(rdst); F("-SZ-");
-                          
+#line 477 "rx-decode.opc"
+                            ID(and); SPm(ss, rsrc, mx); S2R(rdst); F__SZ_;
+
                           /*----------------------------------------------------------------------*/
                           /* NEG                                                                       */
-                          
+
                           }
                         break;
                     }
@@ -1062,13 +1066,13 @@ rx_decode_opcode (unsigned long pc AU,
                         op_semantics_15:
                           {
                             /** 0000 0110 mx10 00ss 0000 1101 rsrc rdst        xor     %1%S1, %0 */
-#line 432 "rx-decode.opc"
+#line 456 "rx-decode.opc"
                             int mx AU = (op[1] >> 6) & 0x03;
-#line 432 "rx-decode.opc"
+#line 456 "rx-decode.opc"
                             int ss AU = op[1] & 0x03;
-#line 432 "rx-decode.opc"
+#line 456 "rx-decode.opc"
                             int rsrc AU = (op[3] >> 4) & 0x0f;
-#line 432 "rx-decode.opc"
+#line 456 "rx-decode.opc"
                             int rdst AU = op[3] & 0x0f;
                             if (trace)
                               {
@@ -1081,12 +1085,12 @@ rx_decode_opcode (unsigned long pc AU,
                                 printf ("  rdst = 0x%x\n", rdst);
                               }
                             SYNTAX("xor        %1%S1, %0");
-#line 432 "rx-decode.opc"
-                            ID(xor); SPm(ss, rsrc, mx); DR(rdst); F("-SZ-");
-                          
+#line 456 "rx-decode.opc"
+                            ID(xor); SPm(ss, rsrc, mx); DR(rdst); F__SZ_;
+
                           /*----------------------------------------------------------------------*/
                           /* NOT                                                                       */
-                          
+
                           }
                         break;
                     }
@@ -1099,13 +1103,13 @@ rx_decode_opcode (unsigned long pc AU,
                         op_semantics_16:
                           {
                             /** 0000 0110 mx10 00ss 0001 0000 rsrc rdst        xchg    %1%S1, %0 */
-#line 366 "rx-decode.opc"
+#line 390 "rx-decode.opc"
                             int mx AU = (op[1] >> 6) & 0x03;
-#line 366 "rx-decode.opc"
+#line 390 "rx-decode.opc"
                             int ss AU = op[1] & 0x03;
-#line 366 "rx-decode.opc"
+#line 390 "rx-decode.opc"
                             int rsrc AU = (op[3] >> 4) & 0x0f;
-#line 366 "rx-decode.opc"
+#line 390 "rx-decode.opc"
                             int rdst AU = op[3] & 0x0f;
                             if (trace)
                               {
@@ -1118,12 +1122,12 @@ rx_decode_opcode (unsigned long pc AU,
                                 printf ("  rdst = 0x%x\n", rdst);
                               }
                             SYNTAX("xchg       %1%S1, %0");
-#line 366 "rx-decode.opc"
+#line 390 "rx-decode.opc"
                             ID(xchg); DR(rdst); SPm(ss, rsrc, mx);
-                          
+
                           /*----------------------------------------------------------------------*/
                           /* STZ/STNZ                                                          */
-                          
+
                           }
                         break;
                     }
@@ -1136,13 +1140,13 @@ rx_decode_opcode (unsigned long pc AU,
                         op_semantics_17:
                           {
                             /** 0000 0110 mx10 00sd 0001 0001 rsrc rdst        itof    %1%S1, %0 */
-#line 863 "rx-decode.opc"
+#line 933 "rx-decode.opc"
                             int mx AU = (op[1] >> 6) & 0x03;
-#line 863 "rx-decode.opc"
+#line 933 "rx-decode.opc"
                             int sd AU = op[1] & 0x03;
-#line 863 "rx-decode.opc"
+#line 933 "rx-decode.opc"
                             int rsrc AU = (op[3] >> 4) & 0x0f;
-#line 863 "rx-decode.opc"
+#line 933 "rx-decode.opc"
                             int rdst AU = op[3] & 0x0f;
                             if (trace)
                               {
@@ -1155,12 +1159,46 @@ rx_decode_opcode (unsigned long pc AU,
                                 printf ("  rdst = 0x%x\n", rdst);
                               }
                             SYNTAX("itof       %1%S1, %0");
-#line 863 "rx-decode.opc"
-                            ID(itof); DR (rdst); SPm(sd, rsrc, mx); F("-SZ-");
-                          
+#line 933 "rx-decode.opc"
+                            ID(itof); DR (rdst); SPm(sd, rsrc, mx); F__SZ_;
+
                           /*----------------------------------------------------------------------*/
                           /* BIT OPS                                                           */
-                          
+
+                          }
+                        break;
+                    }
+                  break;
+                case 0x15:
+                    GETBYTE ();
+                    switch (op[3] & 0x00)
+                    {
+                      case 0x00:
+                        op_semantics_18:
+                          {
+                            /** 0000 0110 mx10 00sd 0001 0101 rsrc rdst        utof    %1%S1, %0 */
+#line 1119 "rx-decode.opc"
+                            int mx AU = (op[1] >> 6) & 0x03;
+#line 1119 "rx-decode.opc"
+                            int sd AU = op[1] & 0x03;
+#line 1119 "rx-decode.opc"
+                            int rsrc AU = (op[3] >> 4) & 0x0f;
+#line 1119 "rx-decode.opc"
+                            int rdst AU = op[3] & 0x0f;
+                            if (trace)
+                              {
+                                printf ("\033[33m%s\033[0m  %02x %02x %02x %02x\n",
+                                       "/** 0000 0110 mx10 00sd 0001 0101 rsrc rdst    utof    %1%S1, %0 */",
+                                       op[0], op[1], op[2], op[3]);
+                                printf ("  mx = 0x%x,", mx);
+                                printf ("  sd = 0x%x,", sd);
+                                printf ("  rsrc = 0x%x,", rsrc);
+                                printf ("  rdst = 0x%x\n", rdst);
+                              }
+                            SYNTAX("utof       %1%S1, %0");
+#line 1119 "rx-decode.opc"
+                            ID(utof); DR (rdst); SPm(sd, rsrc, mx); F__SZ_;
+
                           }
                         break;
                     }
@@ -1271,6 +1309,15 @@ rx_decode_opcode (unsigned long pc AU,
                         break;
                     }
                   break;
+                case 0x15:
+                    GETBYTE ();
+                    switch (op[3] & 0x00)
+                    {
+                      case 0x00:
+                        goto op_semantics_18;
+                        break;
+                    }
+                  break;
                 default: UNSUPPORTED(); break;
               }
             break;
@@ -1377,6 +1424,15 @@ rx_decode_opcode (unsigned long pc AU,
                         break;
                     }
                   break;
+                case 0x15:
+                    GETBYTE ();
+                    switch (op[3] & 0x00)
+                    {
+                      case 0x00:
+                        goto op_semantics_18;
+                        break;
+                    }
+                  break;
                 default: UNSUPPORTED(); break;
               }
             break;
@@ -1483,6 +1539,15 @@ rx_decode_opcode (unsigned long pc AU,
                         break;
                     }
                   break;
+                case 0x15:
+                    GETBYTE ();
+                    switch (op[3] & 0x00)
+                    {
+                      case 0x00:
+                        goto op_semantics_18;
+                        break;
+                    }
+                  break;
                 default: UNSUPPORTED(); break;
               }
             break;
@@ -1805,6 +1870,15 @@ rx_decode_opcode (unsigned long pc AU,
                         break;
                     }
                   break;
+                case 0x15:
+                    GETBYTE ();
+                    switch (op[3] & 0x00)
+                    {
+                      case 0x00:
+                        goto op_semantics_18;
+                        break;
+                    }
+                  break;
                 default: UNSUPPORTED(); break;
               }
             break;
@@ -1911,6 +1985,15 @@ rx_decode_opcode (unsigned long pc AU,
                         break;
                     }
                   break;
+                case 0x15:
+                    GETBYTE ();
+                    switch (op[3] & 0x00)
+                    {
+                      case 0x00:
+                        goto op_semantics_18;
+                        break;
+                    }
+                  break;
                 default: UNSUPPORTED(); break;
               }
             break;
@@ -2017,6 +2100,15 @@ rx_decode_opcode (unsigned long pc AU,
                         break;
                     }
                   break;
+                case 0x15:
+                    GETBYTE ();
+                    switch (op[3] & 0x00)
+                    {
+                      case 0x00:
+                        goto op_semantics_18;
+                        break;
+                    }
+                  break;
                 default: UNSUPPORTED(); break;
               }
             break;
@@ -2123,6 +2215,15 @@ rx_decode_opcode (unsigned long pc AU,
                         break;
                     }
                   break;
+                case 0x15:
+                    GETBYTE ();
+                    switch (op[3] & 0x00)
+                    {
+                      case 0x00:
+                        goto op_semantics_18;
+                        break;
+                    }
+                  break;
                 default: UNSUPPORTED(); break;
               }
             break;
@@ -2360,14 +2461,14 @@ rx_decode_opcode (unsigned long pc AU,
                     switch (op[3] & 0x00)
                     {
                       case 0x00:
-                        op_semantics_18:
+                        op_semantics_19:
                           {
                             /** 0000 0110 1010 00ss 0000 0010 rsrc rdst        adc     %1%S1, %0 */
-#line 474 "rx-decode.opc"
+#line 498 "rx-decode.opc"
                             int ss AU = op[1] & 0x03;
-#line 474 "rx-decode.opc"
+#line 498 "rx-decode.opc"
                             int rsrc AU = (op[3] >> 4) & 0x0f;
-#line 474 "rx-decode.opc"
+#line 498 "rx-decode.opc"
                             int rdst AU = op[3] & 0x0f;
                             if (trace)
                               {
@@ -2379,12 +2480,12 @@ rx_decode_opcode (unsigned long pc AU,
                                 printf ("  rdst = 0x%x\n", rdst);
                               }
                             SYNTAX("adc        %1%S1, %0");
-#line 474 "rx-decode.opc"
-                            ID(adc); SPm(ss, rsrc, 2); DR(rdst); F("OSZC");
-                          
+#line 498 "rx-decode.opc"
+                            ID(adc); SPm(ss, rsrc, 2); DR(rdst); F_OSZC;
+
                           /*----------------------------------------------------------------------*/
                           /* ADD                                                                       */
-                          
+
                           }
                         break;
                     }
@@ -2479,6 +2580,15 @@ rx_decode_opcode (unsigned long pc AU,
                         break;
                     }
                   break;
+                case 0x15:
+                    GETBYTE ();
+                    switch (op[3] & 0x00)
+                    {
+                      case 0x00:
+                        goto op_semantics_18;
+                        break;
+                    }
+                  break;
                 default: UNSUPPORTED(); break;
               }
             break;
@@ -2500,7 +2610,7 @@ rx_decode_opcode (unsigned long pc AU,
                     switch (op[3] & 0x00)
                     {
                       case 0x00:
-                        goto op_semantics_18;
+                        goto op_semantics_19;
                         break;
                     }
                   break;
@@ -2594,6 +2704,15 @@ rx_decode_opcode (unsigned long pc AU,
                         break;
                     }
                   break;
+                case 0x15:
+                    GETBYTE ();
+                    switch (op[3] & 0x00)
+                    {
+                      case 0x00:
+                        goto op_semantics_18;
+                        break;
+                    }
+                  break;
                 default: UNSUPPORTED(); break;
               }
             break;
@@ -2615,7 +2734,7 @@ rx_decode_opcode (unsigned long pc AU,
                     switch (op[3] & 0x00)
                     {
                       case 0x00:
-                        goto op_semantics_18;
+                        goto op_semantics_19;
                         break;
                     }
                   break;
@@ -2709,13 +2828,22 @@ rx_decode_opcode (unsigned long pc AU,
                         break;
                     }
                   break;
-                default: UNSUPPORTED(); break;
-              }
-            break;
-          case 0xa3:
-              GETBYTE ();
-              switch (op[2] & 0xff)
-              {
+                case 0x15:
+                    GETBYTE ();
+                    switch (op[3] & 0x00)
+                    {
+                      case 0x00:
+                        goto op_semantics_18;
+                        break;
+                    }
+                  break;
+                default: UNSUPPORTED(); break;
+              }
+            break;
+          case 0xa3:
+              GETBYTE ();
+              switch (op[2] & 0xff)
+              {
                 case 0x00:
                     GETBYTE ();
                     switch (op[3] & 0x00)
@@ -2730,7 +2858,7 @@ rx_decode_opcode (unsigned long pc AU,
                     switch (op[3] & 0x00)
                     {
                       case 0x00:
-                        goto op_semantics_18;
+                        goto op_semantics_19;
                         break;
                     }
                   break;
@@ -2824,6 +2952,15 @@ rx_decode_opcode (unsigned long pc AU,
                         break;
                     }
                   break;
+                case 0x15:
+                    GETBYTE ();
+                    switch (op[3] & 0x00)
+                    {
+                      case 0x00:
+                        goto op_semantics_18;
+                        break;
+                    }
+                  break;
                 default: UNSUPPORTED(); break;
               }
             break;
@@ -3146,6 +3283,15 @@ rx_decode_opcode (unsigned long pc AU,
                         break;
                     }
                   break;
+                case 0x15:
+                    GETBYTE ();
+                    switch (op[3] & 0x00)
+                    {
+                      case 0x00:
+                        goto op_semantics_18;
+                        break;
+                    }
+                  break;
                 default: UNSUPPORTED(); break;
               }
             break;
@@ -3252,6 +3398,15 @@ rx_decode_opcode (unsigned long pc AU,
                         break;
                     }
                   break;
+                case 0x15:
+                    GETBYTE ();
+                    switch (op[3] & 0x00)
+                    {
+                      case 0x00:
+                        goto op_semantics_18;
+                        break;
+                    }
+                  break;
                 default: UNSUPPORTED(); break;
               }
             break;
@@ -3358,6 +3513,15 @@ rx_decode_opcode (unsigned long pc AU,
                         break;
                     }
                   break;
+                case 0x15:
+                    GETBYTE ();
+                    switch (op[3] & 0x00)
+                    {
+                      case 0x00:
+                        goto op_semantics_18;
+                        break;
+                    }
+                  break;
                 default: UNSUPPORTED(); break;
               }
             break;
@@ -3464,6 +3628,15 @@ rx_decode_opcode (unsigned long pc AU,
                         break;
                     }
                   break;
+                case 0x15:
+                    GETBYTE ();
+                    switch (op[3] & 0x00)
+                    {
+                      case 0x00:
+                        goto op_semantics_18;
+                        break;
+                    }
+                  break;
                 default: UNSUPPORTED(); break;
               }
             break;
@@ -3480,7 +3653,7 @@ rx_decode_opcode (unsigned long pc AU,
     case 0x0f:
         {
           /** 0000 1dsp                        bra.s   %a0 */
-#line 709 "rx-decode.opc"
+#line 779 "rx-decode.opc"
           int dsp AU = op[0] & 0x07;
           if (trace)
             {
@@ -3490,9 +3663,9 @@ rx_decode_opcode (unsigned long pc AU,
               printf ("  dsp = 0x%x\n", dsp);
             }
           SYNTAX("bra.s        %a0");
-#line 709 "rx-decode.opc"
-          ID(branch); Scc(RXC_always); DC(pc + dsp3map[dsp]);
-        
+#line 779 "rx-decode.opc"
+          ID(branch); DC(pc + dsp3map[dsp]);
+
         }
       break;
     case 0x10:
@@ -3513,9 +3686,9 @@ rx_decode_opcode (unsigned long pc AU,
     case 0x1f:
         {
           /** 0001 n dsp                       b%1.s   %a0 */
-#line 699 "rx-decode.opc"
+#line 769 "rx-decode.opc"
           int n AU = (op[0] >> 3) & 0x01;
-#line 699 "rx-decode.opc"
+#line 769 "rx-decode.opc"
           int dsp AU = op[0] & 0x07;
           if (trace)
             {
@@ -3526,9 +3699,9 @@ rx_decode_opcode (unsigned long pc AU,
               printf ("  dsp = 0x%x\n", dsp);
             }
           SYNTAX("b%1.s        %a0");
-#line 699 "rx-decode.opc"
+#line 769 "rx-decode.opc"
           ID(branch); Scc(n); DC(pc + dsp3map[dsp]);
-        
+
         }
       break;
     case 0x20:
@@ -3548,7 +3721,7 @@ rx_decode_opcode (unsigned long pc AU,
     case 0x2f:
         {
           /** 0010 cond                        b%1.b   %a0 */
-#line 702 "rx-decode.opc"
+#line 772 "rx-decode.opc"
           int cond AU = op[0] & 0x0f;
           if (trace)
             {
@@ -3558,9 +3731,9 @@ rx_decode_opcode (unsigned long pc AU,
               printf ("  cond = 0x%x\n", cond);
             }
           SYNTAX("b%1.b        %a0");
-#line 702 "rx-decode.opc"
+#line 772 "rx-decode.opc"
           ID(branch); Scc(cond); DC(pc + IMMex (1));
-        
+
         }
       break;
     case 0x2e:
@@ -3573,9 +3746,9 @@ rx_decode_opcode (unsigned long pc AU,
                      op[0]);
             }
           SYNTAX("bra.b        %a0");
-#line 712 "rx-decode.opc"
-          ID(branch); Scc(RXC_always); DC(pc + IMMex(1));
-        
+#line 782 "rx-decode.opc"
+          ID(branch); DC(pc + IMMex(1));
+
         }
       break;
     case 0x38:
@@ -3588,9 +3761,9 @@ rx_decode_opcode (unsigned long pc AU,
                      op[0]);
             }
           SYNTAX("bra.w        %a0");
-#line 715 "rx-decode.opc"
-          ID(branch); Scc(RXC_always); DC(pc + IMMex(2));
-        
+#line 785 "rx-decode.opc"
+          ID(branch); DC(pc + IMMex(2));
+
         }
       break;
     case 0x39:
@@ -3603,16 +3776,16 @@ rx_decode_opcode (unsigned long pc AU,
                      op[0]);
             }
           SYNTAX("bsr.w        %a0");
-#line 731 "rx-decode.opc"
+#line 801 "rx-decode.opc"
           ID(jsr); DC(pc + IMMex(2));
-        
+
         }
       break;
     case 0x3a:
     case 0x3b:
         {
           /** 0011 101c                        b%1.w   %a0 */
-#line 705 "rx-decode.opc"
+#line 775 "rx-decode.opc"
           int c AU = op[0] & 0x01;
           if (trace)
             {
@@ -3622,10 +3795,10 @@ rx_decode_opcode (unsigned long pc AU,
               printf ("  c = 0x%x\n", c);
             }
           SYNTAX("b%1.w        %a0");
-#line 705 "rx-decode.opc"
+#line 775 "rx-decode.opc"
           ID(branch); Scc(c); DC(pc + IMMex (2));
-        
-        
+
+
         }
       break;
     case 0x3c:
@@ -3633,16 +3806,16 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            op_semantics_19:
+            op_semantics_20:
               {
                 /** 0011 11sz d dst sppp               mov%s   #%1, %0 */
-#line 295 "rx-decode.opc"
+#line 311 "rx-decode.opc"
                 int sz AU = op[0] & 0x03;
-#line 295 "rx-decode.opc"
+#line 311 "rx-decode.opc"
                 int d AU = (op[1] >> 7) & 0x01;
-#line 295 "rx-decode.opc"
+#line 311 "rx-decode.opc"
                 int dst AU = (op[1] >> 4) & 0x07;
-#line 295 "rx-decode.opc"
+#line 311 "rx-decode.opc"
                 int sppp AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -3655,9 +3828,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  sppp = 0x%x\n", sppp);
                   }
                 SYNTAX("mov%s  #%1, %0");
-#line 295 "rx-decode.opc"
-                ID(mov); sBWL (sz); DIs(dst, d*16+sppp, sz); SC(IMM(1)); F("----");
-              
+#line 311 "rx-decode.opc"
+                ID(mov); sBWL (sz); DIs(dst, d*16+sppp, sz); SC(IMM(1)); F_____;
+
               }
             break;
         }
@@ -3667,7 +3840,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_19;
+            goto op_semantics_20;
             break;
         }
       break;
@@ -3676,7 +3849,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_19;
+            goto op_semantics_20;
             break;
         }
       break;
@@ -3687,9 +3860,9 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x00:
               {
                 /** 0011 1111 rega regb                rtsd    #%1, %2-%0 */
-#line 384 "rx-decode.opc"
+#line 408 "rx-decode.opc"
                 int rega AU = (op[1] >> 4) & 0x0f;
-#line 384 "rx-decode.opc"
+#line 408 "rx-decode.opc"
                 int regb AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -3700,12 +3873,12 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  regb = 0x%x\n", regb);
                   }
                 SYNTAX("rtsd   #%1, %2-%0");
-#line 384 "rx-decode.opc"
+#line 408 "rx-decode.opc"
                 ID(rtsd); SC(IMM(1) * 4); S2R(rega); DR(regb);
-              
+
               /*----------------------------------------------------------------------*/
               /* AND                                                                   */
-              
+
               }
             break;
         }
@@ -3715,14 +3888,14 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            op_semantics_20:
+            op_semantics_21:
               {
                 /** 0100 00ss rsrc rdst                        sub     %2%S2, %1 */
-#line 519 "rx-decode.opc"
+#line 543 "rx-decode.opc"
                 int ss AU = op[0] & 0x03;
-#line 519 "rx-decode.opc"
+#line 543 "rx-decode.opc"
                 int rsrc AU = (op[1] >> 4) & 0x0f;
-#line 519 "rx-decode.opc"
+#line 543 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -3734,9 +3907,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("sub    %2%S2, %1");
-#line 519 "rx-decode.opc"
-                ID(sub); S2P(ss, rsrc); SR(rdst); DR(rdst); F("OSZC");
-              
+#line 543 "rx-decode.opc"
+                ID(sub); S2P(ss, rsrc); SR(rdst); DR(rdst); F_OSZC;
+
               }
             break;
         }
@@ -3746,7 +3919,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_20;
+            goto op_semantics_21;
             break;
         }
       break;
@@ -3755,7 +3928,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_20;
+            goto op_semantics_21;
             break;
         }
       break;
@@ -3764,7 +3937,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_20;
+            goto op_semantics_21;
             break;
         }
       break;
@@ -3773,14 +3946,14 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            op_semantics_21:
+            op_semantics_22:
               {
                 /** 0100 01ss rsrc rdst                cmp     %2%S2, %1 */
-#line 507 "rx-decode.opc"
+#line 531 "rx-decode.opc"
                 int ss AU = op[0] & 0x03;
-#line 507 "rx-decode.opc"
+#line 531 "rx-decode.opc"
                 int rsrc AU = (op[1] >> 4) & 0x0f;
-#line 507 "rx-decode.opc"
+#line 531 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -3792,9 +3965,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("cmp    %2%S2, %1");
-#line 507 "rx-decode.opc"
-                ID(sub); S2P(ss, rsrc); SR(rdst); F("OSZC");
-              
+#line 531 "rx-decode.opc"
+                ID(sub); S2P(ss, rsrc); SR(rdst); F_OSZC;
+
               }
             break;
         }
@@ -3804,7 +3977,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_21;
+            goto op_semantics_22;
             break;
         }
       break;
@@ -3813,7 +3986,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_21;
+            goto op_semantics_22;
             break;
         }
       break;
@@ -3822,7 +3995,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_21;
+            goto op_semantics_22;
             break;
         }
       break;
@@ -3831,14 +4004,14 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            op_semantics_22:
+            op_semantics_23:
               {
                 /** 0100 10ss rsrc rdst                        add     %1%S1, %0 */
-#line 483 "rx-decode.opc"
+#line 507 "rx-decode.opc"
                 int ss AU = op[0] & 0x03;
-#line 483 "rx-decode.opc"
+#line 507 "rx-decode.opc"
                 int rsrc AU = (op[1] >> 4) & 0x0f;
-#line 483 "rx-decode.opc"
+#line 507 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -3850,9 +4023,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("add    %1%S1, %0");
-#line 483 "rx-decode.opc"
-                ID(add); SP(ss, rsrc); DR(rdst); F("OSZC");
-              
+#line 507 "rx-decode.opc"
+                ID(add); SP(ss, rsrc); DR(rdst); F_OSZC;
+
               }
             break;
         }
@@ -3862,7 +4035,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_22;
+            goto op_semantics_23;
             break;
         }
       break;
@@ -3871,7 +4044,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_22;
+            goto op_semantics_23;
             break;
         }
       break;
@@ -3880,7 +4053,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_22;
+            goto op_semantics_23;
             break;
         }
       break;
@@ -3889,14 +4062,14 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            op_semantics_23:
+            op_semantics_24:
               {
                 /** 0100 11ss rsrc rdst                        mul     %1%S1, %0 */
-#line 580 "rx-decode.opc"
+#line 650 "rx-decode.opc"
                 int ss AU = op[0] & 0x03;
-#line 580 "rx-decode.opc"
+#line 650 "rx-decode.opc"
                 int rsrc AU = (op[1] >> 4) & 0x0f;
-#line 580 "rx-decode.opc"
+#line 650 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -3908,9 +4081,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("mul    %1%S1, %0");
-#line 580 "rx-decode.opc"
-                ID(mul); SP(ss, rsrc); DR(rdst); F("----");
-              
+#line 650 "rx-decode.opc"
+                ID(mul); SP(ss, rsrc); DR(rdst); F_____;
+
               }
             break;
         }
@@ -3920,7 +4093,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_23;
+            goto op_semantics_24;
             break;
         }
       break;
@@ -3929,7 +4102,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_23;
+            goto op_semantics_24;
             break;
         }
       break;
@@ -3938,7 +4111,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_23;
+            goto op_semantics_24;
             break;
         }
       break;
@@ -3947,14 +4120,14 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            op_semantics_24:
+            op_semantics_25:
               {
                 /** 0101 00ss rsrc rdst                        and     %1%S1, %0 */
-#line 396 "rx-decode.opc"
+#line 420 "rx-decode.opc"
                 int ss AU = op[0] & 0x03;
-#line 396 "rx-decode.opc"
+#line 420 "rx-decode.opc"
                 int rsrc AU = (op[1] >> 4) & 0x0f;
-#line 396 "rx-decode.opc"
+#line 420 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -3966,9 +4139,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("and    %1%S1, %0");
-#line 396 "rx-decode.opc"
-                ID(and); SP(ss, rsrc); DR(rdst); F("-SZ-");
-              
+#line 420 "rx-decode.opc"
+                ID(and); SP(ss, rsrc); DR(rdst); F__SZ_;
+
               }
             break;
         }
@@ -3978,7 +4151,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_24;
+            goto op_semantics_25;
             break;
         }
       break;
@@ -3987,7 +4160,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_24;
+            goto op_semantics_25;
             break;
         }
       break;
@@ -3996,7 +4169,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_24;
+            goto op_semantics_25;
             break;
         }
       break;
@@ -4005,14 +4178,14 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            op_semantics_25:
+            op_semantics_26:
               {
                 /** 0101 01ss rsrc rdst                        or      %1%S1, %0 */
-#line 414 "rx-decode.opc"
+#line 438 "rx-decode.opc"
                 int ss AU = op[0] & 0x03;
-#line 414 "rx-decode.opc"
+#line 438 "rx-decode.opc"
                 int rsrc AU = (op[1] >> 4) & 0x0f;
-#line 414 "rx-decode.opc"
+#line 438 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4024,9 +4197,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("or     %1%S1, %0");
-#line 414 "rx-decode.opc"
-                ID(or); SP(ss, rsrc); DR(rdst); F("-SZ-");
-              
+#line 438 "rx-decode.opc"
+                ID(or); SP(ss, rsrc); DR(rdst); F__SZ_;
+
               }
             break;
         }
@@ -4036,7 +4209,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_25;
+            goto op_semantics_26;
             break;
         }
       break;
@@ -4045,7 +4218,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_25;
+            goto op_semantics_26;
             break;
         }
       break;
@@ -4054,7 +4227,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_25;
+            goto op_semantics_26;
             break;
         }
       break;
@@ -4063,16 +4236,16 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            op_semantics_26:
+            op_semantics_27:
               {
                 /** 0101 1 s ss rsrc rdst      movu%s  %1, %0 */
-#line 335 "rx-decode.opc"
+#line 359 "rx-decode.opc"
                 int s AU = (op[0] >> 2) & 0x01;
-#line 335 "rx-decode.opc"
+#line 359 "rx-decode.opc"
                 int ss AU = op[0] & 0x03;
-#line 335 "rx-decode.opc"
+#line 359 "rx-decode.opc"
                 int rsrc AU = (op[1] >> 4) & 0x0f;
-#line 335 "rx-decode.opc"
+#line 359 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4085,9 +4258,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("movu%s %1, %0");
-#line 335 "rx-decode.opc"
-                ID(mov); uBWL(s); SD(ss, rsrc, s); DR(rdst); F("----");
-              
+#line 359 "rx-decode.opc"
+                ID(mov); uBW(s); SD(ss, rsrc, s); DR(rdst); F_____;
+
               }
             break;
         }
@@ -4097,7 +4270,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_26;
+            goto op_semantics_27;
             break;
         }
       break;
@@ -4106,7 +4279,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_26;
+            goto op_semantics_27;
             break;
         }
       break;
@@ -4115,7 +4288,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_26;
+            goto op_semantics_27;
             break;
         }
       break;
@@ -4124,7 +4297,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_26;
+            goto op_semantics_27;
             break;
         }
       break;
@@ -4133,7 +4306,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_26;
+            goto op_semantics_27;
             break;
         }
       break;
@@ -4142,7 +4315,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_26;
+            goto op_semantics_27;
             break;
         }
       break;
@@ -4151,7 +4324,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_26;
+            goto op_semantics_27;
             break;
         }
       break;
@@ -4162,9 +4335,9 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x00:
               {
                 /** 0110 0000 immm rdst                        sub     #%2, %0 */
-#line 516 "rx-decode.opc"
+#line 540 "rx-decode.opc"
                 int immm AU = (op[1] >> 4) & 0x0f;
-#line 516 "rx-decode.opc"
+#line 540 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4175,9 +4348,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("sub    #%2, %0");
-#line 516 "rx-decode.opc"
-                ID(sub); S2C(immm); SR(rdst); DR(rdst); F("OSZC");
-              
+#line 540 "rx-decode.opc"
+                ID(sub); S2C(immm); SR(rdst); DR(rdst); F_OSZC;
+
               }
             break;
         }
@@ -4189,9 +4362,9 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x00:
               {
                 /** 0110 0001 immm rdst                        cmp     #%2, %1 */
-#line 498 "rx-decode.opc"
+#line 522 "rx-decode.opc"
                 int immm AU = (op[1] >> 4) & 0x0f;
-#line 498 "rx-decode.opc"
+#line 522 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4202,9 +4375,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("cmp    #%2, %1");
-#line 498 "rx-decode.opc"
-                ID(sub); S2C(immm); SR(rdst); F("OSZC");
-              
+#line 522 "rx-decode.opc"
+                ID(sub); S2C(immm); SR(rdst); F_OSZC;
+
               }
             break;
         }
@@ -4216,9 +4389,9 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x00:
               {
                 /** 0110 0010 immm rdst                        add     #%1, %0 */
-#line 480 "rx-decode.opc"
+#line 504 "rx-decode.opc"
                 int immm AU = (op[1] >> 4) & 0x0f;
-#line 480 "rx-decode.opc"
+#line 504 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4229,9 +4402,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("add    #%1, %0");
-#line 480 "rx-decode.opc"
-                ID(add); SC(immm); DR(rdst); F("OSZC");
-              
+#line 504 "rx-decode.opc"
+                ID(add); SC(immm); DR(rdst); F_OSZC;
+
               }
             break;
         }
@@ -4243,9 +4416,9 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x00:
               {
                 /** 0110 0011 immm rdst                        mul     #%1, %0 */
-#line 574 "rx-decode.opc"
+#line 616 "rx-decode.opc"
                 int immm AU = (op[1] >> 4) & 0x0f;
-#line 574 "rx-decode.opc"
+#line 616 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4256,9 +4429,18 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("mul    #%1, %0");
-#line 574 "rx-decode.opc"
-                ID(mul); DR(rdst); SC(immm); F("----");
-              
+#line 616 "rx-decode.opc"
+                if (immm == 1 && rdst == 0)
+                  {
+                    ID(nop2);
+                    SYNTAX ("nop\t; mul\t#1, r0");
+                  }
+                else
+                  {
+                    ID(mul);
+                  }
+                DR(rdst); SC(immm); F_____;
+
               }
             break;
         }
@@ -4270,9 +4452,9 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x00:
               {
                 /** 0110 0100 immm rdst                        and     #%1, %0 */
-#line 390 "rx-decode.opc"
+#line 414 "rx-decode.opc"
                 int immm AU = (op[1] >> 4) & 0x0f;
-#line 390 "rx-decode.opc"
+#line 414 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4283,9 +4465,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("and    #%1, %0");
-#line 390 "rx-decode.opc"
-                ID(and); SC(immm); DR(rdst); F("-SZ-");
-              
+#line 414 "rx-decode.opc"
+                ID(and); SC(immm); DR(rdst); F__SZ_;
+
               }
             break;
         }
@@ -4297,9 +4479,9 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x00:
               {
                 /** 0110 0101 immm rdst                        or      #%1, %0 */
-#line 408 "rx-decode.opc"
+#line 432 "rx-decode.opc"
                 int immm AU = (op[1] >> 4) & 0x0f;
-#line 408 "rx-decode.opc"
+#line 432 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4310,9 +4492,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("or     #%1, %0");
-#line 408 "rx-decode.opc"
-                ID(or); SC(immm); DR(rdst); F("-SZ-");
-              
+#line 432 "rx-decode.opc"
+                ID(or); SC(immm); DR(rdst); F__SZ_;
+
               }
             break;
         }
@@ -4324,9 +4506,9 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x00:
               {
                 /** 0110 0110 immm rdst                mov%s   #%1, %0 */
-#line 292 "rx-decode.opc"
+#line 308 "rx-decode.opc"
                 int immm AU = (op[1] >> 4) & 0x0f;
-#line 292 "rx-decode.opc"
+#line 308 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4337,9 +4519,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("mov%s  #%1, %0");
-#line 292 "rx-decode.opc"
-                ID(mov); DR(rdst); SC(immm); F("----");
-              
+#line 308 "rx-decode.opc"
+                ID(mov); DR(rdst); SC(immm); F_____;
+
               }
             break;
         }
@@ -4354,9 +4536,9 @@ rx_decode_opcode (unsigned long pc AU,
                      op[0]);
             }
           SYNTAX("rtsd #%1");
-#line 381 "rx-decode.opc"
+#line 405 "rx-decode.opc"
           ID(rtsd); SC(IMM(1) * 4);
-        
+
         }
       break;
     case 0x68:
@@ -4364,14 +4546,14 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            op_semantics_27:
+            op_semantics_28:
               {
                 /** 0110 100i mmmm rdst                        shlr    #%2, %0 */
-#line 660 "rx-decode.opc"
+#line 730 "rx-decode.opc"
                 int i AU = op[0] & 0x01;
-#line 660 "rx-decode.opc"
+#line 730 "rx-decode.opc"
                 int mmmm AU = (op[1] >> 4) & 0x0f;
-#line 660 "rx-decode.opc"
+#line 730 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4383,9 +4565,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("shlr   #%2, %0");
-#line 660 "rx-decode.opc"
-                ID(shlr); S2C(i*16+mmmm); SR(rdst); DR(rdst); F("-SZC");
-              
+#line 730 "rx-decode.opc"
+                ID(shlr); S2C(i*16+mmmm); SR(rdst); DR(rdst); F__SZC;
+
               }
             break;
         }
@@ -4395,7 +4577,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_27;
+            goto op_semantics_28;
             break;
         }
       break;
@@ -4404,14 +4586,14 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            op_semantics_28:
+            op_semantics_29:
               {
                 /** 0110 101i mmmm rdst                        shar    #%2, %0 */
-#line 650 "rx-decode.opc"
+#line 720 "rx-decode.opc"
                 int i AU = op[0] & 0x01;
-#line 650 "rx-decode.opc"
+#line 720 "rx-decode.opc"
                 int mmmm AU = (op[1] >> 4) & 0x0f;
-#line 650 "rx-decode.opc"
+#line 720 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4423,9 +4605,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("shar   #%2, %0");
-#line 650 "rx-decode.opc"
-                ID(shar); S2C(i*16+mmmm); SR(rdst); DR(rdst); F("0SZC");
-              
+#line 720 "rx-decode.opc"
+                ID(shar); S2C(i*16+mmmm); SR(rdst); DR(rdst); F_0SZC;
+
               }
             break;
         }
@@ -4435,7 +4617,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_28;
+            goto op_semantics_29;
             break;
         }
       break;
@@ -4444,14 +4626,14 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            op_semantics_29:
+            op_semantics_30:
               {
                 /** 0110 110i mmmm rdst                        shll    #%2, %0 */
-#line 640 "rx-decode.opc"
+#line 710 "rx-decode.opc"
                 int i AU = op[0] & 0x01;
-#line 640 "rx-decode.opc"
+#line 710 "rx-decode.opc"
                 int mmmm AU = (op[1] >> 4) & 0x0f;
-#line 640 "rx-decode.opc"
+#line 710 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4463,9 +4645,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("shll   #%2, %0");
-#line 640 "rx-decode.opc"
-                ID(shll); S2C(i*16+mmmm); SR(rdst); DR(rdst); F("OSZC");
-              
+#line 710 "rx-decode.opc"
+                ID(shll); S2C(i*16+mmmm); SR(rdst); DR(rdst); F_OSZC;
+
               }
             break;
         }
@@ -4475,7 +4657,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_29;
+            goto op_semantics_30;
             break;
         }
       break;
@@ -4486,9 +4668,9 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x00:
               {
                 /** 0110 1110 dsta dstb                pushm   %1-%2 */
-#line 348 "rx-decode.opc"
+#line 372 "rx-decode.opc"
                 int dsta AU = (op[1] >> 4) & 0x0f;
-#line 348 "rx-decode.opc"
+#line 372 "rx-decode.opc"
                 int dstb AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4499,9 +4681,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  dstb = 0x%x\n", dstb);
                   }
                 SYNTAX("pushm  %1-%2");
-#line 348 "rx-decode.opc"
-                ID(pushm); SR(dsta); S2R(dstb); F("----");
-                
+#line 372 "rx-decode.opc"
+                ID(pushm); SR(dsta); S2R(dstb); F_____;
+
               }
             break;
         }
@@ -4513,9 +4695,9 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x00:
               {
                 /** 0110 1111 dsta dstb                popm    %1-%2 */
-#line 345 "rx-decode.opc"
+#line 369 "rx-decode.opc"
                 int dsta AU = (op[1] >> 4) & 0x0f;
-#line 345 "rx-decode.opc"
+#line 369 "rx-decode.opc"
                 int dstb AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4526,9 +4708,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  dstb = 0x%x\n", dstb);
                   }
                 SYNTAX("popm   %1-%2");
-#line 345 "rx-decode.opc"
-                ID(popm); SR(dsta); S2R(dstb); F("----");
-              
+#line 369 "rx-decode.opc"
+                ID(popm); SR(dsta); S2R(dstb); F_____;
+
               }
             break;
         }
@@ -4538,14 +4720,14 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            op_semantics_30:
+            op_semantics_31:
               {
                 /** 0111 00im rsrc rdst                        add     #%1, %2, %0 */
-#line 489 "rx-decode.opc"
+#line 513 "rx-decode.opc"
                 int im AU = op[0] & 0x03;
-#line 489 "rx-decode.opc"
+#line 513 "rx-decode.opc"
                 int rsrc AU = (op[1] >> 4) & 0x0f;
-#line 489 "rx-decode.opc"
+#line 513 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4557,9 +4739,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("add    #%1, %2, %0");
-#line 489 "rx-decode.opc"
-                ID(add); SC(IMMex(im)); S2R(rsrc); DR(rdst); F("OSZC");
-              
+#line 513 "rx-decode.opc"
+                ID(add); SC(IMMex(im)); S2R(rsrc); DR(rdst); F_OSZC;
+
               }
             break;
         }
@@ -4569,7 +4751,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_30;
+            goto op_semantics_31;
             break;
         }
       break;
@@ -4578,7 +4760,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_30;
+            goto op_semantics_31;
             break;
         }
       break;
@@ -4587,7 +4769,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_30;
+            goto op_semantics_31;
             break;
         }
       break;
@@ -4596,12 +4778,12 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0xf0)
         {
           case 0x00:
-            op_semantics_31:
+            op_semantics_32:
               {
                 /** 0111 01im 0000 rsrc                cmp     #%2, %1%S1 */
-#line 501 "rx-decode.opc"
+#line 525 "rx-decode.opc"
                 int im AU = op[0] & 0x03;
-#line 501 "rx-decode.opc"
+#line 525 "rx-decode.opc"
                 int rsrc AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4612,18 +4794,18 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rsrc = 0x%x\n", rsrc);
                   }
                 SYNTAX("cmp    #%2, %1%S1");
-#line 501 "rx-decode.opc"
-                ID(sub); SR(rsrc); S2C(IMMex(im)); F("OSZC");
-              
+#line 525 "rx-decode.opc"
+                ID(sub); SR(rsrc); S2C(IMMex(im)); F_OSZC;
+
               }
             break;
           case 0x10:
-            op_semantics_32:
+            op_semantics_33:
               {
                 /** 0111 01im 0001rdst                 mul     #%1, %0 */
-#line 577 "rx-decode.opc"
+#line 628 "rx-decode.opc"
                 int im AU = op[0] & 0x03;
-#line 577 "rx-decode.opc"
+#line 628 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4634,18 +4816,37 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("mul    #%1, %0");
-#line 577 "rx-decode.opc"
-                ID(mul); DR(rdst); SC(IMMex(im)); F("----");
-              
+#line 628 "rx-decode.opc"
+                int val = IMMex(im);
+                if (val == 1 && rdst == 0)
+                  {
+                    SYNTAX("nop\t; mul\t#1, r0");
+                    switch (im)
+               {
+               case 2: ID(nop4); break;
+               case 3: ID(nop5); break;
+               case 0: ID(nop6); break;
+               default:
+                 ID(mul);
+                 SYNTAX("mul   #%1, %0");
+                 break;
+               }
+                  }
+                else
+                  {
+                    ID(mul);
+                  }
+                DR(rdst); SC(val); F_____;
+
               }
             break;
           case 0x20:
-            op_semantics_33:
+            op_semantics_34:
               {
                 /** 0111 01im 0010 rdst                        and     #%1, %0 */
-#line 393 "rx-decode.opc"
+#line 417 "rx-decode.opc"
                 int im AU = op[0] & 0x03;
-#line 393 "rx-decode.opc"
+#line 417 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4656,18 +4857,18 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("and    #%1, %0");
-#line 393 "rx-decode.opc"
-                ID(and); SC(IMMex(im)); DR(rdst); F("-SZ-");
-              
+#line 417 "rx-decode.opc"
+                ID(and); SC(IMMex(im)); DR(rdst); F__SZ_;
+
               }
             break;
           case 0x30:
-            op_semantics_34:
+            op_semantics_35:
               {
                 /** 0111 01im 0011 rdst                        or      #%1, %0 */
-#line 411 "rx-decode.opc"
+#line 435 "rx-decode.opc"
                 int im AU = op[0] & 0x03;
-#line 411 "rx-decode.opc"
+#line 435 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4678,9 +4879,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("or     #%1, %0");
-#line 411 "rx-decode.opc"
-                ID(or); SC(IMMex(im)); DR(rdst); F("-SZ-");
-              
+#line 435 "rx-decode.opc"
+                ID(or); SC(IMMex(im)); DR(rdst); F__SZ_;
+
               }
             break;
           default: UNSUPPORTED(); break;
@@ -4706,7 +4907,7 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x0d:
           case 0x0e:
           case 0x0f:
-            goto op_semantics_31;
+            goto op_semantics_32;
             break;
           case 0x10:
           case 0x11:
@@ -4724,7 +4925,7 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x1d:
           case 0x1e:
           case 0x1f:
-            goto op_semantics_32;
+            goto op_semantics_33;
             break;
           case 0x20:
           case 0x21:
@@ -4742,7 +4943,7 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x2d:
           case 0x2e:
           case 0x2f:
-            goto op_semantics_33;
+            goto op_semantics_34;
             break;
           case 0x30:
           case 0x31:
@@ -4760,7 +4961,7 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x3d:
           case 0x3e:
           case 0x3f:
-            goto op_semantics_34;
+            goto op_semantics_35;
             break;
           case 0x40:
           case 0x41:
@@ -4780,7 +4981,7 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x4f:
               {
                 /** 0111 0101 0100 rdst                mov%s   #%1, %0 */
-#line 286 "rx-decode.opc"
+#line 289 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4790,9 +4991,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("mov%s  #%1, %0");
-#line 286 "rx-decode.opc"
-                ID(mov); DR(rdst); SC(IMM (1)); F("----");
-              
+#line 289 "rx-decode.opc"
+                ID(mov); DR(rdst); SC(IMM (1)); F_____;
+
               }
             break;
           case 0x50:
@@ -4813,7 +5014,7 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x5f:
               {
                 /** 0111 0101 0101 rsrc                        cmp     #%2, %1 */
-#line 504 "rx-decode.opc"
+#line 528 "rx-decode.opc"
                 int rsrc AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4823,9 +5024,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rsrc = 0x%x\n", rsrc);
                   }
                 SYNTAX("cmp    #%2, %1");
-#line 504 "rx-decode.opc"
-                ID(sub); SR(rsrc); S2C(IMM(1)); F("OSZC");
-              
+#line 528 "rx-decode.opc"
+                ID(sub); SR(rsrc); S2C(IMM(1)); F_OSZC;
+
               }
             break;
           case 0x60:
@@ -4838,9 +5039,9 @@ rx_decode_opcode (unsigned long pc AU,
                            op[0], op[1]);
                   }
                 SYNTAX("int #%1");
-#line 957 "rx-decode.opc"
+#line 1035 "rx-decode.opc"
                 ID(int); SC(IMM(1));
-              
+
               }
             break;
           case 0x70:
@@ -4850,7 +5051,7 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x00:
                     {
                       /** 0111 0101 0111 0000 0000 immm        mvtipl  #%1 */
-#line 924 "rx-decode.opc"
+#line 1002 "rx-decode.opc"
                       int immm AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -4860,9 +5061,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  immm = 0x%x\n", immm);
                         }
                       SYNTAX("mvtipl   #%1");
-#line 924 "rx-decode.opc"
+#line 1002 "rx-decode.opc"
                       ID(mvtipl); SC(immm);
-                    
+
                     }
                   break;
                 default: UNSUPPORTED(); break;
@@ -4876,16 +5077,16 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0xf0)
         {
           case 0x00:
-            goto op_semantics_31;
+            goto op_semantics_32;
             break;
           case 0x10:
-            goto op_semantics_32;
+            goto op_semantics_33;
             break;
           case 0x20:
-            goto op_semantics_33;
+            goto op_semantics_34;
             break;
           case 0x30:
-            goto op_semantics_34;
+            goto op_semantics_35;
             break;
           default: UNSUPPORTED(); break;
         }
@@ -4895,16 +5096,16 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0xf0)
         {
           case 0x00:
-            goto op_semantics_31;
+            goto op_semantics_32;
             break;
           case 0x10:
-            goto op_semantics_32;
+            goto op_semantics_33;
             break;
           case 0x20:
-            goto op_semantics_33;
+            goto op_semantics_34;
             break;
           case 0x30:
-            goto op_semantics_34;
+            goto op_semantics_35;
             break;
           default: UNSUPPORTED(); break;
         }
@@ -4914,14 +5115,14 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            op_semantics_35:
+            op_semantics_36:
               {
                 /** 0111 100b ittt rdst                        bset    #%1, %0 */
-#line 875 "rx-decode.opc"
+#line 947 "rx-decode.opc"
                 int b AU = op[0] & 0x01;
-#line 875 "rx-decode.opc"
+#line 947 "rx-decode.opc"
                 int ittt AU = (op[1] >> 4) & 0x0f;
-#line 875 "rx-decode.opc"
+#line 947 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4933,10 +5134,10 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("bset   #%1, %0");
-#line 875 "rx-decode.opc"
-                ID(bset); BWL(LSIZE); SC(b*16+ittt); DR(rdst); F("----");
-              
-              
+#line 947 "rx-decode.opc"
+                ID(bset); BWL(LSIZE); SC(b*16+ittt); DR(rdst); F_____;
+
+
               }
             break;
         }
@@ -4946,7 +5147,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_35;
+            goto op_semantics_36;
             break;
         }
       break;
@@ -4955,14 +5156,14 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            op_semantics_36:
+            op_semantics_37:
               {
                 /** 0111 101b ittt rdst                        bclr    #%1, %0 */
-#line 885 "rx-decode.opc"
+#line 959 "rx-decode.opc"
                 int b AU = op[0] & 0x01;
-#line 885 "rx-decode.opc"
+#line 959 "rx-decode.opc"
                 int ittt AU = (op[1] >> 4) & 0x0f;
-#line 885 "rx-decode.opc"
+#line 959 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -4974,10 +5175,10 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("bclr   #%1, %0");
-#line 885 "rx-decode.opc"
-                ID(bclr); BWL(LSIZE); SC(b*16+ittt); DR(rdst); F("----");
-              
-              
+#line 959 "rx-decode.opc"
+                ID(bclr); BWL(LSIZE); SC(b*16+ittt); DR(rdst); F_____;
+
+
               }
             break;
         }
@@ -4987,7 +5188,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_36;
+            goto op_semantics_37;
             break;
         }
       break;
@@ -4996,14 +5197,14 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            op_semantics_37:
+            op_semantics_38:
               {
                 /** 0111 110b ittt rdst                        btst    #%2, %1 */
-#line 895 "rx-decode.opc"
+#line 971 "rx-decode.opc"
                 int b AU = op[0] & 0x01;
-#line 895 "rx-decode.opc"
+#line 971 "rx-decode.opc"
                 int ittt AU = (op[1] >> 4) & 0x0f;
-#line 895 "rx-decode.opc"
+#line 971 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -5015,10 +5216,10 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("btst   #%2, %1");
-#line 895 "rx-decode.opc"
-                ID(btst); BWL(LSIZE); S2C(b*16+ittt); SR(rdst); F("--ZC");
-              
-              
+#line 971 "rx-decode.opc"
+                ID(btst); BWL(LSIZE); S2C(b*16+ittt); SR(rdst); F___ZC;
+
+
               }
             break;
         }
@@ -5028,7 +5229,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_37;
+            goto op_semantics_38;
             break;
         }
       break;
@@ -5039,7 +5240,7 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x00:
               {
                 /** 0111 1110 0000 rdst                        not     %0 */
-#line 438 "rx-decode.opc"
+#line 462 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -5049,15 +5250,15 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("not    %0");
-#line 438 "rx-decode.opc"
-                ID(xor); DR(rdst); SR(rdst); S2C(~0); F("-SZ-");
-              
+#line 462 "rx-decode.opc"
+                ID(xor); DR(rdst); SR(rdst); S2C(~0); F__SZ_;
+
               }
             break;
           case 0x10:
               {
                 /** 0111 1110 0001 rdst                        neg     %0 */
-#line 459 "rx-decode.opc"
+#line 483 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -5067,15 +5268,15 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("neg    %0");
-#line 459 "rx-decode.opc"
-                ID(sub); DR(rdst); SC(0); S2R(rdst); F("OSZC");
-              
+#line 483 "rx-decode.opc"
+                ID(sub); DR(rdst); SC(0); S2R(rdst); F_OSZC;
+
               }
             break;
           case 0x20:
               {
                 /** 0111 1110 0010 rdst                        abs     %0 */
-#line 541 "rx-decode.opc"
+#line 565 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -5085,15 +5286,15 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("abs    %0");
-#line 541 "rx-decode.opc"
-                ID(abs); DR(rdst); SR(rdst); F("OSZ-");
-              
+#line 565 "rx-decode.opc"
+                ID(abs); DR(rdst); SR(rdst); F_OSZ_;
+
               }
             break;
           case 0x30:
               {
                 /** 0111 1110 0011 rdst                sat     %0 */
-#line 815 "rx-decode.opc"
+#line 885 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -5103,15 +5304,15 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("sat    %0");
-#line 815 "rx-decode.opc"
+#line 885 "rx-decode.opc"
                 ID(sat); DR (rdst);
-              
+
               }
             break;
           case 0x40:
               {
                 /** 0111 1110 0100 rdst                        rorc    %0 */
-#line 675 "rx-decode.opc"
+#line 745 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -5121,15 +5322,15 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("rorc   %0");
-#line 675 "rx-decode.opc"
-                ID(rorc); DR(rdst); F("-SZC");
-              
+#line 745 "rx-decode.opc"
+                ID(rorc); DR(rdst); F__SZC;
+
               }
             break;
           case 0x50:
               {
                 /** 0111 1110 0101 rdst                        rolc    %0 */
-#line 672 "rx-decode.opc"
+#line 742 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -5139,9 +5340,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("rolc   %0");
-#line 672 "rx-decode.opc"
-                ID(rolc); DR(rdst); F("-SZC");
-              
+#line 742 "rx-decode.opc"
+                ID(rolc); DR(rdst); F__SZC;
+
               }
             break;
           case 0x80:
@@ -5149,9 +5350,9 @@ rx_decode_opcode (unsigned long pc AU,
           case 0xa0:
               {
                 /** 0111 1110 10sz rsrc                push%s  %1 */
-#line 354 "rx-decode.opc"
+#line 378 "rx-decode.opc"
                 int sz AU = (op[1] >> 4) & 0x03;
-#line 354 "rx-decode.opc"
+#line 378 "rx-decode.opc"
                 int rsrc AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -5162,15 +5363,15 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rsrc = 0x%x\n", rsrc);
                   }
                 SYNTAX("push%s %1");
-#line 354 "rx-decode.opc"
-                ID(mov); BWL(sz); OP(0, RX_Operand_Predec, 0, 0); SR(rsrc); F("----");
-              
+#line 378 "rx-decode.opc"
+                ID(mov); BWL(sz); OP(0, RX_Operand_Predec, 0, 0); SR(rsrc); F_____;
+
               }
             break;
           case 0xb0:
               {
                 /** 0111 1110 1011 rdst                pop     %0 */
-#line 351 "rx-decode.opc"
+#line 375 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -5180,16 +5381,16 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("pop    %0");
-#line 351 "rx-decode.opc"
-                ID(mov); OP(1, RX_Operand_Postinc, 0, 0); DR(rdst); F("----");
-                
+#line 375 "rx-decode.opc"
+                ID(mov); OP(1, RX_Operand_Postinc, 0, 0); DR(rdst); F_____;
+
               }
             break;
           case 0xc0:
           case 0xd0:
               {
                 /** 0111 1110 110 crsrc                        pushc   %1 */
-#line 930 "rx-decode.opc"
+#line 1008 "rx-decode.opc"
                 int crsrc AU = op[1] & 0x1f;
                 if (trace)
                   {
@@ -5199,16 +5400,16 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  crsrc = 0x%x\n", crsrc);
                   }
                 SYNTAX("pushc  %1");
-#line 930 "rx-decode.opc"
+#line 1008 "rx-decode.opc"
                 ID(mov); OP(0, RX_Operand_Predec, 0, 0); SR(crsrc + 16);
-              
+
               }
             break;
           case 0xe0:
           case 0xf0:
               {
                 /** 0111 1110 111 crdst                        popc    %0 */
-#line 927 "rx-decode.opc"
+#line 1005 "rx-decode.opc"
                 int crdst AU = op[1] & 0x1f;
                 if (trace)
                   {
@@ -5218,9 +5419,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  crdst = 0x%x\n", crdst);
                   }
                 SYNTAX("popc   %0");
-#line 927 "rx-decode.opc"
+#line 1005 "rx-decode.opc"
                 ID(mov); OP(1, RX_Operand_Postinc, 0, 0); DR(crdst + 16);
-              
+
               }
             break;
           default: UNSUPPORTED(); break;
@@ -5248,7 +5449,7 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x0f:
               {
                 /** 0111 1111 0000 rsrc                jmp     %0 */
-#line 725 "rx-decode.opc"
+#line 795 "rx-decode.opc"
                 int rsrc AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -5258,9 +5459,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rsrc = 0x%x\n", rsrc);
                   }
                 SYNTAX("jmp    %0");
-#line 725 "rx-decode.opc"
-                ID(branch); Scc(RXC_always); DR(rsrc);
-              
+#line 795 "rx-decode.opc"
+                ID(branch); DR(rsrc);
+
               }
             break;
           case 0x10:
@@ -5281,7 +5482,7 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x1f:
               {
                 /** 0111 1111 0001 rsrc                jsr     %0 */
-#line 728 "rx-decode.opc"
+#line 798 "rx-decode.opc"
                 int rsrc AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -5291,9 +5492,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rsrc = 0x%x\n", rsrc);
                   }
                 SYNTAX("jsr    %0");
-#line 728 "rx-decode.opc"
+#line 798 "rx-decode.opc"
                 ID(jsr); DR(rsrc);
-              
+
               }
             break;
           case 0x40:
@@ -5314,7 +5515,7 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x4f:
               {
                 /** 0111 1111 0100 rsrc                bra.l   %0 */
-#line 721 "rx-decode.opc"
+#line 791 "rx-decode.opc"
                 int rsrc AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -5324,10 +5525,10 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rsrc = 0x%x\n", rsrc);
                   }
                 SYNTAX("bra.l  %0");
-#line 721 "rx-decode.opc"
-                ID(branchrel); Scc(RXC_always); DR(rsrc);
-              
-              
+#line 791 "rx-decode.opc"
+                ID(branchrel); DR(rsrc);
+
+
               }
             break;
           case 0x50:
@@ -5348,7 +5549,7 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x5f:
               {
                 /** 0111 1111 0101 rsrc                bsr.l   %0 */
-#line 737 "rx-decode.opc"
+#line 807 "rx-decode.opc"
                 int rsrc AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -5358,9 +5559,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rsrc = 0x%x\n", rsrc);
                   }
                 SYNTAX("bsr.l  %0");
-#line 737 "rx-decode.opc"
+#line 807 "rx-decode.opc"
                 ID(jsrrel); DR(rsrc);
-              
+
               }
             break;
           case 0x80:
@@ -5368,7 +5569,7 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x82:
               {
                 /** 0111 1111 1000 00sz                suntil%s */
-#line 761 "rx-decode.opc"
+#line 831 "rx-decode.opc"
                 int sz AU = op[1] & 0x03;
                 if (trace)
                   {
@@ -5378,9 +5579,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  sz = 0x%x\n", sz);
                   }
                 SYNTAX("suntil%s");
-#line 761 "rx-decode.opc"
-                ID(suntil); BWL(sz); F("--ZC");
-              
+#line 831 "rx-decode.opc"
+                ID(suntil); BWL(sz); F___ZC;
+
               }
             break;
           case 0x83:
@@ -5393,9 +5594,9 @@ rx_decode_opcode (unsigned long pc AU,
                            op[0], op[1]);
                   }
                 SYNTAX("scmpu");
-#line 752 "rx-decode.opc"
-                ID(scmpu); F("--ZC");
-              
+#line 822 "rx-decode.opc"
+                ID(scmpu); F___ZC;
+
               }
             break;
           case 0x84:
@@ -5403,7 +5604,7 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x86:
               {
                 /** 0111 1111 1000 01sz                swhile%s */
-#line 764 "rx-decode.opc"
+#line 834 "rx-decode.opc"
                 int sz AU = op[1] & 0x03;
                 if (trace)
                   {
@@ -5413,9 +5614,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  sz = 0x%x\n", sz);
                   }
                 SYNTAX("swhile%s");
-#line 764 "rx-decode.opc"
-                ID(swhile); BWL(sz); F("--ZC");
-              
+#line 834 "rx-decode.opc"
+                ID(swhile); BWL(sz); F___ZC;
+
               }
             break;
           case 0x87:
@@ -5428,9 +5629,9 @@ rx_decode_opcode (unsigned long pc AU,
                            op[0], op[1]);
                   }
                 SYNTAX("smovu");
-#line 755 "rx-decode.opc"
+#line 825 "rx-decode.opc"
                 ID(smovu);
-              
+
               }
             break;
           case 0x88:
@@ -5438,7 +5639,7 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x8a:
               {
                 /** 0111 1111 1000 10sz                sstr%s */
-#line 770 "rx-decode.opc"
+#line 840 "rx-decode.opc"
                 int sz AU = op[1] & 0x03;
                 if (trace)
                   {
@@ -5448,12 +5649,12 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  sz = 0x%x\n", sz);
                   }
                 SYNTAX("sstr%s");
-#line 770 "rx-decode.opc"
+#line 840 "rx-decode.opc"
                 ID(sstr); BWL(sz);
-              
+
               /*----------------------------------------------------------------------*/
               /* RMPA                                                                  */
-              
+
               }
             break;
           case 0x8b:
@@ -5466,9 +5667,9 @@ rx_decode_opcode (unsigned long pc AU,
                            op[0], op[1]);
                   }
                 SYNTAX("smovb");
-#line 758 "rx-decode.opc"
+#line 828 "rx-decode.opc"
                 ID(smovb);
-              
+
               }
             break;
           case 0x8c:
@@ -5476,7 +5677,7 @@ rx_decode_opcode (unsigned long pc AU,
           case 0x8e:
               {
                 /** 0111 1111 1000 11sz                rmpa%s */
-#line 776 "rx-decode.opc"
+#line 846 "rx-decode.opc"
                 int sz AU = op[1] & 0x03;
                 if (trace)
                   {
@@ -5486,12 +5687,12 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  sz = 0x%x\n", sz);
                   }
                 SYNTAX("rmpa%s");
-#line 776 "rx-decode.opc"
-                ID(rmpa); BWL(sz); F("OS--");
-              
+#line 846 "rx-decode.opc"
+                ID(rmpa); BWL(sz); F_OS__;
+
               /*----------------------------------------------------------------------*/
               /* HI/LO stuff                                                           */
-              
+
               }
             break;
           case 0x8f:
@@ -5504,9 +5705,9 @@ rx_decode_opcode (unsigned long pc AU,
                            op[0], op[1]);
                   }
                 SYNTAX("smovf");
-#line 767 "rx-decode.opc"
+#line 837 "rx-decode.opc"
                 ID(smovf);
-              
+
               }
             break;
           case 0x93:
@@ -5519,12 +5720,12 @@ rx_decode_opcode (unsigned long pc AU,
                            op[0], op[1]);
                   }
                 SYNTAX("satr");
-#line 818 "rx-decode.opc"
+#line 888 "rx-decode.opc"
                 ID(satr);
-              
+
               /*----------------------------------------------------------------------*/
               /* FLOAT                                                         */
-              
+
               }
             break;
           case 0x94:
@@ -5537,9 +5738,9 @@ rx_decode_opcode (unsigned long pc AU,
                            op[0], op[1]);
                   }
                 SYNTAX("rtfi");
-#line 945 "rx-decode.opc"
+#line 1023 "rx-decode.opc"
                 ID(rtfi);
-              
+
               }
             break;
           case 0x95:
@@ -5552,9 +5753,9 @@ rx_decode_opcode (unsigned long pc AU,
                            op[0], op[1]);
                   }
                 SYNTAX("rte");
-#line 948 "rx-decode.opc"
+#line 1026 "rx-decode.opc"
                 ID(rte);
-              
+
               }
             break;
           case 0x96:
@@ -5567,12 +5768,12 @@ rx_decode_opcode (unsigned long pc AU,
                            op[0], op[1]);
                   }
                 SYNTAX("wait");
-#line 960 "rx-decode.opc"
+#line 1038 "rx-decode.opc"
                 ID(wait);
-              
+
               /*----------------------------------------------------------------------*/
               /* SCcnd                                                         */
-              
+
               }
             break;
           case 0xa0:
@@ -5593,7 +5794,7 @@ rx_decode_opcode (unsigned long pc AU,
           case 0xaf:
               {
                 /** 0111 1111 1010 rdst                        setpsw  %0 */
-#line 921 "rx-decode.opc"
+#line 999 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -5603,9 +5804,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("setpsw %0");
-#line 921 "rx-decode.opc"
+#line 999 "rx-decode.opc"
                 ID(setpsw); DF(rdst);
-              
+
               }
             break;
           case 0xb0:
@@ -5626,7 +5827,7 @@ rx_decode_opcode (unsigned long pc AU,
           case 0xbf:
               {
                 /** 0111 1111 1011 rdst                        clrpsw  %0 */
-#line 918 "rx-decode.opc"
+#line 996 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -5636,9 +5837,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("clrpsw %0");
-#line 918 "rx-decode.opc"
+#line 996 "rx-decode.opc"
                 ID(clrpsw); DF(rdst);
-              
+
               }
             break;
           default: UNSUPPORTED(); break;
@@ -5649,20 +5850,20 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            op_semantics_38:
+            op_semantics_39:
               {
                 /** 10sz 0dsp a dst b src      mov%s   %1, %0 */
-#line 312 "rx-decode.opc"
+#line 336 "rx-decode.opc"
                 int sz AU = (op[0] >> 4) & 0x03;
-#line 312 "rx-decode.opc"
+#line 336 "rx-decode.opc"
                 int dsp AU = op[0] & 0x07;
-#line 312 "rx-decode.opc"
+#line 336 "rx-decode.opc"
                 int a AU = (op[1] >> 7) & 0x01;
-#line 312 "rx-decode.opc"
+#line 336 "rx-decode.opc"
                 int dst AU = (op[1] >> 4) & 0x07;
-#line 312 "rx-decode.opc"
+#line 336 "rx-decode.opc"
                 int b AU = (op[1] >> 3) & 0x01;
-#line 312 "rx-decode.opc"
+#line 336 "rx-decode.opc"
                 int src AU = op[1] & 0x07;
                 if (trace)
                   {
@@ -5677,9 +5878,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  src = 0x%x\n", src);
                   }
                 SYNTAX("mov%s  %1, %0");
-#line 312 "rx-decode.opc"
-                ID(mov); sBWL(sz); DIs(dst, dsp*4+a*2+b, sz); SR(src); F("----");
-              
+#line 336 "rx-decode.opc"
+                ID(mov); sBWL(sz); DIs(dst, dsp*4+a*2+b, sz); SR(src); F_____;
+
               }
             break;
         }
@@ -5689,7 +5890,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -5698,7 +5899,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -5707,7 +5908,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -5716,7 +5917,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -5725,7 +5926,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -5734,7 +5935,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -5743,7 +5944,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -5752,20 +5953,20 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            op_semantics_39:
+            op_semantics_40:
               {
                 /** 10sz 1dsp a src b dst      mov%s   %1, %0 */
-#line 309 "rx-decode.opc"
+#line 333 "rx-decode.opc"
                 int sz AU = (op[0] >> 4) & 0x03;
-#line 309 "rx-decode.opc"
+#line 333 "rx-decode.opc"
                 int dsp AU = op[0] & 0x07;
-#line 309 "rx-decode.opc"
+#line 333 "rx-decode.opc"
                 int a AU = (op[1] >> 7) & 0x01;
-#line 309 "rx-decode.opc"
+#line 333 "rx-decode.opc"
                 int src AU = (op[1] >> 4) & 0x07;
-#line 309 "rx-decode.opc"
+#line 333 "rx-decode.opc"
                 int b AU = (op[1] >> 3) & 0x01;
-#line 309 "rx-decode.opc"
+#line 333 "rx-decode.opc"
                 int dst AU = op[1] & 0x07;
                 if (trace)
                   {
@@ -5780,9 +5981,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  dst = 0x%x\n", dst);
                   }
                 SYNTAX("mov%s  %1, %0");
-#line 309 "rx-decode.opc"
-                ID(mov); sBWL(sz); DR(dst); SIs(src, dsp*4+a*2+b, sz); F("----");
-              
+#line 333 "rx-decode.opc"
+                ID(mov); sBWL(sz); DR(dst); SIs(src, dsp*4+a*2+b, sz); F_____;
+
               }
             break;
         }
@@ -5792,7 +5993,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -5801,7 +6002,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -5810,7 +6011,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -5819,7 +6020,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -5828,7 +6029,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -5837,7 +6038,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -5846,7 +6047,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -5855,7 +6056,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -5864,7 +6065,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -5873,7 +6074,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -5882,7 +6083,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -5891,7 +6092,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -5900,7 +6101,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -5909,7 +6110,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -5918,7 +6119,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -5927,7 +6128,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -5936,7 +6137,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -5945,7 +6146,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -5954,7 +6155,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -5963,7 +6164,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -5972,7 +6173,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -5981,7 +6182,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -5990,7 +6191,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -5999,7 +6200,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -6008,7 +6209,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -6017,7 +6218,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -6026,7 +6227,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -6035,7 +6236,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -6044,7 +6245,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -6053,7 +6254,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -6062,7 +6263,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_38;
+            goto op_semantics_39;
             break;
         }
       break;
@@ -6071,7 +6272,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -6080,7 +6281,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -6089,7 +6290,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -6098,7 +6299,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -6107,7 +6308,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -6116,7 +6317,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -6125,7 +6326,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -6134,7 +6335,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_39;
+            goto op_semantics_40;
             break;
         }
       break;
@@ -6143,20 +6344,20 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            op_semantics_40:
+            op_semantics_41:
               {
                 /** 1011 w dsp a src b dst     movu%s  %1, %0 */
-#line 332 "rx-decode.opc"
+#line 356 "rx-decode.opc"
                 int w AU = (op[0] >> 3) & 0x01;
-#line 332 "rx-decode.opc"
+#line 356 "rx-decode.opc"
                 int dsp AU = op[0] & 0x07;
-#line 332 "rx-decode.opc"
+#line 356 "rx-decode.opc"
                 int a AU = (op[1] >> 7) & 0x01;
-#line 332 "rx-decode.opc"
+#line 356 "rx-decode.opc"
                 int src AU = (op[1] >> 4) & 0x07;
-#line 332 "rx-decode.opc"
+#line 356 "rx-decode.opc"
                 int b AU = (op[1] >> 3) & 0x01;
-#line 332 "rx-decode.opc"
+#line 356 "rx-decode.opc"
                 int dst AU = op[1] & 0x07;
                 if (trace)
                   {
@@ -6171,9 +6372,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  dst = 0x%x\n", dst);
                   }
                 SYNTAX("movu%s %1, %0");
-#line 332 "rx-decode.opc"
-                ID(mov); uBWL(w); DR(dst); SIs(src, dsp*4+a*2+b, w); F("----");
-              
+#line 356 "rx-decode.opc"
+                ID(mov); uBW(w); DR(dst); SIs(src, dsp*4+a*2+b, w); F_____;
+
               }
             break;
         }
@@ -6183,7 +6384,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_40;
+            goto op_semantics_41;
             break;
         }
       break;
@@ -6192,7 +6393,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_40;
+            goto op_semantics_41;
             break;
         }
       break;
@@ -6201,7 +6402,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_40;
+            goto op_semantics_41;
             break;
         }
       break;
@@ -6210,7 +6411,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_40;
+            goto op_semantics_41;
             break;
         }
       break;
@@ -6219,7 +6420,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_40;
+            goto op_semantics_41;
             break;
         }
       break;
@@ -6228,7 +6429,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_40;
+            goto op_semantics_41;
             break;
         }
       break;
@@ -6237,7 +6438,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_40;
+            goto op_semantics_41;
             break;
         }
       break;
@@ -6246,7 +6447,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_40;
+            goto op_semantics_41;
             break;
         }
       break;
@@ -6255,7 +6456,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_40;
+            goto op_semantics_41;
             break;
         }
       break;
@@ -6264,7 +6465,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_40;
+            goto op_semantics_41;
             break;
         }
       break;
@@ -6273,7 +6474,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_40;
+            goto op_semantics_41;
             break;
         }
       break;
@@ -6282,7 +6483,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_40;
+            goto op_semantics_41;
             break;
         }
       break;
@@ -6291,7 +6492,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_40;
+            goto op_semantics_41;
             break;
         }
       break;
@@ -6300,7 +6501,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_40;
+            goto op_semantics_41;
             break;
         }
       break;
@@ -6309,7 +6510,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_40;
+            goto op_semantics_41;
             break;
         }
       break;
@@ -6318,18 +6519,18 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            op_semantics_41:
+            op_semantics_42:
               {
                 /** 11sz sd ss rsrc rdst       mov%s   %1, %0 */
-#line 298 "rx-decode.opc"
+#line 314 "rx-decode.opc"
                 int sz AU = (op[0] >> 4) & 0x03;
-#line 298 "rx-decode.opc"
+#line 314 "rx-decode.opc"
                 int sd AU = (op[0] >> 2) & 0x03;
-#line 298 "rx-decode.opc"
+#line 314 "rx-decode.opc"
                 int ss AU = op[0] & 0x03;
-#line 298 "rx-decode.opc"
+#line 314 "rx-decode.opc"
                 int rsrc AU = (op[1] >> 4) & 0x0f;
-#line 298 "rx-decode.opc"
+#line 314 "rx-decode.opc"
                 int rdst AU = op[1] & 0x0f;
                 if (trace)
                   {
@@ -6343,17 +6544,25 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  rdst = 0x%x\n", rdst);
                   }
                 SYNTAX("mov%s  %1, %0");
-#line 298 "rx-decode.opc"
-                ID(mov); sBWL(sz); F("----");
-                if ((ss == 3) && (sd != 3))
+#line 314 "rx-decode.opc"
+                if (sd == 3 && ss == 3 && sz == 2 && rsrc == 0 && rdst == 0)
                   {
-                    SD(ss, rdst, sz); DD(sd, rsrc, sz);
+                    ID(nop2);
+                    SYNTAX ("nop\t; mov.l\tr0, r0");
                   }
                 else
                   {
-                    SD(ss, rsrc, sz); DD(sd, rdst, sz);
+                    ID(mov); sBWL(sz); F_____;
+                    if ((ss == 3) && (sd != 3))
+               {
+                 SD(ss, rdst, sz); DD(sd, rsrc, sz);
+               }
+                    else
+               {
+                 SD(ss, rsrc, sz); DD(sd, rdst, sz);
+               }
                   }
-              
+
               }
             break;
         }
@@ -6363,7 +6572,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6372,7 +6581,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6381,7 +6590,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6390,7 +6599,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6399,7 +6608,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6408,7 +6617,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6417,7 +6626,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6426,7 +6635,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6435,7 +6644,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6444,7 +6653,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6453,7 +6662,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6462,7 +6671,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6471,7 +6680,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6480,7 +6689,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6489,7 +6698,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6498,7 +6707,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6507,7 +6716,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6516,7 +6725,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6525,7 +6734,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6534,7 +6743,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6543,7 +6752,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6552,7 +6761,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6561,7 +6770,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6570,7 +6779,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6579,7 +6788,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6588,7 +6797,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6597,7 +6806,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6606,7 +6815,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6615,7 +6824,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6624,7 +6833,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6633,7 +6842,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6642,7 +6851,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6651,7 +6860,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6660,7 +6869,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6669,7 +6878,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6678,7 +6887,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6687,7 +6896,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6696,7 +6905,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6705,7 +6914,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6714,7 +6923,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6723,7 +6932,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6732,7 +6941,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6741,7 +6950,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6750,7 +6959,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6759,7 +6968,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6768,7 +6977,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6777,7 +6986,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_41;
+            goto op_semantics_42;
             break;
         }
       break;
@@ -6786,14 +6995,14 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x08)
         {
           case 0x00:
-            op_semantics_42:
+            op_semantics_43:
               {
                 /** 1111 00sd rdst 0bit                        bset    #%1, %0%S0 */
-#line 869 "rx-decode.opc"
+#line 939 "rx-decode.opc"
                 int sd AU = op[0] & 0x03;
-#line 869 "rx-decode.opc"
+#line 939 "rx-decode.opc"
                 int rdst AU = (op[1] >> 4) & 0x0f;
-#line 869 "rx-decode.opc"
+#line 939 "rx-decode.opc"
                 int bit AU = op[1] & 0x07;
                 if (trace)
                   {
@@ -6805,20 +7014,20 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  bit = 0x%x\n", bit);
                   }
                 SYNTAX("bset   #%1, %0%S0");
-#line 869 "rx-decode.opc"
-                ID(bset); BWL(BSIZE); SC(bit); DD(sd, rdst, BSIZE); F("----");
-              
+#line 939 "rx-decode.opc"
+                ID(bset); BWL(BSIZE); SC(bit); DD(sd, rdst, BSIZE); F_____;
+
               }
             break;
           case 0x08:
-            op_semantics_43:
+            op_semantics_44:
               {
                 /** 1111 00sd rdst 1bit                        bclr    #%1, %0%S0 */
-#line 879 "rx-decode.opc"
+#line 951 "rx-decode.opc"
                 int sd AU = op[0] & 0x03;
-#line 879 "rx-decode.opc"
+#line 951 "rx-decode.opc"
                 int rdst AU = (op[1] >> 4) & 0x0f;
-#line 879 "rx-decode.opc"
+#line 951 "rx-decode.opc"
                 int bit AU = op[1] & 0x07;
                 if (trace)
                   {
@@ -6830,9 +7039,9 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  bit = 0x%x\n", bit);
                   }
                 SYNTAX("bclr   #%1, %0%S0");
-#line 879 "rx-decode.opc"
-                ID(bclr); BWL(BSIZE); SC(bit); DD(sd, rdst, BSIZE); F("----");
-              
+#line 951 "rx-decode.opc"
+                ID(bclr); BWL(BSIZE); SC(bit); DD(sd, rdst, BSIZE); F_____;
+
               }
             break;
         }
@@ -6842,10 +7051,10 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x08)
         {
           case 0x00:
-            goto op_semantics_42;
+            goto op_semantics_43;
             break;
           case 0x08:
-            goto op_semantics_43;
+            goto op_semantics_44;
             break;
         }
       break;
@@ -6854,10 +7063,10 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x08)
         {
           case 0x00:
-            goto op_semantics_42;
+            goto op_semantics_43;
             break;
           case 0x08:
-            goto op_semantics_43;
+            goto op_semantics_44;
             break;
         }
       break;
@@ -6866,10 +7075,10 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x08)
         {
           case 0x00:
-            goto op_semantics_42;
+            goto op_semantics_43;
             break;
           case 0x08:
-            goto op_semantics_43;
+            goto op_semantics_44;
             break;
         }
       break;
@@ -6879,14 +7088,14 @@ rx_decode_opcode (unsigned long pc AU,
         {
           case 0x00:
           case 0x04:
-            op_semantics_44:
+            op_semantics_45:
               {
                 /** 1111 01sd rdst 0bit                        btst    #%2, %1%S1 */
-#line 889 "rx-decode.opc"
+#line 963 "rx-decode.opc"
                 int sd AU = op[0] & 0x03;
-#line 889 "rx-decode.opc"
+#line 963 "rx-decode.opc"
                 int rdst AU = (op[1] >> 4) & 0x0f;
-#line 889 "rx-decode.opc"
+#line 963 "rx-decode.opc"
                 int bit AU = op[1] & 0x07;
                 if (trace)
                   {
@@ -6898,20 +7107,20 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  bit = 0x%x\n", bit);
                   }
                 SYNTAX("btst   #%2, %1%S1");
-#line 889 "rx-decode.opc"
-                ID(btst); BWL(BSIZE); S2C(bit); SD(sd, rdst, BSIZE); F("--ZC");
-              
+#line 963 "rx-decode.opc"
+                ID(btst); BWL(BSIZE); S2C(bit); SD(sd, rdst, BSIZE); F___ZC;
+
               }
             break;
           case 0x08:
-            op_semantics_45:
+            op_semantics_46:
               {
                 /** 1111 01ss rsrc 10sz                push%s  %1 */
-#line 357 "rx-decode.opc"
+#line 381 "rx-decode.opc"
                 int ss AU = op[0] & 0x03;
-#line 357 "rx-decode.opc"
+#line 381 "rx-decode.opc"
                 int rsrc AU = (op[1] >> 4) & 0x0f;
-#line 357 "rx-decode.opc"
+#line 381 "rx-decode.opc"
                 int sz AU = op[1] & 0x03;
                 if (trace)
                   {
@@ -6923,12 +7132,12 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  sz = 0x%x\n", sz);
                   }
                 SYNTAX("push%s %1");
-#line 357 "rx-decode.opc"
-                ID(mov); BWL(sz); OP(0, RX_Operand_Predec, 0, 0); SD(ss, rsrc, sz); F("----");
-              
+#line 381 "rx-decode.opc"
+                ID(mov); BWL(sz); OP(0, RX_Operand_Predec, 0, 0); SD(ss, rsrc, sz); F_____;
+
               /*----------------------------------------------------------------------*/
               /* XCHG                                                                  */
-              
+
               }
             break;
           default: UNSUPPORTED(); break;
@@ -6940,10 +7149,10 @@ rx_decode_opcode (unsigned long pc AU,
         {
           case 0x00:
           case 0x04:
-            goto op_semantics_44;
+            goto op_semantics_45;
             break;
           case 0x08:
-            goto op_semantics_45;
+            goto op_semantics_46;
             break;
           default: UNSUPPORTED(); break;
         }
@@ -6954,10 +7163,10 @@ rx_decode_opcode (unsigned long pc AU,
         {
           case 0x00:
           case 0x04:
-            goto op_semantics_44;
+            goto op_semantics_45;
             break;
           case 0x08:
-            goto op_semantics_45;
+            goto op_semantics_46;
             break;
           default: UNSUPPORTED(); break;
         }
@@ -6968,10 +7177,10 @@ rx_decode_opcode (unsigned long pc AU,
         {
           case 0x00:
           case 0x04:
-            goto op_semantics_44;
+            goto op_semantics_45;
             break;
           case 0x08:
-            goto op_semantics_45;
+            goto op_semantics_46;
             break;
           default: UNSUPPORTED(); break;
         }
@@ -6981,16 +7190,16 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            op_semantics_46:
+            op_semantics_47:
               {
                 /** 1111 10sd rdst im sz       mov%s   #%1, %0 */
-#line 289 "rx-decode.opc"
+#line 292 "rx-decode.opc"
                 int sd AU = op[0] & 0x03;
-#line 289 "rx-decode.opc"
+#line 292 "rx-decode.opc"
                 int rdst AU = (op[1] >> 4) & 0x0f;
-#line 289 "rx-decode.opc"
+#line 292 "rx-decode.opc"
                 int im AU = (op[1] >> 2) & 0x03;
-#line 289 "rx-decode.opc"
+#line 292 "rx-decode.opc"
                 int sz AU = op[1] & 0x03;
                 if (trace)
                   {
@@ -7003,9 +7212,22 @@ rx_decode_opcode (unsigned long pc AU,
                     printf ("  sz = 0x%x\n", sz);
                   }
                 SYNTAX("mov%s  #%1, %0");
-#line 289 "rx-decode.opc"
-                ID(mov); sBWL (sz); DD(sd, rdst, sz); SC(IMMex(im)); F("----");
-              
+#line 292 "rx-decode.opc"
+                ID(mov); DD(sd, rdst, sz);
+                if ((im == 1 && sz == 0)
+                    || (im == 2 && sz == 1)
+                    || (im == 0 && sz == 2))
+                  {
+                    BWL (sz);
+                    SC(IMM(im));
+                  }
+                else
+                  {
+                    sBWL (sz);
+                    SC(IMMex(im));
+                  }
+                 F_____;
+
               }
             break;
         }
@@ -7015,7 +7237,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_46;
+            goto op_semantics_47;
             break;
         }
       break;
@@ -7024,7 +7246,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_46;
+            goto op_semantics_47;
             break;
         }
       break;
@@ -7033,7 +7255,7 @@ rx_decode_opcode (unsigned long pc AU,
         switch (op[1] & 0x00)
         {
           case 0x00:
-            goto op_semantics_46;
+            goto op_semantics_47;
             break;
         }
       break;
@@ -7048,9 +7270,9 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x00:
                     {
                       /** 1111 1100 0000 0011 rsrc rdst        sbb     %1, %0 */
-#line 531 "rx-decode.opc"
+#line 555 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 531 "rx-decode.opc"
+#line 555 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -7061,9 +7283,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("sbb      %1, %0");
-#line 531 "rx-decode.opc"
-                      ID(sbb); SR (rsrc); DR(rdst); F("OSZC");
-                    
+#line 555 "rx-decode.opc"
+                      ID(sbb); SR (rsrc); DR(rdst); F_OSZC;
+
                       /* FIXME: only supports .L */
                     }
                   break;
@@ -7076,9 +7298,9 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x00:
                     {
                       /** 1111 1100 0000 0111 rsrc rdst        neg     %2, %0 */
-#line 462 "rx-decode.opc"
+#line 486 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 462 "rx-decode.opc"
+#line 486 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -7089,12 +7311,12 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("neg      %2, %0");
-#line 462 "rx-decode.opc"
-                      ID(sub); DR(rdst); SC(0); S2R(rsrc); F("OSZC");
-                    
+#line 486 "rx-decode.opc"
+                      ID(sub); DR(rdst); SC(0); S2R(rsrc); F_OSZC;
+
                     /*----------------------------------------------------------------------*/
                     /* ADC                                                                     */
-                    
+
                     }
                   break;
               }
@@ -7106,9 +7328,9 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x00:
                     {
                       /** 1111 1100 0000 1011 rsrc rdst        adc     %1, %0 */
-#line 471 "rx-decode.opc"
+#line 495 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 471 "rx-decode.opc"
+#line 495 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -7119,9 +7341,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("adc      %1, %0");
-#line 471 "rx-decode.opc"
-                      ID(adc); SR(rsrc); DR(rdst); F("OSZC");
-                    
+#line 495 "rx-decode.opc"
+                      ID(adc); SR(rsrc); DR(rdst); F_OSZC;
+
                     }
                   break;
               }
@@ -7133,9 +7355,9 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x00:
                     {
                       /** 1111 1100 0000 1111 rsrc rdst        abs     %1, %0 */
-#line 544 "rx-decode.opc"
+#line 568 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 544 "rx-decode.opc"
+#line 568 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -7146,12 +7368,12 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("abs      %1, %0");
-#line 544 "rx-decode.opc"
-                      ID(abs); DR(rdst); SR(rsrc); F("OSZ-");
-                    
+#line 568 "rx-decode.opc"
+                      ID(abs); DR(rdst); SR(rsrc); F_OSZ_;
+
                     /*----------------------------------------------------------------------*/
                     /* MAX                                                                     */
-                    
+
                     }
                   break;
               }
@@ -7161,14 +7383,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_47:
+                  op_semantics_48:
                     {
                       /** 1111 1100 0001 00ss rsrc rdst        max     %1%S1, %0 */
-#line 553 "rx-decode.opc"
+#line 587 "rx-decode.opc"
                       int ss AU = op[1] & 0x03;
-#line 553 "rx-decode.opc"
+#line 587 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 553 "rx-decode.opc"
+#line 587 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -7180,9 +7402,17 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("max      %1%S1, %0");
-#line 553 "rx-decode.opc"
-                      ID(max); SP(ss, rsrc); DR(rdst);
-                    
+#line 587 "rx-decode.opc"
+                      if (ss == 3 && rsrc == 0 && rdst == 0)
+                        {
+                          ID(nop3);
+                          SYNTAX("nop\t; max\tr0, r0");
+                        }
+                      else
+                        {
+                          ID(max); SP(ss, rsrc); DR(rdst);
+                        }
+
                     }
                   break;
               }
@@ -7192,7 +7422,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_47;
+                  goto op_semantics_48;
                   break;
               }
             break;
@@ -7201,7 +7431,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_47;
+                  goto op_semantics_48;
                   break;
               }
             break;
@@ -7210,7 +7440,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_47;
+                  goto op_semantics_48;
                   break;
               }
             break;
@@ -7219,14 +7449,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_48:
+                  op_semantics_49:
                     {
                       /** 1111 1100 0001 01ss rsrc rdst        min     %1%S1, %0 */
-#line 565 "rx-decode.opc"
+#line 607 "rx-decode.opc"
                       int ss AU = op[1] & 0x03;
-#line 565 "rx-decode.opc"
+#line 607 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 565 "rx-decode.opc"
+#line 607 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -7238,9 +7468,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("min      %1%S1, %0");
-#line 565 "rx-decode.opc"
+#line 607 "rx-decode.opc"
                       ID(min); SP(ss, rsrc); DR(rdst);
-                    
+
                     }
                   break;
               }
@@ -7250,7 +7480,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_48;
+                  goto op_semantics_49;
                   break;
               }
             break;
@@ -7259,7 +7489,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_48;
+                  goto op_semantics_49;
                   break;
               }
             break;
@@ -7268,7 +7498,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_48;
+                  goto op_semantics_49;
                   break;
               }
             break;
@@ -7277,14 +7507,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_49:
+                  op_semantics_50:
                     {
                       /** 1111 1100 0001 10ss rsrc rdst        emul    %1%S1, %0 */
-#line 595 "rx-decode.opc"
+#line 665 "rx-decode.opc"
                       int ss AU = op[1] & 0x03;
-#line 595 "rx-decode.opc"
+#line 665 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 595 "rx-decode.opc"
+#line 665 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -7296,9 +7526,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("emul     %1%S1, %0");
-#line 595 "rx-decode.opc"
+#line 665 "rx-decode.opc"
                       ID(emul); SP(ss, rsrc); DR(rdst);
-                    
+
                     }
                   break;
               }
@@ -7308,7 +7538,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_49;
+                  goto op_semantics_50;
                   break;
               }
             break;
@@ -7317,7 +7547,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_49;
+                  goto op_semantics_50;
                   break;
               }
             break;
@@ -7326,7 +7556,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_49;
+                  goto op_semantics_50;
                   break;
               }
             break;
@@ -7335,14 +7565,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_50:
+                  op_semantics_51:
                     {
                       /** 1111 1100 0001 11ss rsrc rdst        emulu   %1%S1, %0 */
-#line 607 "rx-decode.opc"
+#line 677 "rx-decode.opc"
                       int ss AU = op[1] & 0x03;
-#line 607 "rx-decode.opc"
+#line 677 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 607 "rx-decode.opc"
+#line 677 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -7354,9 +7584,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("emulu    %1%S1, %0");
-#line 607 "rx-decode.opc"
+#line 677 "rx-decode.opc"
                       ID(emulu); SP(ss, rsrc); DR(rdst);
-                    
+
                     }
                   break;
               }
@@ -7366,7 +7596,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_50;
+                  goto op_semantics_51;
                   break;
               }
             break;
@@ -7375,7 +7605,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_50;
+                  goto op_semantics_51;
                   break;
               }
             break;
@@ -7384,7 +7614,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_50;
+                  goto op_semantics_51;
                   break;
               }
             break;
@@ -7393,14 +7623,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_51:
+                  op_semantics_52:
                     {
                       /** 1111 1100 0010 00ss rsrc rdst        div     %1%S1, %0 */
-#line 619 "rx-decode.opc"
+#line 689 "rx-decode.opc"
                       int ss AU = op[1] & 0x03;
-#line 619 "rx-decode.opc"
+#line 689 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 619 "rx-decode.opc"
+#line 689 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -7412,9 +7642,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("div      %1%S1, %0");
-#line 619 "rx-decode.opc"
-                      ID(div); SP(ss, rsrc); DR(rdst); F("O---");
-                    
+#line 689 "rx-decode.opc"
+                      ID(div); SP(ss, rsrc); DR(rdst); F_O___;
+
                     }
                   break;
               }
@@ -7424,7 +7654,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_51;
+                  goto op_semantics_52;
                   break;
               }
             break;
@@ -7433,7 +7663,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_51;
+                  goto op_semantics_52;
                   break;
               }
             break;
@@ -7442,7 +7672,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_51;
+                  goto op_semantics_52;
                   break;
               }
             break;
@@ -7451,14 +7681,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_52:
+                  op_semantics_53:
                     {
                       /** 1111 1100 0010 01ss rsrc rdst        divu    %1%S1, %0 */
-#line 631 "rx-decode.opc"
+#line 701 "rx-decode.opc"
                       int ss AU = op[1] & 0x03;
-#line 631 "rx-decode.opc"
+#line 701 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 631 "rx-decode.opc"
+#line 701 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -7470,9 +7700,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("divu     %1%S1, %0");
-#line 631 "rx-decode.opc"
-                      ID(divu); SP(ss, rsrc); DR(rdst); F("O---");
-                    
+#line 701 "rx-decode.opc"
+                      ID(divu); SP(ss, rsrc); DR(rdst); F_O___;
+
                     }
                   break;
               }
@@ -7482,7 +7712,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_52;
+                  goto op_semantics_53;
                   break;
               }
             break;
@@ -7491,7 +7721,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_52;
+                  goto op_semantics_53;
                   break;
               }
             break;
@@ -7500,7 +7730,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_52;
+                  goto op_semantics_53;
                   break;
               }
             break;
@@ -7509,14 +7739,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_53:
+                  op_semantics_54:
                     {
                       /** 1111 1100 0011 00ss rsrc rdst        tst     %1%S1, %2 */
-#line 450 "rx-decode.opc"
+#line 474 "rx-decode.opc"
                       int ss AU = op[1] & 0x03;
-#line 450 "rx-decode.opc"
+#line 474 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 450 "rx-decode.opc"
+#line 474 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -7528,9 +7758,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("tst      %1%S1, %2");
-#line 450 "rx-decode.opc"
-                      ID(and); SP(ss, rsrc); S2R(rdst); F("-SZ-");
-                    
+#line 474 "rx-decode.opc"
+                      ID(and); SP(ss, rsrc); S2R(rdst); F__SZ_;
+
                     }
                   break;
               }
@@ -7540,7 +7770,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_53;
+                  goto op_semantics_54;
                   break;
               }
             break;
@@ -7549,7 +7779,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_53;
+                  goto op_semantics_54;
                   break;
               }
             break;
@@ -7558,7 +7788,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_53;
+                  goto op_semantics_54;
                   break;
               }
             break;
@@ -7567,14 +7797,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_54:
+                  op_semantics_55:
                     {
                       /** 1111 1100 0011 01ss rsrc rdst        xor     %1%S1, %0 */
-#line 429 "rx-decode.opc"
+#line 453 "rx-decode.opc"
                       int ss AU = op[1] & 0x03;
-#line 429 "rx-decode.opc"
+#line 453 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 429 "rx-decode.opc"
+#line 453 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -7586,9 +7816,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("xor      %1%S1, %0");
-#line 429 "rx-decode.opc"
-                      ID(xor); SP(ss, rsrc); DR(rdst); F("-SZ-");
-                    
+#line 453 "rx-decode.opc"
+                      ID(xor); SP(ss, rsrc); DR(rdst); F__SZ_;
+
                     }
                   break;
               }
@@ -7598,7 +7828,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_54;
+                  goto op_semantics_55;
                   break;
               }
             break;
@@ -7607,7 +7837,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_54;
+                  goto op_semantics_55;
                   break;
               }
             break;
@@ -7616,7 +7846,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_54;
+                  goto op_semantics_55;
                   break;
               }
             break;
@@ -7627,9 +7857,9 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x00:
                     {
                       /** 1111 1100 0011 1011 rsrc rdst        not     %1, %0 */
-#line 441 "rx-decode.opc"
+#line 465 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 441 "rx-decode.opc"
+#line 465 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -7640,12 +7870,12 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("not      %1, %0");
-#line 441 "rx-decode.opc"
-                      ID(xor); DR(rdst); SR(rsrc); S2C(~0); F("-SZ-");
-                    
+#line 465 "rx-decode.opc"
+                      ID(xor); DR(rdst); SR(rsrc); S2C(~0); F__SZ_;
+
                     /*----------------------------------------------------------------------*/
                     /* TST                                                                     */
-                    
+
                     }
                   break;
               }
@@ -7655,14 +7885,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_55:
+                  op_semantics_56:
                     {
                       /** 1111 1100 0100 00ss rsrc rdst        xchg    %1%S1, %0 */
-#line 363 "rx-decode.opc"
+#line 387 "rx-decode.opc"
                       int ss AU = op[1] & 0x03;
-#line 363 "rx-decode.opc"
+#line 387 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 363 "rx-decode.opc"
+#line 387 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -7674,9 +7904,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("xchg     %1%S1, %0");
-#line 363 "rx-decode.opc"
+#line 387 "rx-decode.opc"
                       ID(xchg); DR(rdst); SP(ss, rsrc);
-                    
+
                     }
                   break;
               }
@@ -7686,7 +7916,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_55;
+                  goto op_semantics_56;
                   break;
               }
             break;
@@ -7695,7 +7925,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_55;
+                  goto op_semantics_56;
                   break;
               }
             break;
@@ -7704,7 +7934,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_55;
+                  goto op_semantics_56;
                   break;
               }
             break;
@@ -7713,14 +7943,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_56:
+                  op_semantics_57:
                     {
                       /** 1111 1100 0100 01sd rsrc rdst        itof    %1%S1, %0 */
-#line 860 "rx-decode.opc"
+#line 930 "rx-decode.opc"
                       int sd AU = op[1] & 0x03;
-#line 860 "rx-decode.opc"
+#line 930 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 860 "rx-decode.opc"
+#line 930 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -7732,9 +7962,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("itof     %1%S1, %0");
-#line 860 "rx-decode.opc"
-                      ID(itof); DR (rdst); SP(sd, rsrc); F("-SZ-");
-                    
+#line 930 "rx-decode.opc"
+                      ID(itof); DR (rdst); SP(sd, rsrc); F__SZ_;
+
                     }
                   break;
               }
@@ -7744,7 +7974,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_56;
+                  goto op_semantics_57;
                   break;
               }
             break;
@@ -7753,7 +7983,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_56;
+                  goto op_semantics_57;
                   break;
               }
             break;
@@ -7762,7 +7992,119 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_56;
+                  goto op_semantics_57;
+                  break;
+              }
+            break;
+          case 0x4b:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                    {
+                      /** 1111 1100 0100 1011 rsrc rdst        stz     %1, %0 */
+#line 1056 "rx-decode.opc"
+                      int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 1056 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1100 0100 1011 rsrc rdst    stz     %1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  rsrc = 0x%x,", rsrc);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("stz      %1, %0");
+#line 1056 "rx-decode.opc"
+                      ID(stcc); SR(rsrc); DR(rdst); S2cc(RXC_z);
+
+                    }
+                  break;
+              }
+            break;
+          case 0x4f:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                    {
+                      /** 1111 1100 0100 1111 rsrc rdst        stnz    %1, %0 */
+#line 1059 "rx-decode.opc"
+                      int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 1059 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1100 0100 1111 rsrc rdst    stnz    %1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  rsrc = 0x%x,", rsrc);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("stnz     %1, %0");
+#line 1059 "rx-decode.opc"
+                      ID(stcc); SR(rsrc); DR(rdst); S2cc(RXC_nz);
+
+                    }
+                  break;
+              }
+            break;
+          case 0x54:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  op_semantics_58:
+                    {
+                      /** 1111 1100 0101 01sd rsrc rdst        utof    %1%S1, %0 */
+#line 1116 "rx-decode.opc"
+                      int sd AU = op[1] & 0x03;
+#line 1116 "rx-decode.opc"
+                      int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 1116 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1100 0101 01sd rsrc rdst    utof    %1%S1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  sd = 0x%x,", sd);
+                          printf ("  rsrc = 0x%x,", rsrc);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("utof     %1%S1, %0");
+#line 1116 "rx-decode.opc"
+                      ID(utof); DR (rdst); SP(sd, rsrc); F__SZ_;
+
+                    }
+                  break;
+              }
+            break;
+          case 0x55:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_58;
+                  break;
+              }
+            break;
+          case 0x56:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_58;
+                  break;
+              }
+            break;
+          case 0x57:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_58;
                   break;
               }
             break;
@@ -7771,14 +8113,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_57:
+                  op_semantics_59:
                     {
                       /** 1111 1100 0110 00sd rdst rsrc        bset    %1, %0%S0 */
-#line 872 "rx-decode.opc"
+#line 942 "rx-decode.opc"
                       int sd AU = op[1] & 0x03;
-#line 872 "rx-decode.opc"
+#line 942 "rx-decode.opc"
                       int rdst AU = (op[2] >> 4) & 0x0f;
-#line 872 "rx-decode.opc"
+#line 942 "rx-decode.opc"
                       int rsrc AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -7790,9 +8132,11 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rsrc = 0x%x\n", rsrc);
                         }
                       SYNTAX("bset     %1, %0%S0");
-#line 872 "rx-decode.opc"
-                      ID(bset); BWL(BSIZE); SR(rsrc); DD(sd, rdst, BSIZE); F("----");
-                    
+#line 942 "rx-decode.opc"
+                      ID(bset); BWL(BSIZE); SR(rsrc); DD(sd, rdst, BSIZE); F_____;
+                      if (sd == 3) /* bset reg,reg */
+                        BWL(LSIZE);
+
                     }
                   break;
               }
@@ -7802,7 +8146,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_57;
+                  goto op_semantics_59;
                   break;
               }
             break;
@@ -7811,7 +8155,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_57;
+                  goto op_semantics_59;
                   break;
               }
             break;
@@ -7820,7 +8164,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_57;
+                  goto op_semantics_59;
                   break;
               }
             break;
@@ -7829,14 +8173,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_58:
+                  op_semantics_60:
                     {
                       /** 1111 1100 0110 01sd rdst rsrc        bclr    %1, %0%S0 */
-#line 882 "rx-decode.opc"
+#line 954 "rx-decode.opc"
                       int sd AU = op[1] & 0x03;
-#line 882 "rx-decode.opc"
+#line 954 "rx-decode.opc"
                       int rdst AU = (op[2] >> 4) & 0x0f;
-#line 882 "rx-decode.opc"
+#line 954 "rx-decode.opc"
                       int rsrc AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -7848,9 +8192,11 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rsrc = 0x%x\n", rsrc);
                         }
                       SYNTAX("bclr     %1, %0%S0");
-#line 882 "rx-decode.opc"
-                      ID(bclr); BWL(BSIZE); SR(rsrc); DD(sd, rdst, BSIZE); F("----");
-                    
+#line 954 "rx-decode.opc"
+                      ID(bclr); BWL(BSIZE); SR(rsrc); DD(sd, rdst, BSIZE); F_____;
+                      if (sd == 3) /* bset reg,reg */
+                        BWL(LSIZE);
+
                     }
                   break;
               }
@@ -7860,7 +8206,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_58;
+                  goto op_semantics_60;
                   break;
               }
             break;
@@ -7869,7 +8215,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_58;
+                  goto op_semantics_60;
                   break;
               }
             break;
@@ -7878,7 +8224,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_58;
+                  goto op_semantics_60;
                   break;
               }
             break;
@@ -7887,14 +8233,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_59:
+                  op_semantics_61:
                     {
                       /** 1111 1100 0110 10sd rdst rsrc        btst    %2, %1%S1 */
-#line 892 "rx-decode.opc"
+#line 966 "rx-decode.opc"
                       int sd AU = op[1] & 0x03;
-#line 892 "rx-decode.opc"
+#line 966 "rx-decode.opc"
                       int rdst AU = (op[2] >> 4) & 0x0f;
-#line 892 "rx-decode.opc"
+#line 966 "rx-decode.opc"
                       int rsrc AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -7906,9 +8252,11 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rsrc = 0x%x\n", rsrc);
                         }
                       SYNTAX("btst     %2, %1%S1");
-#line 892 "rx-decode.opc"
-                      ID(btst); BWL(BSIZE); S2R(rsrc); SD(sd, rdst, BSIZE); F("--ZC");
-                    
+#line 966 "rx-decode.opc"
+                      ID(btst); BWL(BSIZE); S2R(rsrc); SD(sd, rdst, BSIZE); F___ZC;
+                      if (sd == 3) /* bset reg,reg */
+                        BWL(LSIZE);
+
                     }
                   break;
               }
@@ -7918,7 +8266,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_59;
+                  goto op_semantics_61;
                   break;
               }
             break;
@@ -7927,7 +8275,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_59;
+                  goto op_semantics_61;
                   break;
               }
             break;
@@ -7936,7 +8284,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_59;
+                  goto op_semantics_61;
                   break;
               }
             break;
@@ -7945,14 +8293,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_60:
+                  op_semantics_62:
                     {
                       /** 1111 1100 0110 11sd rdst rsrc        bnot    %1, %0%S0 */
-#line 902 "rx-decode.opc"
+#line 978 "rx-decode.opc"
                       int sd AU = op[1] & 0x03;
-#line 902 "rx-decode.opc"
+#line 978 "rx-decode.opc"
                       int rdst AU = (op[2] >> 4) & 0x0f;
-#line 902 "rx-decode.opc"
+#line 978 "rx-decode.opc"
                       int rsrc AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -7964,9 +8312,11 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rsrc = 0x%x\n", rsrc);
                         }
                       SYNTAX("bnot     %1, %0%S0");
-#line 902 "rx-decode.opc"
+#line 978 "rx-decode.opc"
                       ID(bnot); BWL(BSIZE); SR(rsrc); DD(sd, rdst, BSIZE);
-                    
+                      if (sd == 3) /* bset reg,reg */
+                        BWL(LSIZE);
+
                     }
                   break;
               }
@@ -7976,7 +8326,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_60;
+                  goto op_semantics_62;
                   break;
               }
             break;
@@ -7985,7 +8335,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_60;
+                  goto op_semantics_62;
                   break;
               }
             break;
@@ -7994,7 +8344,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_60;
+                  goto op_semantics_62;
                   break;
               }
             break;
@@ -8003,14 +8353,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_61:
+                  op_semantics_63:
                     {
                       /** 1111 1100 1000 00sd rsrc rdst        fsub    %1%S1, %0 */
-#line 839 "rx-decode.opc"
+#line 909 "rx-decode.opc"
                       int sd AU = op[1] & 0x03;
-#line 839 "rx-decode.opc"
+#line 909 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 839 "rx-decode.opc"
+#line 909 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -8022,9 +8372,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("fsub     %1%S1, %0");
-#line 839 "rx-decode.opc"
-                      ID(fsub); DR(rdst); SD(sd, rsrc, LSIZE); F("-SZ-");
-                    
+#line 909 "rx-decode.opc"
+                      ID(fsub); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_;
+
                     }
                   break;
               }
@@ -8034,7 +8384,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_61;
+                  goto op_semantics_63;
                   break;
               }
             break;
@@ -8043,7 +8393,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_61;
+                  goto op_semantics_63;
                   break;
               }
             break;
@@ -8052,7 +8402,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_61;
+                  goto op_semantics_63;
                   break;
               }
             break;
@@ -8061,14 +8411,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_62:
+                  op_semantics_64:
                     {
                       /** 1111 1100 1000 01sd rsrc rdst        fcmp    %1%S1, %0 */
-#line 833 "rx-decode.opc"
+#line 903 "rx-decode.opc"
                       int sd AU = op[1] & 0x03;
-#line 833 "rx-decode.opc"
+#line 903 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 833 "rx-decode.opc"
+#line 903 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -8080,9 +8430,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("fcmp     %1%S1, %0");
-#line 833 "rx-decode.opc"
-                      ID(fcmp); DR(rdst); SD(sd, rsrc, LSIZE); F("OSZ-");
-                    
+#line 903 "rx-decode.opc"
+                      ID(fcmp); DR(rdst); SD(sd, rsrc, LSIZE); F_OSZ_;
+
                     }
                   break;
               }
@@ -8092,7 +8442,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_62;
+                  goto op_semantics_64;
                   break;
               }
             break;
@@ -8101,7 +8451,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_62;
+                  goto op_semantics_64;
                   break;
               }
             break;
@@ -8110,7 +8460,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_62;
+                  goto op_semantics_64;
                   break;
               }
             break;
@@ -8119,14 +8469,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_63:
+                  op_semantics_65:
                     {
                       /** 1111 1100 1000 10sd rsrc rdst        fadd    %1%S1, %0 */
-#line 827 "rx-decode.opc"
+#line 897 "rx-decode.opc"
                       int sd AU = op[1] & 0x03;
-#line 827 "rx-decode.opc"
+#line 897 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 827 "rx-decode.opc"
+#line 897 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -8138,9 +8488,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("fadd     %1%S1, %0");
-#line 827 "rx-decode.opc"
-                      ID(fadd); DR(rdst); SD(sd, rsrc, LSIZE); F("-SZ-");
-                    
+#line 897 "rx-decode.opc"
+                      ID(fadd); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_;
+
                     }
                   break;
               }
@@ -8150,7 +8500,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_63;
+                  goto op_semantics_65;
                   break;
               }
             break;
@@ -8159,7 +8509,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_63;
+                  goto op_semantics_65;
                   break;
               }
             break;
@@ -8168,7 +8518,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_63;
+                  goto op_semantics_65;
                   break;
               }
             break;
@@ -8177,14 +8527,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_64:
+                  op_semantics_66:
                     {
                       /** 1111 1100 1000 11sd rsrc rdst        fmul    %1%S1, %0 */
-#line 848 "rx-decode.opc"
+#line 918 "rx-decode.opc"
                       int sd AU = op[1] & 0x03;
-#line 848 "rx-decode.opc"
+#line 918 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 848 "rx-decode.opc"
+#line 918 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -8196,9 +8546,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("fmul     %1%S1, %0");
-#line 848 "rx-decode.opc"
-                      ID(fmul); DR(rdst); SD(sd, rsrc, LSIZE); F("-SZ-");
-                    
+#line 918 "rx-decode.opc"
+                      ID(fmul); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_;
+
                     }
                   break;
               }
@@ -8208,7 +8558,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_64;
+                  goto op_semantics_66;
                   break;
               }
             break;
@@ -8217,7 +8567,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_64;
+                  goto op_semantics_66;
                   break;
               }
             break;
@@ -8226,7 +8576,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_64;
+                  goto op_semantics_66;
                   break;
               }
             break;
@@ -8235,14 +8585,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_65:
+                  op_semantics_67:
                     {
                       /** 1111 1100 1001 00sd rsrc rdst        fdiv    %1%S1, %0 */
-#line 854 "rx-decode.opc"
+#line 924 "rx-decode.opc"
                       int sd AU = op[1] & 0x03;
-#line 854 "rx-decode.opc"
+#line 924 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 854 "rx-decode.opc"
+#line 924 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -8254,9 +8604,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("fdiv     %1%S1, %0");
-#line 854 "rx-decode.opc"
-                      ID(fdiv); DR(rdst); SD(sd, rsrc, LSIZE); F("-SZ-");
-                    
+#line 924 "rx-decode.opc"
+                      ID(fdiv); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_;
+
                     }
                   break;
               }
@@ -8266,7 +8616,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_65;
+                  goto op_semantics_67;
                   break;
               }
             break;
@@ -8275,7 +8625,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_65;
+                  goto op_semantics_67;
                   break;
               }
             break;
@@ -8284,7 +8634,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_65;
+                  goto op_semantics_67;
                   break;
               }
             break;
@@ -8293,14 +8643,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_66:
+                  op_semantics_68:
                     {
                       /** 1111 1100 1001 01sd rsrc rdst        ftoi    %1%S1, %0 */
-#line 842 "rx-decode.opc"
+#line 912 "rx-decode.opc"
                       int sd AU = op[1] & 0x03;
-#line 842 "rx-decode.opc"
+#line 912 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 842 "rx-decode.opc"
+#line 912 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -8312,9 +8662,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("ftoi     %1%S1, %0");
-#line 842 "rx-decode.opc"
-                      ID(ftoi); DR(rdst); SD(sd, rsrc, LSIZE); F("-SZ-");
-                    
+#line 912 "rx-decode.opc"
+                      ID(ftoi); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_;
+
                     }
                   break;
               }
@@ -8324,7 +8674,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_66;
+                  goto op_semantics_68;
                   break;
               }
             break;
@@ -8333,7 +8683,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_66;
+                  goto op_semantics_68;
                   break;
               }
             break;
@@ -8342,7 +8692,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_66;
+                  goto op_semantics_68;
                   break;
               }
             break;
@@ -8351,14 +8701,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_67:
+                  op_semantics_69:
                     {
                       /** 1111 1100 1001 10sd rsrc rdst        round   %1%S1, %0 */
-#line 857 "rx-decode.opc"
+#line 927 "rx-decode.opc"
                       int sd AU = op[1] & 0x03;
-#line 857 "rx-decode.opc"
+#line 927 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 857 "rx-decode.opc"
+#line 927 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -8370,9 +8720,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("round    %1%S1, %0");
-#line 857 "rx-decode.opc"
-                      ID(round); DR(rdst); SD(sd, rsrc, LSIZE); F("-SZ-");
-                    
+#line 927 "rx-decode.opc"
+                      ID(round); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_;
+
                     }
                   break;
               }
@@ -8382,7 +8732,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_67;
+                  goto op_semantics_69;
                   break;
               }
             break;
@@ -8391,7 +8741,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_67;
+                  goto op_semantics_69;
                   break;
               }
             break;
@@ -8400,7 +8750,123 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_67;
+                  goto op_semantics_69;
+                  break;
+              }
+            break;
+          case 0xa0:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  op_semantics_70:
+                    {
+                      /** 1111 1100 1010 00sd rsrc rdst        fsqrt   %1%S1, %0 */
+#line 1110 "rx-decode.opc"
+                      int sd AU = op[1] & 0x03;
+#line 1110 "rx-decode.opc"
+                      int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 1110 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1100 1010 00sd rsrc rdst    fsqrt   %1%S1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  sd = 0x%x,", sd);
+                          printf ("  rsrc = 0x%x,", rsrc);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("fsqrt    %1%S1, %0");
+#line 1110 "rx-decode.opc"
+                      ID(fsqrt); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_;
+
+                    }
+                  break;
+              }
+            break;
+          case 0xa1:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_70;
+                  break;
+              }
+            break;
+          case 0xa2:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_70;
+                  break;
+              }
+            break;
+          case 0xa3:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_70;
+                  break;
+              }
+            break;
+          case 0xa4:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  op_semantics_71:
+                    {
+                      /** 1111 1100 1010 01sd rsrc rdst        ftou    %1%S1, %0 */
+#line 1113 "rx-decode.opc"
+                      int sd AU = op[1] & 0x03;
+#line 1113 "rx-decode.opc"
+                      int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 1113 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1100 1010 01sd rsrc rdst    ftou    %1%S1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  sd = 0x%x,", sd);
+                          printf ("  rsrc = 0x%x,", rsrc);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("ftou     %1%S1, %0");
+#line 1113 "rx-decode.opc"
+                      ID(ftou); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_;
+
+                    }
+                  break;
+              }
+            break;
+          case 0xa5:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_71;
+                  break;
+              }
+            break;
+          case 0xa6:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_71;
+                  break;
+              }
+            break;
+          case 0xa7:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_71;
                   break;
               }
             break;
@@ -8409,16 +8875,16 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_68:
+                  op_semantics_72:
                     {
                       /** 1111 1100 1101 sz sd rdst cond       sc%1%s  %0 */
-#line 966 "rx-decode.opc"
+#line 1044 "rx-decode.opc"
                       int sz AU = (op[1] >> 2) & 0x03;
-#line 966 "rx-decode.opc"
+#line 1044 "rx-decode.opc"
                       int sd AU = op[1] & 0x03;
-#line 966 "rx-decode.opc"
+#line 1044 "rx-decode.opc"
                       int rdst AU = (op[2] >> 4) & 0x0f;
-#line 966 "rx-decode.opc"
+#line 1044 "rx-decode.opc"
                       int cond AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -8431,9 +8897,12 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  cond = 0x%x\n", cond);
                         }
                       SYNTAX("sc%1%s   %0");
-#line 966 "rx-decode.opc"
+#line 1044 "rx-decode.opc"
                       ID(sccnd); BWL(sz); DD (sd, rdst, sz); Scc(cond);
-                    
+
+                    /*----------------------------------------------------------------------*/
+                    /* RXv2 enhanced                                                           */
+
                     }
                   break;
               }
@@ -8443,7 +8912,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_68;
+                  goto op_semantics_72;
                   break;
               }
             break;
@@ -8452,7 +8921,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_68;
+                  goto op_semantics_72;
                   break;
               }
             break;
@@ -8461,7 +8930,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_68;
+                  goto op_semantics_72;
                   break;
               }
             break;
@@ -8470,7 +8939,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_68;
+                  goto op_semantics_72;
                   break;
               }
             break;
@@ -8479,7 +8948,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_68;
+                  goto op_semantics_72;
                   break;
               }
             break;
@@ -8488,7 +8957,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_68;
+                  goto op_semantics_72;
                   break;
               }
             break;
@@ -8497,7 +8966,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_68;
+                  goto op_semantics_72;
                   break;
               }
             break;
@@ -8506,7 +8975,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_68;
+                  goto op_semantics_72;
                   break;
               }
             break;
@@ -8515,7 +8984,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_68;
+                  goto op_semantics_72;
                   break;
               }
             break;
@@ -8524,7 +8993,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_68;
+                  goto op_semantics_72;
                   break;
               }
             break;
@@ -8533,7 +9002,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_68;
+                  goto op_semantics_72;
                   break;
               }
             break;
@@ -8556,16 +9025,16 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  op_semantics_69:
+                  op_semantics_73:
                     {
                       /** 1111 1100 111bit sd rdst cond        bm%2    #%1, %0%S0 */
-#line 909 "rx-decode.opc"
+#line 987 "rx-decode.opc"
                       int bit AU = (op[1] >> 2) & 0x07;
-#line 909 "rx-decode.opc"
+#line 987 "rx-decode.opc"
                       int sd AU = op[1] & 0x03;
-#line 909 "rx-decode.opc"
+#line 987 "rx-decode.opc"
                       int rdst AU = (op[2] >> 4) & 0x0f;
-#line 909 "rx-decode.opc"
+#line 987 "rx-decode.opc"
                       int cond AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -8578,20 +9047,20 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  cond = 0x%x\n", cond);
                         }
                       SYNTAX("bm%2     #%1, %0%S0");
-#line 909 "rx-decode.opc"
+#line 987 "rx-decode.opc"
                       ID(bmcc); BWL(BSIZE); S2cc(cond); SC(bit); DD(sd, rdst, BSIZE);
-                    
+
                     }
                   break;
                 case 0x0f:
-                  op_semantics_70:
+                  op_semantics_74:
                     {
                       /** 1111 1100 111bit sd rdst 1111        bnot    #%1, %0%S0 */
-#line 899 "rx-decode.opc"
+#line 975 "rx-decode.opc"
                       int bit AU = (op[1] >> 2) & 0x07;
-#line 899 "rx-decode.opc"
+#line 975 "rx-decode.opc"
                       int sd AU = op[1] & 0x03;
-#line 899 "rx-decode.opc"
+#line 975 "rx-decode.opc"
                       int rdst AU = (op[2] >> 4) & 0x0f;
                       if (trace)
                         {
@@ -8603,9 +9072,9 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("bnot     #%1, %0%S0");
-#line 899 "rx-decode.opc"
+#line 975 "rx-decode.opc"
                       ID(bnot); BWL(BSIZE); SC(bit); DD(sd, rdst, BSIZE);
-                    
+
                     }
                   break;
               }
@@ -8629,10 +9098,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -8655,10 +9124,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -8681,10 +9150,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -8707,10 +9176,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -8733,10 +9202,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -8759,10 +9228,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -8785,10 +9254,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -8811,10 +9280,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -8837,10 +9306,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -8863,10 +9332,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -8889,10 +9358,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -8915,10 +9384,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -8941,10 +9410,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -8967,10 +9436,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -8993,10 +9462,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -9019,10 +9488,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -9045,10 +9514,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -9071,10 +9540,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -9097,10 +9566,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -9123,10 +9592,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -9149,10 +9618,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -9175,10 +9644,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -9201,10 +9670,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -9227,10 +9696,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -9253,10 +9722,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -9279,10 +9748,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -9305,10 +9774,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -9331,10 +9800,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -9357,10 +9826,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -9383,10 +9852,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -9409,10 +9878,10 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0x0c:
                 case 0x0d:
                 case 0x0e:
-                  goto op_semantics_69;
+                  goto op_semantics_73;
                   break;
                 case 0x0f:
-                  goto op_semantics_70;
+                  goto op_semantics_74;
                   break;
               }
             break;
@@ -9428,24 +9897,28 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
+                  op_semantics_75:
                     {
-                      /** 1111 1101 0000 0000 srca srcb        mulhi   %1, %2 */
-#line 782 "rx-decode.opc"
+                      /** 1111 1101 0000 a000 srca srcb        mulhi   %1, %2, %0 */
+#line 852 "rx-decode.opc"
+                      int a AU = (op[1] >> 3) & 0x01;
+#line 852 "rx-decode.opc"
                       int srca AU = (op[2] >> 4) & 0x0f;
-#line 782 "rx-decode.opc"
+#line 852 "rx-decode.opc"
                       int srcb AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0000 0000 srca srcb    mulhi   %1, %2 */",
+                                 "/** 1111 1101 0000 a000 srca srcb    mulhi   %1, %2, %0 */",
                                  op[0], op[1], op[2]);
+                          printf ("  a = 0x%x,", a);
                           printf ("  srca = 0x%x,", srca);
                           printf ("  srcb = 0x%x\n", srcb);
                         }
-                      SYNTAX("mulhi    %1, %2");
-#line 782 "rx-decode.opc"
-                      ID(mulhi); SR(srca); S2R(srcb); F("----");
-                    
+                      SYNTAX("mulhi    %1, %2, %0");
+#line 852 "rx-decode.opc"
+                      ID(mulhi); DR(a+32); SR(srca); S2R(srcb); F_____;
+
                     }
                   break;
               }
@@ -9455,1399 +9928,2006 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
+                  op_semantics_76:
                     {
-                      /** 1111 1101 0000 0001 srca srcb        mullo   %1, %2 */
-#line 785 "rx-decode.opc"
+                      /** 1111 1101 0000 a001 srca srcb        mullo   %1, %2, %0 */
+#line 855 "rx-decode.opc"
+                      int a AU = (op[1] >> 3) & 0x01;
+#line 855 "rx-decode.opc"
                       int srca AU = (op[2] >> 4) & 0x0f;
-#line 785 "rx-decode.opc"
+#line 855 "rx-decode.opc"
                       int srcb AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0000 0001 srca srcb    mullo   %1, %2 */",
+                                 "/** 1111 1101 0000 a001 srca srcb    mullo   %1, %2, %0 */",
                                  op[0], op[1], op[2]);
+                          printf ("  a = 0x%x,", a);
                           printf ("  srca = 0x%x,", srca);
                           printf ("  srcb = 0x%x\n", srcb);
                         }
-                      SYNTAX("mullo    %1, %2");
-#line 785 "rx-decode.opc"
-                      ID(mullo); SR(srca); S2R(srcb); F("----");
-                    
+                      SYNTAX("mullo    %1, %2, %0");
+#line 855 "rx-decode.opc"
+                      ID(mullo); DR(a+32); SR(srca); S2R(srcb); F_____;
+
                     }
                   break;
               }
             break;
-          case 0x04:
+          case 0x02:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
+                  op_semantics_77:
                     {
-                      /** 1111 1101 0000 0100 srca srcb        machi   %1, %2 */
-#line 788 "rx-decode.opc"
+                      /** 1111 1101 0000 a010 srca srcb        mullh   %1, %2, %0 */
+#line 1083 "rx-decode.opc"
+                      int a AU = (op[1] >> 3) & 0x01;
+#line 1083 "rx-decode.opc"
                       int srca AU = (op[2] >> 4) & 0x0f;
-#line 788 "rx-decode.opc"
+#line 1083 "rx-decode.opc"
                       int srcb AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0000 0100 srca srcb    machi   %1, %2 */",
+                                 "/** 1111 1101 0000 a010 srca srcb    mullh   %1, %2, %0 */",
                                  op[0], op[1], op[2]);
+                          printf ("  a = 0x%x,", a);
                           printf ("  srca = 0x%x,", srca);
                           printf ("  srcb = 0x%x\n", srcb);
                         }
-                      SYNTAX("machi    %1, %2");
-#line 788 "rx-decode.opc"
-                      ID(machi); SR(srca); S2R(srcb); F("----");
-                    
+                      SYNTAX("mullh    %1, %2, %0");
+#line 1083 "rx-decode.opc"
+                      ID(mullh); DR(a+32); SR(srca); S2R(srcb); F_____;
+
                     }
                   break;
               }
             break;
-          case 0x05:
+          case 0x03:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
+                  op_semantics_78:
                     {
-                      /** 1111 1101 0000 0101 srca srcb        maclo   %1, %2 */
-#line 791 "rx-decode.opc"
+                      /** 1111 1101 0000 a011 srca srcb        emula   %1, %2, %0 */
+#line 1068 "rx-decode.opc"
+                      int a AU = (op[1] >> 3) & 0x01;
+#line 1068 "rx-decode.opc"
                       int srca AU = (op[2] >> 4) & 0x0f;
-#line 791 "rx-decode.opc"
+#line 1068 "rx-decode.opc"
                       int srcb AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0000 0101 srca srcb    maclo   %1, %2 */",
+                                 "/** 1111 1101 0000 a011 srca srcb    emula   %1, %2, %0 */",
                                  op[0], op[1], op[2]);
+                          printf ("  a = 0x%x,", a);
                           printf ("  srca = 0x%x,", srca);
                           printf ("  srcb = 0x%x\n", srcb);
                         }
-                      SYNTAX("maclo    %1, %2");
-#line 791 "rx-decode.opc"
-                      ID(maclo); SR(srca); S2R(srcb); F("----");
-                    
+                      SYNTAX("emula    %1, %2, %0");
+#line 1068 "rx-decode.opc"
+                      ID(emula); DR(a+32); SR(srca); S2R(srcb); F_____;
+
                     }
                   break;
               }
             break;
-          case 0x17:
+          case 0x04:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
+                  op_semantics_79:
                     {
-                      /** 1111 1101 0001 0111 0000 rsrc        mvtachi %1 */
-#line 794 "rx-decode.opc"
-                      int rsrc AU = op[2] & 0x0f;
-                      if (trace)
-                        {
-                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0001 0111 0000 rsrc    mvtachi %1 */",
-                                 op[0], op[1], op[2]);
-                          printf ("  rsrc = 0x%x\n", rsrc);
-                        }
-                      SYNTAX("mvtachi  %1");
-#line 794 "rx-decode.opc"
-                      ID(mvtachi); SR(rsrc); F("----");
-                    
-                    }
-                  break;
-                case 0x10:
-                    {
-                      /** 1111 1101 0001 0111 0001 rsrc        mvtaclo %1 */
-#line 797 "rx-decode.opc"
-                      int rsrc AU = op[2] & 0x0f;
+                      /** 1111 1101 0000 a100 srca srcb        machi   %1, %2, %0 */
+#line 858 "rx-decode.opc"
+                      int a AU = (op[1] >> 3) & 0x01;
+#line 858 "rx-decode.opc"
+                      int srca AU = (op[2] >> 4) & 0x0f;
+#line 858 "rx-decode.opc"
+                      int srcb AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0001 0111 0001 rsrc    mvtaclo %1 */",
+                                 "/** 1111 1101 0000 a100 srca srcb    machi   %1, %2, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  rsrc = 0x%x\n", rsrc);
+                          printf ("  a = 0x%x,", a);
+                          printf ("  srca = 0x%x,", srca);
+                          printf ("  srcb = 0x%x\n", srcb);
                         }
-                      SYNTAX("mvtaclo  %1");
-#line 797 "rx-decode.opc"
-                      ID(mvtaclo); SR(rsrc); F("----");
-                    
+                      SYNTAX("machi    %1, %2, %0");
+#line 858 "rx-decode.opc"
+                      ID(machi); DR(a+32); SR(srca); S2R(srcb); F_____;
+
                     }
                   break;
-                default: UNSUPPORTED(); break;
               }
             break;
-          case 0x18:
+          case 0x05:
               GETBYTE ();
-              switch (op[2] & 0xef)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
+                  op_semantics_80:
                     {
-                      /** 1111 1101 0001 1000 000i 0000        racw    #%1 */
-#line 809 "rx-decode.opc"
-                      int i AU = (op[2] >> 4) & 0x01;
+                      /** 1111 1101 0000 a101 srca srcb        maclo   %1, %2, %0 */
+#line 861 "rx-decode.opc"
+                      int a AU = (op[1] >> 3) & 0x01;
+#line 861 "rx-decode.opc"
+                      int srca AU = (op[2] >> 4) & 0x0f;
+#line 861 "rx-decode.opc"
+                      int srcb AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0001 1000 000i 0000    racw    #%1 */",
+                                 "/** 1111 1101 0000 a101 srca srcb    maclo   %1, %2, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  i = 0x%x\n", i);
+                          printf ("  a = 0x%x,", a);
+                          printf ("  srca = 0x%x,", srca);
+                          printf ("  srcb = 0x%x\n", srcb);
                         }
-                      SYNTAX("racw     #%1");
-#line 809 "rx-decode.opc"
-                      ID(racw); SC(i+1); F("----");
-                    
-                    /*----------------------------------------------------------------------*/
-                    /* SAT                                                                     */
-                    
+                      SYNTAX("maclo    %1, %2, %0");
+#line 861 "rx-decode.opc"
+                      ID(maclo); DR(a+32); SR(srca); S2R(srcb); F_____;
+
                     }
                   break;
-                default: UNSUPPORTED(); break;
               }
             break;
-          case 0x1f:
+          case 0x06:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
+                  op_semantics_81:
                     {
-                      /** 1111 1101 0001 1111 0000 rdst        mvfachi %0 */
-#line 800 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
-                      if (trace)
-                        {
-                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0001 1111 0000 rdst    mvfachi %0 */",
-                                 op[0], op[1], op[2]);
-                          printf ("  rdst = 0x%x\n", rdst);
-                        }
-                      SYNTAX("mvfachi  %0");
-#line 800 "rx-decode.opc"
-                      ID(mvfachi); DR(rdst); F("----");
-                    
-                    }
-                  break;
-                case 0x10:
-                    {
-                      /** 1111 1101 0001 1111 0001 rdst        mvfaclo %0 */
-#line 806 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
-                      if (trace)
-                        {
-                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0001 1111 0001 rdst    mvfaclo %0 */",
-                                 op[0], op[1], op[2]);
-                          printf ("  rdst = 0x%x\n", rdst);
-                        }
-                      SYNTAX("mvfaclo  %0");
-#line 806 "rx-decode.opc"
-                      ID(mvfaclo); DR(rdst); F("----");
-                    
-                    }
-                  break;
-                case 0x20:
-                    {
-                      /** 1111 1101 0001 1111 0010 rdst        mvfacmi %0 */
-#line 803 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
+                      /** 1111 1101 0000 a110 srca srcb        maclh   %1, %2, %0 */
+#line 1071 "rx-decode.opc"
+                      int a AU = (op[1] >> 3) & 0x01;
+#line 1071 "rx-decode.opc"
+                      int srca AU = (op[2] >> 4) & 0x0f;
+#line 1071 "rx-decode.opc"
+                      int srcb AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0001 1111 0010 rdst    mvfacmi %0 */",
+                                 "/** 1111 1101 0000 a110 srca srcb    maclh   %1, %2, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  rdst = 0x%x\n", rdst);
+                          printf ("  a = 0x%x,", a);
+                          printf ("  srca = 0x%x,", srca);
+                          printf ("  srcb = 0x%x\n", srcb);
                         }
-                      SYNTAX("mvfacmi  %0");
-#line 803 "rx-decode.opc"
-                      ID(mvfacmi); DR(rdst); F("----");
-                    
+                      SYNTAX("maclh    %1, %2, %0");
+#line 1071 "rx-decode.opc"
+                      ID(maclh); DR(a+32); SR(srca); S2R(srcb); F_____;
+
                     }
                   break;
-                default: UNSUPPORTED(); break;
               }
             break;
-          case 0x20:
+          case 0x07:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_71:
+                  op_semantics_82:
                     {
-                      /** 1111 1101 0010 0p sz rdst rsrc       mov%s   %1, %0 */
-#line 324 "rx-decode.opc"
-                      int p AU = (op[1] >> 2) & 0x01;
-#line 324 "rx-decode.opc"
-                      int sz AU = op[1] & 0x03;
-#line 324 "rx-decode.opc"
-                      int rdst AU = (op[2] >> 4) & 0x0f;
-#line 324 "rx-decode.opc"
-                      int rsrc AU = op[2] & 0x0f;
+                      /** 1111 1101 0000 a111 srca srcb        emaca   %1, %2, %0 */
+#line 1062 "rx-decode.opc"
+                      int a AU = (op[1] >> 3) & 0x01;
+#line 1062 "rx-decode.opc"
+                      int srca AU = (op[2] >> 4) & 0x0f;
+#line 1062 "rx-decode.opc"
+                      int srcb AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0010 0p sz rdst rsrc   mov%s   %1, %0 */",
+                                 "/** 1111 1101 0000 a111 srca srcb    emaca   %1, %2, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  p = 0x%x,", p);
-                          printf ("  sz = 0x%x,", sz);
-                          printf ("  rdst = 0x%x,", rdst);
-                          printf ("  rsrc = 0x%x\n", rsrc);
+                          printf ("  a = 0x%x,", a);
+                          printf ("  srca = 0x%x,", srca);
+                          printf ("  srcb = 0x%x\n", srcb);
                         }
-                      SYNTAX("mov%s    %1, %0");
-#line 324 "rx-decode.opc"
-                      ID(mov); sBWL (sz); SR(rsrc); F("----");
-                      OP(0, p ? RX_Operand_Predec : RX_Operand_Postinc, rdst, 0);
-                    
+                      SYNTAX("emaca    %1, %2, %0");
+#line 1062 "rx-decode.opc"
+                      ID(emaca); DR(a+32); SR(srca); S2R(srcb); F_____;
+
                     }
                   break;
               }
             break;
-          case 0x21:
+          case 0x08:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_71;
+                  goto op_semantics_75;
                   break;
               }
             break;
-          case 0x22:
+          case 0x09:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_71;
+                  goto op_semantics_76;
                   break;
               }
             break;
-          case 0x24:
+          case 0x0a:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_71;
+                  goto op_semantics_77;
                   break;
               }
             break;
-          case 0x25:
+          case 0x0b:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_71;
+                  goto op_semantics_78;
                   break;
               }
             break;
-          case 0x26:
+          case 0x0c:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_71;
+                  goto op_semantics_79;
                   break;
               }
             break;
-          case 0x28:
+          case 0x0d:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_72:
-                    {
-                      /** 1111 1101 0010 1p sz rsrc rdst       mov%s   %1, %0 */
-#line 328 "rx-decode.opc"
-                      int p AU = (op[1] >> 2) & 0x01;
-#line 328 "rx-decode.opc"
-                      int sz AU = op[1] & 0x03;
-#line 328 "rx-decode.opc"
-                      int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 328 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
-                      if (trace)
-                        {
-                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0010 1p sz rsrc rdst   mov%s   %1, %0 */",
-                                 op[0], op[1], op[2]);
-                          printf ("  p = 0x%x,", p);
-                          printf ("  sz = 0x%x,", sz);
-                          printf ("  rsrc = 0x%x,", rsrc);
-                          printf ("  rdst = 0x%x\n", rdst);
-                        }
-                      SYNTAX("mov%s    %1, %0");
-#line 328 "rx-decode.opc"
-                      ID(mov); sBWL (sz); DR(rdst); F("----");
-                      OP(1, p ? RX_Operand_Predec : RX_Operand_Postinc, rsrc, 0);
-                    
-                    }
+                  goto op_semantics_80;
                   break;
               }
             break;
-          case 0x29:
+          case 0x0e:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_72;
+                  goto op_semantics_81;
                   break;
               }
             break;
-          case 0x2a:
+          case 0x0f:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_72;
+                  goto op_semantics_82;
                   break;
               }
             break;
-          case 0x2c:
+          case 0x17:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0x70)
               {
                 case 0x00:
-                  goto op_semantics_72;
+                    {
+                      /** 1111 1101 0001 0111 a000 rsrc        mvtachi %1, %0 */
+#line 864 "rx-decode.opc"
+                      int a AU = (op[2] >> 7) & 0x01;
+#line 864 "rx-decode.opc"
+                      int rsrc AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0001 0111 a000 rsrc    mvtachi %1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  a = 0x%x,", a);
+                          printf ("  rsrc = 0x%x\n", rsrc);
+                        }
+                      SYNTAX("mvtachi  %1, %0");
+#line 864 "rx-decode.opc"
+                      ID(mvtachi); DR(a+32); SR(rsrc); F_____;
+
+                    }
                   break;
-              }
-            break;
-          case 0x2d:
-              GETBYTE ();
-              switch (op[2] & 0x00)
-              {
-                case 0x00:
-                  goto op_semantics_72;
+                case 0x10:
+                    {
+                      /** 1111 1101 0001 0111 a001 rsrc        mvtaclo %1, %0 */
+#line 867 "rx-decode.opc"
+                      int a AU = (op[2] >> 7) & 0x01;
+#line 867 "rx-decode.opc"
+                      int rsrc AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0001 0111 a001 rsrc    mvtaclo %1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  a = 0x%x,", a);
+                          printf ("  rsrc = 0x%x\n", rsrc);
+                        }
+                      SYNTAX("mvtaclo  %1, %0");
+#line 867 "rx-decode.opc"
+                      ID(mvtaclo); DR(a+32); SR(rsrc); F_____;
+
+                    }
                   break;
-              }
-            break;
-          case 0x2e:
-              GETBYTE ();
-              switch (op[2] & 0x00)
-              {
-                case 0x00:
-                  goto op_semantics_72;
-                  break;
-              }
-            break;
-          case 0x38:
-              GETBYTE ();
-              switch (op[2] & 0x00)
-              {
-                case 0x00:
-                  op_semantics_73:
+                case 0x30:
                     {
-                      /** 1111 1101 0011 1p sz rsrc rdst       movu%s  %1, %0 */
-#line 338 "rx-decode.opc"
-                      int p AU = (op[1] >> 2) & 0x01;
-#line 338 "rx-decode.opc"
-                      int sz AU = op[1] & 0x03;
-#line 338 "rx-decode.opc"
-                      int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 338 "rx-decode.opc"
+                      /** 1111 1101 0001 0111 a011 rdst        mvtacgu %0, %1 */
+#line 1089 "rx-decode.opc"
+                      int a AU = (op[2] >> 7) & 0x01;
+#line 1089 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0011 1p sz rsrc rdst   movu%s  %1, %0 */",
+                                 "/** 1111 1101 0001 0111 a011 rdst    mvtacgu %0, %1 */",
                                  op[0], op[1], op[2]);
-                          printf ("  p = 0x%x,", p);
-                          printf ("  sz = 0x%x,", sz);
-                          printf ("  rsrc = 0x%x,", rsrc);
+                          printf ("  a = 0x%x,", a);
                           printf ("  rdst = 0x%x\n", rdst);
                         }
-                      SYNTAX("movu%s   %1, %0");
-#line 338 "rx-decode.opc"
-                      ID(mov); uBWL (sz); DR(rdst); F("----");
-                       OP(1, p ? RX_Operand_Predec : RX_Operand_Postinc, rsrc, 0);
-                    
-                    /*----------------------------------------------------------------------*/
-                    /* PUSH/POP                                                                */
-                    
+                      SYNTAX("mvtacgu  %0, %1");
+#line 1089 "rx-decode.opc"
+                      ID(mvtacgu); DR(a+32); SR(rdst); F_____;
+
                     }
                   break;
+                default: UNSUPPORTED(); break;
               }
             break;
-          case 0x39:
-              GETBYTE ();
-              switch (op[2] & 0x00)
-              {
-                case 0x00:
-                  goto op_semantics_73;
-                  break;
-              }
-            break;
-          case 0x3a:
-              GETBYTE ();
-              switch (op[2] & 0x00)
-              {
-                case 0x00:
-                  goto op_semantics_73;
-                  break;
-              }
-            break;
-          case 0x3c:
-              GETBYTE ();
-              switch (op[2] & 0x00)
-              {
-                case 0x00:
-                  goto op_semantics_73;
-                  break;
-              }
-            break;
-          case 0x3d:
-              GETBYTE ();
-              switch (op[2] & 0x00)
-              {
-                case 0x00:
-                  goto op_semantics_73;
-                  break;
-              }
-            break;
-          case 0x3e:
-              GETBYTE ();
-              switch (op[2] & 0x00)
-              {
-                case 0x00:
-                  goto op_semantics_73;
-                  break;
-              }
-            break;
-          case 0x60:
+          case 0x18:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0x6f)
               {
                 case 0x00:
                     {
-                      /** 1111 1101 0110 0000 rsrc rdst        shlr    %2, %0 */
-#line 663 "rx-decode.opc"
-                      int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 663 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
+                      /** 1111 1101 0001 1000 a00i 0000        racw    #%1, %0 */
+#line 879 "rx-decode.opc"
+                      int a AU = (op[2] >> 7) & 0x01;
+#line 879 "rx-decode.opc"
+                      int i AU = (op[2] >> 4) & 0x01;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0110 0000 rsrc rdst    shlr    %2, %0 */",
+                                 "/** 1111 1101 0001 1000 a00i 0000    racw    #%1, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  rsrc = 0x%x,", rsrc);
-                          printf ("  rdst = 0x%x\n", rdst);
+                          printf ("  a = 0x%x,", a);
+                          printf ("  i = 0x%x\n", i);
                         }
-                      SYNTAX("shlr     %2, %0");
-#line 663 "rx-decode.opc"
-                      ID(shlr); S2R(rsrc); SR(rdst); DR(rdst); F("-SZC");
-                    
+                      SYNTAX("racw     #%1, %0");
+#line 879 "rx-decode.opc"
+                      ID(racw); SC(i+1); DR(a+32); F_____;
+
+                    /*----------------------------------------------------------------------*/
+                    /* SAT                                                                     */
+
                     }
                   break;
-              }
-            break;
-          case 0x61:
-              GETBYTE ();
-              switch (op[2] & 0x00)
-              {
-                case 0x00:
+                case 0x40:
                     {
-                      /** 1111 1101 0110 0001 rsrc rdst        shar    %2, %0 */
-#line 653 "rx-decode.opc"
-                      int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 653 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
+                      /** 1111 1101 0001 1000 a10i 0000        rdacw   #%1, %0 */
+#line 1098 "rx-decode.opc"
+                      int a AU = (op[2] >> 7) & 0x01;
+#line 1098 "rx-decode.opc"
+                      int i AU = (op[2] >> 4) & 0x01;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0110 0001 rsrc rdst    shar    %2, %0 */",
+                                 "/** 1111 1101 0001 1000 a10i 0000    rdacw   #%1, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  rsrc = 0x%x,", rsrc);
-                          printf ("  rdst = 0x%x\n", rdst);
+                          printf ("  a = 0x%x,", a);
+                          printf ("  i = 0x%x\n", i);
                         }
-                      SYNTAX("shar     %2, %0");
-#line 653 "rx-decode.opc"
-                      ID(shar); S2R(rsrc); SR(rdst); DR(rdst); F("0SZC");
-                    
+                      SYNTAX("rdacw    #%1, %0");
+#line 1098 "rx-decode.opc"
+                      ID(rdacw); SC(i+1); DR(a+32); F_____;
+
                     }
                   break;
+                default: UNSUPPORTED(); break;
               }
             break;
-          case 0x62:
+          case 0x19:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0x6f)
               {
                 case 0x00:
                     {
-                      /** 1111 1101 0110 0010 rsrc rdst        shll    %2, %0 */
-#line 643 "rx-decode.opc"
-                      int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 643 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
+                      /** 1111 1101 0001 1001 a00i 0000        racl    #%1, %0 */
+#line 1092 "rx-decode.opc"
+                      int a AU = (op[2] >> 7) & 0x01;
+#line 1092 "rx-decode.opc"
+                      int i AU = (op[2] >> 4) & 0x01;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0110 0010 rsrc rdst    shll    %2, %0 */",
+                                 "/** 1111 1101 0001 1001 a00i 0000    racl    #%1, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  rsrc = 0x%x,", rsrc);
-                          printf ("  rdst = 0x%x\n", rdst);
+                          printf ("  a = 0x%x,", a);
+                          printf ("  i = 0x%x\n", i);
                         }
-                      SYNTAX("shll     %2, %0");
-#line 643 "rx-decode.opc"
-                      ID(shll); S2R(rsrc); SR(rdst); DR(rdst); F("OSZC");
-                    
+                      SYNTAX("racl     #%1, %0");
+#line 1092 "rx-decode.opc"
+                      ID(racl); SC(i+1); DR(a+32); F_____;
+
                     }
                   break;
-              }
-            break;
-          case 0x64:
-              GETBYTE ();
-              switch (op[2] & 0x00)
-              {
-                case 0x00:
+                case 0x40:
                     {
-                      /** 1111 1101 0110 0100 rsrc rdst        rotr    %1, %0 */
-#line 687 "rx-decode.opc"
-                      int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 687 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
+                      /** 1111 1101 0001 1001 a10i 0000        rdacl   #%1, %0 */
+#line 1095 "rx-decode.opc"
+                      int a AU = (op[2] >> 7) & 0x01;
+#line 1095 "rx-decode.opc"
+                      int i AU = (op[2] >> 4) & 0x01;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0110 0100 rsrc rdst    rotr    %1, %0 */",
+                                 "/** 1111 1101 0001 1001 a10i 0000    rdacl   #%1, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  rsrc = 0x%x,", rsrc);
-                          printf ("  rdst = 0x%x\n", rdst);
+                          printf ("  a = 0x%x,", a);
+                          printf ("  i = 0x%x\n", i);
                         }
-                      SYNTAX("rotr     %1, %0");
-#line 687 "rx-decode.opc"
-                      ID(rotr); SR(rsrc); DR(rdst); F("-SZC");
-                    
+                      SYNTAX("rdacl    #%1, %0");
+#line 1095 "rx-decode.opc"
+                      ID(rdacl); SC(i+1); DR(a+32); F_____;
+
                     }
                   break;
+                default: UNSUPPORTED(); break;
               }
             break;
-          case 0x65:
+          case 0x1e:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0x30)
               {
                 case 0x00:
+                  op_semantics_83:
                     {
-                      /** 1111 1101 0110 0101 rsrc rdst        revw    %1, %0 */
-#line 690 "rx-decode.opc"
-                      int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 690 "rx-decode.opc"
+                      /** 1111 1101 0001 111i a m00 rdst       mvfachi #%2, %1, %0 */
+#line 870 "rx-decode.opc"
+                      int i AU = op[1] & 0x01;
+#line 870 "rx-decode.opc"
+                      int a AU = (op[2] >> 7) & 0x01;
+#line 870 "rx-decode.opc"
+                      int m AU = (op[2] >> 6) & 0x01;
+#line 870 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0110 0101 rsrc rdst    revw    %1, %0 */",
+                                 "/** 1111 1101 0001 111i a m00 rdst   mvfachi #%2, %1, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  rsrc = 0x%x,", rsrc);
+                          printf ("  i = 0x%x,", i);
+                          printf ("  a = 0x%x,", a);
+                          printf ("  m = 0x%x,", m);
                           printf ("  rdst = 0x%x\n", rdst);
                         }
-                      SYNTAX("revw     %1, %0");
-#line 690 "rx-decode.opc"
-                      ID(revw); SR(rsrc); DR(rdst);
-                    
+                      SYNTAX("mvfachi  #%2, %1, %0");
+#line 870 "rx-decode.opc"
+                      ID(mvfachi); S2C(((i^1)<<1)|m); SR(a+32); DR(rdst); F_____;
+
                     }
                   break;
-              }
-            break;
-          case 0x66:
-              GETBYTE ();
-              switch (op[2] & 0x00)
-              {
-                case 0x00:
+                case 0x10:
+                  op_semantics_84:
                     {
-                      /** 1111 1101 0110 0110 rsrc rdst        rotl    %1, %0 */
-#line 681 "rx-decode.opc"
-                      int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 681 "rx-decode.opc"
+                      /** 1111 1101 0001 111i a m01 rdst       mvfaclo #%2, %1, %0 */
+#line 876 "rx-decode.opc"
+                      int i AU = op[1] & 0x01;
+#line 876 "rx-decode.opc"
+                      int a AU = (op[2] >> 7) & 0x01;
+#line 876 "rx-decode.opc"
+                      int m AU = (op[2] >> 6) & 0x01;
+#line 876 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0110 0110 rsrc rdst    rotl    %1, %0 */",
+                                 "/** 1111 1101 0001 111i a m01 rdst   mvfaclo #%2, %1, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  rsrc = 0x%x,", rsrc);
+                          printf ("  i = 0x%x,", i);
+                          printf ("  a = 0x%x,", a);
+                          printf ("  m = 0x%x,", m);
                           printf ("  rdst = 0x%x\n", rdst);
                         }
-                      SYNTAX("rotl     %1, %0");
-#line 681 "rx-decode.opc"
-                      ID(rotl); SR(rsrc); DR(rdst); F("-SZC");
-                    
+                      SYNTAX("mvfaclo  #%2, %1, %0");
+#line 876 "rx-decode.opc"
+                      ID(mvfaclo); S2C(((i^1)<<1)|m); SR(a+32); DR(rdst); F_____;
+
                     }
                   break;
-              }
-            break;
-          case 0x67:
-              GETBYTE ();
-              switch (op[2] & 0x00)
-              {
-                case 0x00:
+                case 0x20:
+                  op_semantics_85:
                     {
-                      /** 1111 1101 0110 0111 rsrc rdst        revl    %1, %0 */
-#line 693 "rx-decode.opc"
-                      int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 693 "rx-decode.opc"
+                      /** 1111 1101 0001 111i a m10 rdst       mvfacmi #%2, %1, %0 */
+#line 873 "rx-decode.opc"
+                      int i AU = op[1] & 0x01;
+#line 873 "rx-decode.opc"
+                      int a AU = (op[2] >> 7) & 0x01;
+#line 873 "rx-decode.opc"
+                      int m AU = (op[2] >> 6) & 0x01;
+#line 873 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0110 0111 rsrc rdst    revl    %1, %0 */",
+                                 "/** 1111 1101 0001 111i a m10 rdst   mvfacmi #%2, %1, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  rsrc = 0x%x,", rsrc);
+                          printf ("  i = 0x%x,", i);
+                          printf ("  a = 0x%x,", a);
+                          printf ("  m = 0x%x,", m);
                           printf ("  rdst = 0x%x\n", rdst);
                         }
-                      SYNTAX("revl     %1, %0");
-#line 693 "rx-decode.opc"
-                      ID(revl); SR(rsrc); DR(rdst);
-                    
-                    /*----------------------------------------------------------------------*/
-                    /* BRANCH                                                          */
-                    
+                      SYNTAX("mvfacmi  #%2, %1, %0");
+#line 873 "rx-decode.opc"
+                      ID(mvfacmi); S2C(((i^1)<<1)|m); SR(a+32); DR(rdst); F_____;
+
                     }
                   break;
-              }
-            break;
-          case 0x68:
-              GETBYTE ();
-              switch (op[2] & 0x00)
-              {
-                case 0x00:
-                  op_semantics_74:
+                case 0x30:
+                  op_semantics_86:
                     {
-                      /** 1111 1101 0110 100c rsrc rdst        mvtc    %1, %0 */
-#line 936 "rx-decode.opc"
-                      int c AU = op[1] & 0x01;
-#line 936 "rx-decode.opc"
-                      int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 936 "rx-decode.opc"
+                      /** 1111 1101 0001 111i a m11 rdst       mvfacgu #%2, %1, %0 */
+#line 1086 "rx-decode.opc"
+                      int i AU = op[1] & 0x01;
+#line 1086 "rx-decode.opc"
+                      int a AU = (op[2] >> 7) & 0x01;
+#line 1086 "rx-decode.opc"
+                      int m AU = (op[2] >> 6) & 0x01;
+#line 1086 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0110 100c rsrc rdst    mvtc    %1, %0 */",
+                                 "/** 1111 1101 0001 111i a m11 rdst   mvfacgu #%2, %1, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  c = 0x%x,", c);
-                          printf ("  rsrc = 0x%x,", rsrc);
+                          printf ("  i = 0x%x,", i);
+                          printf ("  a = 0x%x,", a);
+                          printf ("  m = 0x%x,", m);
                           printf ("  rdst = 0x%x\n", rdst);
                         }
-                      SYNTAX("mvtc     %1, %0");
-#line 936 "rx-decode.opc"
-                      ID(mov); SR(rsrc); DR(c*16+rdst + 16);
-                    
+                      SYNTAX("mvfacgu  #%2, %1, %0");
+#line 1086 "rx-decode.opc"
+                      ID(mvfacgu); S2C(((i^1)<<1)|m); SR(a+32); DR(rdst); F_____;
+
                     }
                   break;
               }
             break;
-          case 0x69:
+          case 0x1f:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0x30)
               {
                 case 0x00:
-                  goto op_semantics_74;
+                  goto op_semantics_83;
+                  break;
+                case 0x10:
+                  goto op_semantics_84;
+                  break;
+                case 0x20:
+                  goto op_semantics_85;
+                  break;
+                case 0x30:
+                  goto op_semantics_86;
                   break;
               }
             break;
-          case 0x6a:
+          case 0x20:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_75:
+                  op_semantics_87:
                     {
-                      /** 1111 1101 0110 101s rsrc rdst        mvfc    %1, %0 */
-#line 939 "rx-decode.opc"
-                      int s AU = op[1] & 0x01;
-#line 939 "rx-decode.opc"
-                      int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 939 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
+                      /** 1111 1101 0010 0p sz rdst rsrc       mov%s   %1, %0 */
+#line 348 "rx-decode.opc"
+                      int p AU = (op[1] >> 2) & 0x01;
+#line 348 "rx-decode.opc"
+                      int sz AU = op[1] & 0x03;
+#line 348 "rx-decode.opc"
+                      int rdst AU = (op[2] >> 4) & 0x0f;
+#line 348 "rx-decode.opc"
+                      int rsrc AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0110 101s rsrc rdst    mvfc    %1, %0 */",
+                                 "/** 1111 1101 0010 0p sz rdst rsrc   mov%s   %1, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  s = 0x%x,", s);
-                          printf ("  rsrc = 0x%x,", rsrc);
-                          printf ("  rdst = 0x%x\n", rdst);
+                          printf ("  p = 0x%x,", p);
+                          printf ("  sz = 0x%x,", sz);
+                          printf ("  rdst = 0x%x,", rdst);
+                          printf ("  rsrc = 0x%x\n", rsrc);
                         }
-                      SYNTAX("mvfc     %1, %0");
-#line 939 "rx-decode.opc"
-                      ID(mov); SR((s*16+rsrc) + 16); DR(rdst);
-                    
-                    /*----------------------------------------------------------------------*/
-                    /* INTERRUPTS                                                              */
-                    
+                      SYNTAX("mov%s    %1, %0");
+#line 348 "rx-decode.opc"
+                      ID(mov); sBWL (sz); SR(rsrc); F_____;
+                      OP(0, p ? RX_Operand_Predec : RX_Operand_Postinc, rdst, 0);
+
                     }
                   break;
               }
             break;
-          case 0x6b:
+          case 0x21:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_75;
+                  goto op_semantics_87;
                   break;
               }
             break;
-          case 0x6c:
+          case 0x22:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_76:
-                    {
-                      /** 1111 1101 0110 110i mmmm rdst        rotr    #%1, %0 */
-#line 684 "rx-decode.opc"
-                      int i AU = op[1] & 0x01;
-#line 684 "rx-decode.opc"
-                      int mmmm AU = (op[2] >> 4) & 0x0f;
-#line 684 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
-                      if (trace)
-                        {
-                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0110 110i mmmm rdst    rotr    #%1, %0 */",
-                                 op[0], op[1], op[2]);
-                          printf ("  i = 0x%x,", i);
-                          printf ("  mmmm = 0x%x,", mmmm);
-                          printf ("  rdst = 0x%x\n", rdst);
-                        }
-                      SYNTAX("rotr     #%1, %0");
-#line 684 "rx-decode.opc"
-                      ID(rotr); SC(i*16+mmmm); DR(rdst); F("-SZC");
-                    
-                    }
+                  goto op_semantics_87;
                   break;
               }
             break;
-          case 0x6d:
+          case 0x24:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_76;
+                  goto op_semantics_87;
                   break;
               }
             break;
-          case 0x6e:
+          case 0x25:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_77:
-                    {
-                      /** 1111 1101 0110 111i mmmm rdst        rotl    #%1, %0 */
-#line 678 "rx-decode.opc"
-                      int i AU = op[1] & 0x01;
-#line 678 "rx-decode.opc"
-                      int mmmm AU = (op[2] >> 4) & 0x0f;
-#line 678 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
-                      if (trace)
-                        {
-                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0110 111i mmmm rdst    rotl    #%1, %0 */",
-                                 op[0], op[1], op[2]);
-                          printf ("  i = 0x%x,", i);
-                          printf ("  mmmm = 0x%x,", mmmm);
-                          printf ("  rdst = 0x%x\n", rdst);
-                        }
-                      SYNTAX("rotl     #%1, %0");
-#line 678 "rx-decode.opc"
-                      ID(rotl); SC(i*16+mmmm); DR(rdst); F("-SZC");
-                    
-                    }
+                  goto op_semantics_87;
                   break;
               }
             break;
-          case 0x6f:
+          case 0x26:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_77;
+                  goto op_semantics_87;
                   break;
               }
             break;
-          case 0x70:
+          case 0x27:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
-                case 0x20:
-                  op_semantics_78:
+                case 0x00:
                     {
-                      /** 1111 1101 0111 im00 0010rdst adc     #%1, %0 */
-#line 468 "rx-decode.opc"
-                      int im AU = (op[1] >> 2) & 0x03;
-#line 468 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
+                      /** 1111 1101 0010 0111 rdst rsrc        movco   %1, [%0] */
+#line 1050 "rx-decode.opc"
+                      int rdst AU = (op[2] >> 4) & 0x0f;
+#line 1050 "rx-decode.opc"
+                      int rsrc AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0111 im00 0010rdst     adc     #%1, %0 */",
+                                 "/** 1111 1101 0010 0111 rdst rsrc    movco   %1, [%0] */",
                                  op[0], op[1], op[2]);
-                          printf ("  im = 0x%x,", im);
-                          printf ("  rdst = 0x%x\n", rdst);
+                          printf ("  rdst = 0x%x,", rdst);
+                          printf ("  rsrc = 0x%x\n", rsrc);
                         }
-                      SYNTAX("adc      #%1, %0");
-#line 468 "rx-decode.opc"
-                      ID(adc); SC(IMMex(im)); DR(rdst); F("OSZC");
-                    
+                      SYNTAX("movco    %1, [%0]");
+#line 1050 "rx-decode.opc"
+                       ID(movco); SR(rsrc); DR(rdst); F_____;
+
                     }
                   break;
-                case 0x40:
-                  op_semantics_79:
+              }
+            break;
+          case 0x28:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  op_semantics_88:
                     {
-                      /** 1111 1101 0111 im00 0100rdst max     #%1, %0 */
-#line 550 "rx-decode.opc"
-                      int im AU = (op[1] >> 2) & 0x03;
-#line 550 "rx-decode.opc"
+                      /** 1111 1101 0010 1p sz rsrc rdst       mov%s   %1, %0 */
+#line 352 "rx-decode.opc"
+                      int p AU = (op[1] >> 2) & 0x01;
+#line 352 "rx-decode.opc"
+                      int sz AU = op[1] & 0x03;
+#line 352 "rx-decode.opc"
+                      int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 352 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0111 im00 0100rdst     max     #%1, %0 */",
+                                 "/** 1111 1101 0010 1p sz rsrc rdst   mov%s   %1, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  im = 0x%x,", im);
+                          printf ("  p = 0x%x,", p);
+                          printf ("  sz = 0x%x,", sz);
+                          printf ("  rsrc = 0x%x,", rsrc);
                           printf ("  rdst = 0x%x\n", rdst);
                         }
-                      SYNTAX("max      #%1, %0");
-#line 550 "rx-decode.opc"
-                      ID(max); DR(rdst); SC(IMMex(im));
-                    
+                      SYNTAX("mov%s    %1, %0");
+#line 352 "rx-decode.opc"
+                      ID(mov); sBWL (sz); DR(rdst); F_____;
+                      OP(1, p ? RX_Operand_Predec : RX_Operand_Postinc, rsrc, 0);
+
                     }
                   break;
-                case 0x50:
-                  op_semantics_80:
-                    {
-                      /** 1111 1101 0111 im00 0101rdst min     #%1, %0 */
-#line 562 "rx-decode.opc"
-                      int im AU = (op[1] >> 2) & 0x03;
-#line 562 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
-                      if (trace)
-                        {
-                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0111 im00 0101rdst     min     #%1, %0 */",
-                                 op[0], op[1], op[2]);
-                          printf ("  im = 0x%x,", im);
-                          printf ("  rdst = 0x%x\n", rdst);
-                        }
-                      SYNTAX("min      #%1, %0");
-#line 562 "rx-decode.opc"
-                      ID(min); DR(rdst); SC(IMMex(im));
-                    
-                    }
+              }
+            break;
+          case 0x29:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_88;
                   break;
-                case 0x60:
-                  op_semantics_81:
-                    {
-                      /** 1111 1101 0111 im00 0110rdst emul    #%1, %0 */
-#line 592 "rx-decode.opc"
-                      int im AU = (op[1] >> 2) & 0x03;
-#line 592 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
-                      if (trace)
-                        {
-                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0111 im00 0110rdst     emul    #%1, %0 */",
-                                 op[0], op[1], op[2]);
-                          printf ("  im = 0x%x,", im);
-                          printf ("  rdst = 0x%x\n", rdst);
-                        }
-                      SYNTAX("emul     #%1, %0");
-#line 592 "rx-decode.opc"
-                      ID(emul); DR(rdst); SC(IMMex(im));
-                    
-                    }
+              }
+            break;
+          case 0x2a:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_88;
                   break;
-                case 0x70:
-                  op_semantics_82:
+              }
+            break;
+          case 0x2c:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_88;
+                  break;
+              }
+            break;
+          case 0x2d:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_88;
+                  break;
+              }
+            break;
+          case 0x2e:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_88;
+                  break;
+              }
+            break;
+          case 0x2f:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
                     {
-                      /** 1111 1101 0111 im00 0111rdst emulu   #%1, %0 */
-#line 604 "rx-decode.opc"
-                      int im AU = (op[1] >> 2) & 0x03;
-#line 604 "rx-decode.opc"
+                      /** 1111 1101 0010 1111 rsrc rdst        movli   [%1], %0 */
+#line 1053 "rx-decode.opc"
+                      int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 1053 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0111 im00 0111rdst     emulu   #%1, %0 */",
+                                 "/** 1111 1101 0010 1111 rsrc rdst    movli   [%1], %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  im = 0x%x,", im);
+                          printf ("  rsrc = 0x%x,", rsrc);
                           printf ("  rdst = 0x%x\n", rdst);
                         }
-                      SYNTAX("emulu    #%1, %0");
-#line 604 "rx-decode.opc"
-                      ID(emulu); DR(rdst); SC(IMMex(im));
-                    
+                      SYNTAX("movli    [%1], %0");
+#line 1053 "rx-decode.opc"
+                       ID(movli); SR(rsrc); DR(rdst); F_____;
+
                     }
                   break;
-                case 0x80:
-                  op_semantics_83:
+              }
+            break;
+          case 0x38:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  op_semantics_89:
                     {
-                      /** 1111 1101 0111 im00 1000rdst div     #%1, %0 */
-#line 616 "rx-decode.opc"
-                      int im AU = (op[1] >> 2) & 0x03;
-#line 616 "rx-decode.opc"
+                      /** 1111 1101 0011 1p sz rsrc rdst       movu%s  %1, %0 */
+#line 362 "rx-decode.opc"
+                      int p AU = (op[1] >> 2) & 0x01;
+#line 362 "rx-decode.opc"
+                      int sz AU = op[1] & 0x03;
+#line 362 "rx-decode.opc"
+                      int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 362 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0111 im00 1000rdst     div     #%1, %0 */",
+                                 "/** 1111 1101 0011 1p sz rsrc rdst   movu%s  %1, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  im = 0x%x,", im);
+                          printf ("  p = 0x%x,", p);
+                          printf ("  sz = 0x%x,", sz);
+                          printf ("  rsrc = 0x%x,", rsrc);
                           printf ("  rdst = 0x%x\n", rdst);
                         }
-                      SYNTAX("div      #%1, %0");
-#line 616 "rx-decode.opc"
-                      ID(div); DR(rdst); SC(IMMex(im)); F("O---");
-                    
+                      SYNTAX("movu%s   %1, %0");
+#line 362 "rx-decode.opc"
+                      ID(mov); uBW (sz); DR(rdst); F_____;
+                       OP(1, p ? RX_Operand_Predec : RX_Operand_Postinc, rsrc, 0);
+
+                    /*----------------------------------------------------------------------*/
+                    /* PUSH/POP                                                                */
+
                     }
                   break;
-                case 0x90:
-                  op_semantics_84:
-                    {
-                      /** 1111 1101 0111 im00 1001rdst divu    #%1, %0 */
-#line 628 "rx-decode.opc"
-                      int im AU = (op[1] >> 2) & 0x03;
-#line 628 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
-                      if (trace)
-                        {
-                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0111 im00 1001rdst     divu    #%1, %0 */",
-                                 op[0], op[1], op[2]);
-                          printf ("  im = 0x%x,", im);
-                          printf ("  rdst = 0x%x\n", rdst);
-                        }
-                      SYNTAX("divu     #%1, %0");
-#line 628 "rx-decode.opc"
-                      ID(divu); DR(rdst); SC(IMMex(im)); F("O---");
-                    
-                    }
+              }
+            break;
+          case 0x39:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_89;
                   break;
-                case 0xc0:
-                  op_semantics_85:
+              }
+            break;
+          case 0x3a:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_89;
+                  break;
+              }
+            break;
+          case 0x3c:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_89;
+                  break;
+              }
+            break;
+          case 0x3d:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_89;
+                  break;
+              }
+            break;
+          case 0x3e:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_89;
+                  break;
+              }
+            break;
+          case 0x44:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  op_semantics_90:
                     {
-                      /** 1111 1101 0111 im00 1100rdst tst     #%1, %2 */
-#line 447 "rx-decode.opc"
-                      int im AU = (op[1] >> 2) & 0x03;
-#line 447 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
+                      /** 1111 1101 0100 a100 srca srcb        msbhi   %1, %2, %0 */
+#line 1074 "rx-decode.opc"
+                      int a AU = (op[1] >> 3) & 0x01;
+#line 1074 "rx-decode.opc"
+                      int srca AU = (op[2] >> 4) & 0x0f;
+#line 1074 "rx-decode.opc"
+                      int srcb AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0111 im00 1100rdst     tst     #%1, %2 */",
+                                 "/** 1111 1101 0100 a100 srca srcb    msbhi   %1, %2, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  im = 0x%x,", im);
-                          printf ("  rdst = 0x%x\n", rdst);
+                          printf ("  a = 0x%x,", a);
+                          printf ("  srca = 0x%x,", srca);
+                          printf ("  srcb = 0x%x\n", srcb);
                         }
-                      SYNTAX("tst      #%1, %2");
-#line 447 "rx-decode.opc"
-                      ID(and); SC(IMMex(im)); S2R(rdst); F("-SZ-");
-                    
+                      SYNTAX("msbhi    %1, %2, %0");
+#line 1074 "rx-decode.opc"
+                      ID(msbhi); DR(a+32); SR(srca); S2R(srcb); F_____;
+
                     }
                   break;
-                case 0xd0:
-                  op_semantics_86:
+              }
+            break;
+          case 0x45:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  op_semantics_91:
                     {
-                      /** 1111 1101 0111 im00 1101rdst xor     #%1, %0 */
-#line 426 "rx-decode.opc"
-                      int im AU = (op[1] >> 2) & 0x03;
-#line 426 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
+                      /** 1111 1101 0100 a101 srca srcb        msblo   %1, %2, %0 */
+#line 1080 "rx-decode.opc"
+                      int a AU = (op[1] >> 3) & 0x01;
+#line 1080 "rx-decode.opc"
+                      int srca AU = (op[2] >> 4) & 0x0f;
+#line 1080 "rx-decode.opc"
+                      int srcb AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0111 im00 1101rdst     xor     #%1, %0 */",
+                                 "/** 1111 1101 0100 a101 srca srcb    msblo   %1, %2, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  im = 0x%x,", im);
-                          printf ("  rdst = 0x%x\n", rdst);
+                          printf ("  a = 0x%x,", a);
+                          printf ("  srca = 0x%x,", srca);
+                          printf ("  srcb = 0x%x\n", srcb);
                         }
-                      SYNTAX("xor      #%1, %0");
-#line 426 "rx-decode.opc"
-                      ID(xor); SC(IMMex(im)); DR(rdst); F("-SZ-");
-                    
+                      SYNTAX("msblo    %1, %2, %0");
+#line 1080 "rx-decode.opc"
+                      ID(msblo); DR(a+32); SR(srca); S2R(srcb); F_____;
+
                     }
                   break;
-                case 0xe0:
-                  op_semantics_87:
+              }
+            break;
+          case 0x46:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  op_semantics_92:
                     {
-                      /** 1111 1101 0111 im00 1110rdst stz     #%1, %0 */
-#line 372 "rx-decode.opc"
-                      int im AU = (op[1] >> 2) & 0x03;
-#line 372 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
+                      /** 1111 1101 0100 a110 srca srcb        msblh   %1, %2, %0 */
+#line 1077 "rx-decode.opc"
+                      int a AU = (op[1] >> 3) & 0x01;
+#line 1077 "rx-decode.opc"
+                      int srca AU = (op[2] >> 4) & 0x0f;
+#line 1077 "rx-decode.opc"
+                      int srcb AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0111 im00 1110rdst     stz     #%1, %0 */",
+                                 "/** 1111 1101 0100 a110 srca srcb    msblh   %1, %2, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  im = 0x%x,", im);
-                          printf ("  rdst = 0x%x\n", rdst);
+                          printf ("  a = 0x%x,", a);
+                          printf ("  srca = 0x%x,", srca);
+                          printf ("  srcb = 0x%x\n", srcb);
                         }
-                      SYNTAX("stz      #%1, %0");
-#line 372 "rx-decode.opc"
-                      ID(stcc); SC(IMMex(im)); DR(rdst); S2cc(RXC_z);
-                    
+                      SYNTAX("msblh    %1, %2, %0");
+#line 1077 "rx-decode.opc"
+                      ID(msblh); DR(a+32); SR(srca); S2R(srcb); F_____;
+
                     }
                   break;
-                case 0xf0:
-                  op_semantics_88:
+              }
+            break;
+          case 0x47:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  op_semantics_93:
                     {
-                      /** 1111 1101 0111 im00 1111rdst stnz    #%1, %0 */
-#line 375 "rx-decode.opc"
-                      int im AU = (op[1] >> 2) & 0x03;
-#line 375 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
+                      /** 1111 1101 0100 a111 srca srcb        emsba   %1, %2, %0 */
+#line 1065 "rx-decode.opc"
+                      int a AU = (op[1] >> 3) & 0x01;
+#line 1065 "rx-decode.opc"
+                      int srca AU = (op[2] >> 4) & 0x0f;
+#line 1065 "rx-decode.opc"
+                      int srcb AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0111 im00 1111rdst     stnz    #%1, %0 */",
+                                 "/** 1111 1101 0100 a111 srca srcb    emsba   %1, %2, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  im = 0x%x,", im);
-                          printf ("  rdst = 0x%x\n", rdst);
+                          printf ("  a = 0x%x,", a);
+                          printf ("  srca = 0x%x,", srca);
+                          printf ("  srcb = 0x%x\n", srcb);
                         }
-                      SYNTAX("stnz     #%1, %0");
-#line 375 "rx-decode.opc"
-                      ID(stcc); SC(IMMex(im)); DR(rdst); S2cc(RXC_nz);
-                    
-                    /*----------------------------------------------------------------------*/
-                    /* RTSD                                                                    */
-                    
+                      SYNTAX("emsba    %1, %2, %0");
+#line 1065 "rx-decode.opc"
+                      ID(emsba); DR(a+32); SR(srca); S2R(srcb); F_____;
+
                     }
                   break;
-                default: UNSUPPORTED(); break;
               }
             break;
-          case 0x72:
+          case 0x4c:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_90;
+                  break;
+              }
+            break;
+          case 0x4d:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_91;
+                  break;
+              }
+            break;
+          case 0x4e:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_92;
+                  break;
+              }
+            break;
+          case 0x4f:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_93;
+                  break;
+              }
+            break;
+          case 0x60:
+              GETBYTE ();
+              switch (op[2] & 0x00)
               {
                 case 0x00:
                     {
-                      /** 1111 1101 0111 0010 0000 rdst        fsub    #%1, %0 */
-#line 836 "rx-decode.opc"
+                      /** 1111 1101 0110 0000 rsrc rdst        shlr    %2, %0 */
+#line 733 "rx-decode.opc"
+                      int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 733 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0111 0010 0000 rdst    fsub    #%1, %0 */",
+                                 "/** 1111 1101 0110 0000 rsrc rdst    shlr    %2, %0 */",
                                  op[0], op[1], op[2]);
+                          printf ("  rsrc = 0x%x,", rsrc);
                           printf ("  rdst = 0x%x\n", rdst);
                         }
-                      SYNTAX("fsub     #%1, %0");
-#line 836 "rx-decode.opc"
-                      ID(fsub); DR(rdst); SC(IMM(0)); F("-SZ-");
-                    
+                      SYNTAX("shlr     %2, %0");
+#line 733 "rx-decode.opc"
+                      ID(shlr); S2R(rsrc); SR(rdst); DR(rdst); F__SZC;
+
                     }
                   break;
-                case 0x10:
+              }
+            break;
+          case 0x61:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
                     {
-                      /** 1111 1101 0111 0010 0001 rdst        fcmp    #%1, %0 */
-#line 830 "rx-decode.opc"
+                      /** 1111 1101 0110 0001 rsrc rdst        shar    %2, %0 */
+#line 723 "rx-decode.opc"
+                      int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 723 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0111 0010 0001 rdst    fcmp    #%1, %0 */",
+                                 "/** 1111 1101 0110 0001 rsrc rdst    shar    %2, %0 */",
                                  op[0], op[1], op[2]);
+                          printf ("  rsrc = 0x%x,", rsrc);
                           printf ("  rdst = 0x%x\n", rdst);
                         }
-                      SYNTAX("fcmp     #%1, %0");
-#line 830 "rx-decode.opc"
-                      ID(fcmp); DR(rdst); SC(IMM(0)); F("OSZ-");
-                    
+                      SYNTAX("shar     %2, %0");
+#line 723 "rx-decode.opc"
+                      ID(shar); S2R(rsrc); SR(rdst); DR(rdst); F_0SZC;
+
                     }
                   break;
-                case 0x20:
+              }
+            break;
+          case 0x62:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
                     {
-                      /** 1111 1101 0111 0010 0010 rdst        fadd    #%1, %0 */
-#line 824 "rx-decode.opc"
+                      /** 1111 1101 0110 0010 rsrc rdst        shll    %2, %0 */
+#line 713 "rx-decode.opc"
+                      int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 713 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0111 0010 0010 rdst    fadd    #%1, %0 */",
+                                 "/** 1111 1101 0110 0010 rsrc rdst    shll    %2, %0 */",
                                  op[0], op[1], op[2]);
+                          printf ("  rsrc = 0x%x,", rsrc);
                           printf ("  rdst = 0x%x\n", rdst);
                         }
-                      SYNTAX("fadd     #%1, %0");
-#line 824 "rx-decode.opc"
-                      ID(fadd); DR(rdst); SC(IMM(0)); F("-SZ-");
-                    
+                      SYNTAX("shll     %2, %0");
+#line 713 "rx-decode.opc"
+                      ID(shll); S2R(rsrc); SR(rdst); DR(rdst); F_OSZC;
+
                     }
                   break;
-                case 0x30:
+              }
+            break;
+          case 0x64:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
                     {
-                      /** 1111 1101 0111 0010 0011 rdst        fmul    #%1, %0 */
-#line 845 "rx-decode.opc"
+                      /** 1111 1101 0110 0100 rsrc rdst        rotr    %1, %0 */
+#line 757 "rx-decode.opc"
+                      int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 757 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0111 0010 0011 rdst    fmul    #%1, %0 */",
+                                 "/** 1111 1101 0110 0100 rsrc rdst    rotr    %1, %0 */",
                                  op[0], op[1], op[2]);
+                          printf ("  rsrc = 0x%x,", rsrc);
                           printf ("  rdst = 0x%x\n", rdst);
                         }
-                      SYNTAX("fmul     #%1, %0");
-#line 845 "rx-decode.opc"
-                      ID(fmul); DR(rdst); SC(IMM(0)); F("-SZ-");
-                    
+                      SYNTAX("rotr     %1, %0");
+#line 757 "rx-decode.opc"
+                      ID(rotr); SR(rsrc); DR(rdst); F__SZC;
+
                     }
                   break;
-                case 0x40:
-                    {
-                      /** 1111 1101 0111 0010 0100 rdst        fdiv    #%1, %0 */
-#line 851 "rx-decode.opc"
+              }
+            break;
+          case 0x65:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                    {
+                      /** 1111 1101 0110 0101 rsrc rdst        revw    %1, %0 */
+#line 760 "rx-decode.opc"
+                      int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 760 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0111 0010 0100 rdst    fdiv    #%1, %0 */",
+                                 "/** 1111 1101 0110 0101 rsrc rdst    revw    %1, %0 */",
                                  op[0], op[1], op[2]);
+                          printf ("  rsrc = 0x%x,", rsrc);
                           printf ("  rdst = 0x%x\n", rdst);
                         }
-                      SYNTAX("fdiv     #%1, %0");
-#line 851 "rx-decode.opc"
-                      ID(fdiv); DR(rdst); SC(IMM(0)); F("-SZ-");
-                    
+                      SYNTAX("revw     %1, %0");
+#line 760 "rx-decode.opc"
+                      ID(revw); SR(rsrc); DR(rdst);
+
                     }
                   break;
-                default: UNSUPPORTED(); break;
               }
             break;
-          case 0x73:
+          case 0x66:
               GETBYTE ();
-              switch (op[2] & 0xe0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_89:
                     {
-                      /** 1111 1101 0111 im11 000crdst mvtc    #%1, %0 */
-#line 933 "rx-decode.opc"
-                      int im AU = (op[1] >> 2) & 0x03;
-#line 933 "rx-decode.opc"
-                      int crdst AU = op[2] & 0x1f;
+                      /** 1111 1101 0110 0110 rsrc rdst        rotl    %1, %0 */
+#line 751 "rx-decode.opc"
+                      int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 751 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 0111 im11 000crdst     mvtc    #%1, %0 */",
+                                 "/** 1111 1101 0110 0110 rsrc rdst    rotl    %1, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  im = 0x%x,", im);
-                          printf ("  crdst = 0x%x\n", crdst);
+                          printf ("  rsrc = 0x%x,", rsrc);
+                          printf ("  rdst = 0x%x\n", rdst);
                         }
-                      SYNTAX("mvtc     #%1, %0");
-#line 933 "rx-decode.opc"
-                      ID(mov); SC(IMMex(im)); DR(crdst + 16);
-                    
+                      SYNTAX("rotl     %1, %0");
+#line 751 "rx-decode.opc"
+                      ID(rotl); SR(rsrc); DR(rdst); F__SZC;
+
                     }
                   break;
-                default: UNSUPPORTED(); break;
-              }
-            break;
-          case 0x74:
-              GETBYTE ();
-              switch (op[2] & 0xf0)
-              {
-                case 0x20:
-                  goto op_semantics_78;
-                  break;
-                case 0x40:
-                  goto op_semantics_79;
-                  break;
-                case 0x50:
-                  goto op_semantics_80;
-                  break;
-                case 0x60:
-                  goto op_semantics_81;
-                  break;
-                case 0x70:
-                  goto op_semantics_82;
-                  break;
-                case 0x80:
-                  goto op_semantics_83;
-                  break;
-                case 0x90:
-                  goto op_semantics_84;
-                  break;
-                case 0xc0:
-                  goto op_semantics_85;
-                  break;
-                case 0xd0:
-                  goto op_semantics_86;
-                  break;
-                case 0xe0:
-                  goto op_semantics_87;
-                  break;
-                case 0xf0:
-                  goto op_semantics_88;
-                  break;
-                default: UNSUPPORTED(); break;
               }
             break;
-          case 0x77:
+          case 0x67:
               GETBYTE ();
-              switch (op[2] & 0xe0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_89;
-                  break;
-                default: UNSUPPORTED(); break;
-              }
-            break;
-          case 0x78:
-              GETBYTE ();
-              switch (op[2] & 0xf0)
-              {
-                case 0x20:
-                  goto op_semantics_78;
-                  break;
-                case 0x40:
-                  goto op_semantics_79;
-                  break;
-                case 0x50:
-                  goto op_semantics_80;
-                  break;
-                case 0x60:
-                  goto op_semantics_81;
-                  break;
-                case 0x70:
-                  goto op_semantics_82;
-                  break;
-                case 0x80:
-                  goto op_semantics_83;
-                  break;
-                case 0x90:
-                  goto op_semantics_84;
-                  break;
-                case 0xc0:
-                  goto op_semantics_85;
-                  break;
-                case 0xd0:
-                  goto op_semantics_86;
-                  break;
-                case 0xe0:
-                  goto op_semantics_87;
-                  break;
-                case 0xf0:
-                  goto op_semantics_88;
+                    {
+                      /** 1111 1101 0110 0111 rsrc rdst        revl    %1, %0 */
+#line 763 "rx-decode.opc"
+                      int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 763 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0110 0111 rsrc rdst    revl    %1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  rsrc = 0x%x,", rsrc);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("revl     %1, %0");
+#line 763 "rx-decode.opc"
+                      ID(revl); SR(rsrc); DR(rdst);
+
+                    /*----------------------------------------------------------------------*/
+                    /* BRANCH                                                          */
+
+                    }
                   break;
-                default: UNSUPPORTED(); break;
               }
             break;
-          case 0x7b:
+          case 0x68:
               GETBYTE ();
-              switch (op[2] & 0xe0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_89;
-                  break;
-                default: UNSUPPORTED(); break;
-              }
-            break;
-          case 0x7c:
-              GETBYTE ();
-              switch (op[2] & 0xf0)
-              {
-                case 0x20:
-                  goto op_semantics_78;
-                  break;
-                case 0x40:
-                  goto op_semantics_79;
-                  break;
-                case 0x50:
-                  goto op_semantics_80;
-                  break;
-                case 0x60:
-                  goto op_semantics_81;
-                  break;
-                case 0x70:
-                  goto op_semantics_82;
-                  break;
-                case 0x80:
-                  goto op_semantics_83;
-                  break;
-                case 0x90:
-                  goto op_semantics_84;
-                  break;
-                case 0xc0:
-                  goto op_semantics_85;
-                  break;
-                case 0xd0:
-                  goto op_semantics_86;
-                  break;
-                case 0xe0:
-                  goto op_semantics_87;
-                  break;
-                case 0xf0:
-                  goto op_semantics_88;
+                  op_semantics_94:
+                    {
+                      /** 1111 1101 0110 100c rsrc rdst        mvtc    %1, %0 */
+#line 1014 "rx-decode.opc"
+                      int c AU = op[1] & 0x01;
+#line 1014 "rx-decode.opc"
+                      int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 1014 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0110 100c rsrc rdst    mvtc    %1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  c = 0x%x,", c);
+                          printf ("  rsrc = 0x%x,", rsrc);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("mvtc     %1, %0");
+#line 1014 "rx-decode.opc"
+                      ID(mov); SR(rsrc); DR(c*16+rdst + 16);
+
+                    }
                   break;
-                default: UNSUPPORTED(); break;
               }
             break;
-          case 0x7f:
+          case 0x69:
               GETBYTE ();
-              switch (op[2] & 0xe0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_89;
+                  goto op_semantics_94;
                   break;
-                default: UNSUPPORTED(); break;
               }
             break;
-          case 0x80:
+          case 0x6a:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_90:
+                  op_semantics_95:
                     {
-                      /** 1111 1101 100immmm rsrc rdst shlr    #%2, %1, %0 */
-#line 666 "rx-decode.opc"
-                      int immmm AU = op[1] & 0x1f;
-#line 666 "rx-decode.opc"
+                      /** 1111 1101 0110 101s rsrc rdst        mvfc    %1, %0 */
+#line 1017 "rx-decode.opc"
+                      int s AU = op[1] & 0x01;
+#line 1017 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 666 "rx-decode.opc"
+#line 1017 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 100immmm rsrc rdst     shlr    #%2, %1, %0 */",
+                                 "/** 1111 1101 0110 101s rsrc rdst    mvfc    %1, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  immmm = 0x%x,", immmm);
+                          printf ("  s = 0x%x,", s);
                           printf ("  rsrc = 0x%x,", rsrc);
                           printf ("  rdst = 0x%x\n", rdst);
                         }
-                      SYNTAX("shlr     #%2, %1, %0");
-#line 666 "rx-decode.opc"
-                      ID(shlr); S2C(immmm); SR(rsrc); DR(rdst); F("-SZC");
-                    
+                      SYNTAX("mvfc     %1, %0");
+#line 1017 "rx-decode.opc"
+                      ID(mov); SR((s*16+rsrc) + 16); DR(rdst);
+
                     /*----------------------------------------------------------------------*/
-                    /* ROTATE                                                          */
-                    
+                    /* INTERRUPTS                                                              */
+
                     }
                   break;
               }
             break;
-          case 0x81:
-              GETBYTE ();
-              switch (op[2] & 0x00)
-              {
-                case 0x00:
-                  goto op_semantics_90;
-                  break;
-              }
-            break;
-          case 0x82:
+          case 0x6b:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_95;
                   break;
               }
             break;
-          case 0x83:
+          case 0x6c:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
-                  break;
+                  op_semantics_96:
+                    {
+                      /** 1111 1101 0110 110i mmmm rdst        rotr    #%1, %0 */
+#line 754 "rx-decode.opc"
+                      int i AU = op[1] & 0x01;
+#line 754 "rx-decode.opc"
+                      int mmmm AU = (op[2] >> 4) & 0x0f;
+#line 754 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0110 110i mmmm rdst    rotr    #%1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  i = 0x%x,", i);
+                          printf ("  mmmm = 0x%x,", mmmm);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("rotr     #%1, %0");
+#line 754 "rx-decode.opc"
+                      ID(rotr); SC(i*16+mmmm); DR(rdst); F__SZC;
+
+                    }
+                  break;
+              }
+            break;
+          case 0x6d:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_96;
+                  break;
+              }
+            break;
+          case 0x6e:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  op_semantics_97:
+                    {
+                      /** 1111 1101 0110 111i mmmm rdst        rotl    #%1, %0 */
+#line 748 "rx-decode.opc"
+                      int i AU = op[1] & 0x01;
+#line 748 "rx-decode.opc"
+                      int mmmm AU = (op[2] >> 4) & 0x0f;
+#line 748 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0110 111i mmmm rdst    rotl    #%1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  i = 0x%x,", i);
+                          printf ("  mmmm = 0x%x,", mmmm);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("rotl     #%1, %0");
+#line 748 "rx-decode.opc"
+                      ID(rotl); SC(i*16+mmmm); DR(rdst); F__SZC;
+
+                    }
+                  break;
+              }
+            break;
+          case 0x6f:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_97;
+                  break;
+              }
+            break;
+          case 0x70:
+              GETBYTE ();
+              switch (op[2] & 0xf0)
+              {
+                case 0x20:
+                  op_semantics_98:
+                    {
+                      /** 1111 1101 0111 im00 0010rdst adc     #%1, %0 */
+#line 492 "rx-decode.opc"
+                      int im AU = (op[1] >> 2) & 0x03;
+#line 492 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0111 im00 0010rdst     adc     #%1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  im = 0x%x,", im);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("adc      #%1, %0");
+#line 492 "rx-decode.opc"
+                      ID(adc); SC(IMMex(im)); DR(rdst); F_OSZC;
+
+                    }
+                  break;
+                case 0x40:
+                  op_semantics_99:
+                    {
+                      /** 1111 1101 0111 im00 0100rdst max     #%1, %0 */
+#line 574 "rx-decode.opc"
+                      int im AU = (op[1] >> 2) & 0x03;
+#line 574 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0111 im00 0100rdst     max     #%1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  im = 0x%x,", im);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("max      #%1, %0");
+#line 574 "rx-decode.opc"
+                      int val = IMMex (im);
+                      if (im == 0 && (unsigned) val == 0x80000000 && rdst == 0)
+                        {
+                          ID (nop7);
+                          SYNTAX("nop\t; max\t#0x80000000, r0");
+                        }
+                      else
+                        {
+                          ID(max);
+                        }
+                      DR(rdst); SC(val);
+
+                    }
+                  break;
+                case 0x50:
+                  op_semantics_100:
+                    {
+                      /** 1111 1101 0111 im00 0101rdst min     #%1, %0 */
+#line 604 "rx-decode.opc"
+                      int im AU = (op[1] >> 2) & 0x03;
+#line 604 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0111 im00 0101rdst     min     #%1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  im = 0x%x,", im);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("min      #%1, %0");
+#line 604 "rx-decode.opc"
+                      ID(min); DR(rdst); SC(IMMex(im));
+
+                    }
+                  break;
+                case 0x60:
+                  op_semantics_101:
+                    {
+                      /** 1111 1101 0111 im00 0110rdst emul    #%1, %0 */
+#line 662 "rx-decode.opc"
+                      int im AU = (op[1] >> 2) & 0x03;
+#line 662 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0111 im00 0110rdst     emul    #%1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  im = 0x%x,", im);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("emul     #%1, %0");
+#line 662 "rx-decode.opc"
+                      ID(emul); DR(rdst); SC(IMMex(im));
+
+                    }
+                  break;
+                case 0x70:
+                  op_semantics_102:
+                    {
+                      /** 1111 1101 0111 im00 0111rdst emulu   #%1, %0 */
+#line 674 "rx-decode.opc"
+                      int im AU = (op[1] >> 2) & 0x03;
+#line 674 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0111 im00 0111rdst     emulu   #%1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  im = 0x%x,", im);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("emulu    #%1, %0");
+#line 674 "rx-decode.opc"
+                      ID(emulu); DR(rdst); SC(IMMex(im));
+
+                    }
+                  break;
+                case 0x80:
+                  op_semantics_103:
+                    {
+                      /** 1111 1101 0111 im00 1000rdst div     #%1, %0 */
+#line 686 "rx-decode.opc"
+                      int im AU = (op[1] >> 2) & 0x03;
+#line 686 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0111 im00 1000rdst     div     #%1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  im = 0x%x,", im);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("div      #%1, %0");
+#line 686 "rx-decode.opc"
+                      ID(div); DR(rdst); SC(IMMex(im)); F_O___;
+
+                    }
+                  break;
+                case 0x90:
+                  op_semantics_104:
+                    {
+                      /** 1111 1101 0111 im00 1001rdst divu    #%1, %0 */
+#line 698 "rx-decode.opc"
+                      int im AU = (op[1] >> 2) & 0x03;
+#line 698 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0111 im00 1001rdst     divu    #%1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  im = 0x%x,", im);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("divu     #%1, %0");
+#line 698 "rx-decode.opc"
+                      ID(divu); DR(rdst); SC(IMMex(im)); F_O___;
+
+                    }
+                  break;
+                case 0xc0:
+                  op_semantics_105:
+                    {
+                      /** 1111 1101 0111 im00 1100rdst tst     #%1, %2 */
+#line 471 "rx-decode.opc"
+                      int im AU = (op[1] >> 2) & 0x03;
+#line 471 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0111 im00 1100rdst     tst     #%1, %2 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  im = 0x%x,", im);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("tst      #%1, %2");
+#line 471 "rx-decode.opc"
+                      ID(and); SC(IMMex(im)); S2R(rdst); F__SZ_;
+
+                    }
+                  break;
+                case 0xd0:
+                  op_semantics_106:
+                    {
+                      /** 1111 1101 0111 im00 1101rdst xor     #%1, %0 */
+#line 450 "rx-decode.opc"
+                      int im AU = (op[1] >> 2) & 0x03;
+#line 450 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0111 im00 1101rdst     xor     #%1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  im = 0x%x,", im);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("xor      #%1, %0");
+#line 450 "rx-decode.opc"
+                      ID(xor); SC(IMMex(im)); DR(rdst); F__SZ_;
+
+                    }
+                  break;
+                case 0xe0:
+                  op_semantics_107:
+                    {
+                      /** 1111 1101 0111 im00 1110rdst stz     #%1, %0 */
+#line 396 "rx-decode.opc"
+                      int im AU = (op[1] >> 2) & 0x03;
+#line 396 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0111 im00 1110rdst     stz     #%1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  im = 0x%x,", im);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("stz      #%1, %0");
+#line 396 "rx-decode.opc"
+                      ID(stcc); SC(IMMex(im)); DR(rdst); S2cc(RXC_z);
+
+                    }
+                  break;
+                case 0xf0:
+                  op_semantics_108:
+                    {
+                      /** 1111 1101 0111 im00 1111rdst stnz    #%1, %0 */
+#line 399 "rx-decode.opc"
+                      int im AU = (op[1] >> 2) & 0x03;
+#line 399 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0111 im00 1111rdst     stnz    #%1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  im = 0x%x,", im);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("stnz     #%1, %0");
+#line 399 "rx-decode.opc"
+                      ID(stcc); SC(IMMex(im)); DR(rdst); S2cc(RXC_nz);
+
+                    /*----------------------------------------------------------------------*/
+                    /* RTSD                                                                    */
+
+                    }
+                  break;
+                default: UNSUPPORTED(); break;
+              }
+            break;
+          case 0x72:
+              GETBYTE ();
+              switch (op[2] & 0xf0)
+              {
+                case 0x00:
+                    {
+                      /** 1111 1101 0111 0010 0000 rdst        fsub    #%1, %0 */
+#line 906 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0111 0010 0000 rdst    fsub    #%1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("fsub     #%1, %0");
+#line 906 "rx-decode.opc"
+                      ID(fsub); DR(rdst); SC(IMM(0)); F__SZ_;
+
+                    }
+                  break;
+                case 0x10:
+                    {
+                      /** 1111 1101 0111 0010 0001 rdst        fcmp    #%1, %0 */
+#line 900 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0111 0010 0001 rdst    fcmp    #%1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("fcmp     #%1, %0");
+#line 900 "rx-decode.opc"
+                      ID(fcmp); DR(rdst); SC(IMM(0)); F_OSZ_;
+
+                    }
+                  break;
+                case 0x20:
+                    {
+                      /** 1111 1101 0111 0010 0010 rdst        fadd    #%1, %0 */
+#line 894 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0111 0010 0010 rdst    fadd    #%1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("fadd     #%1, %0");
+#line 894 "rx-decode.opc"
+                      ID(fadd); DR(rdst); SC(IMM(0)); F__SZ_;
+
+                    }
+                  break;
+                case 0x30:
+                    {
+                      /** 1111 1101 0111 0010 0011 rdst        fmul    #%1, %0 */
+#line 915 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0111 0010 0011 rdst    fmul    #%1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("fmul     #%1, %0");
+#line 915 "rx-decode.opc"
+                      ID(fmul); DR(rdst); SC(IMM(0)); F__SZ_;
+
+                    }
+                  break;
+                case 0x40:
+                    {
+                      /** 1111 1101 0111 0010 0100 rdst        fdiv    #%1, %0 */
+#line 921 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0111 0010 0100 rdst    fdiv    #%1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("fdiv     #%1, %0");
+#line 921 "rx-decode.opc"
+                      ID(fdiv); DR(rdst); SC(IMM(0)); F__SZ_;
+
+                    }
+                  break;
+                default: UNSUPPORTED(); break;
+              }
+            break;
+          case 0x73:
+              GETBYTE ();
+              switch (op[2] & 0xe0)
+              {
+                case 0x00:
+                  op_semantics_109:
+                    {
+                      /** 1111 1101 0111 im11 000crdst mvtc    #%1, %0 */
+#line 1011 "rx-decode.opc"
+                      int im AU = (op[1] >> 2) & 0x03;
+#line 1011 "rx-decode.opc"
+                      int crdst AU = op[2] & 0x1f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 0111 im11 000crdst     mvtc    #%1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  im = 0x%x,", im);
+                          printf ("  crdst = 0x%x\n", crdst);
+                        }
+                      SYNTAX("mvtc     #%1, %0");
+#line 1011 "rx-decode.opc"
+                      ID(mov); SC(IMMex(im)); DR(crdst + 16);
+
+                    }
+                  break;
+                default: UNSUPPORTED(); break;
+              }
+            break;
+          case 0x74:
+              GETBYTE ();
+              switch (op[2] & 0xf0)
+              {
+                case 0x20:
+                  goto op_semantics_98;
+                  break;
+                case 0x40:
+                  goto op_semantics_99;
+                  break;
+                case 0x50:
+                  goto op_semantics_100;
+                  break;
+                case 0x60:
+                  goto op_semantics_101;
+                  break;
+                case 0x70:
+                  goto op_semantics_102;
+                  break;
+                case 0x80:
+                  goto op_semantics_103;
+                  break;
+                case 0x90:
+                  goto op_semantics_104;
+                  break;
+                case 0xc0:
+                  goto op_semantics_105;
+                  break;
+                case 0xd0:
+                  goto op_semantics_106;
+                  break;
+                case 0xe0:
+                  goto op_semantics_107;
+                  break;
+                case 0xf0:
+                  goto op_semantics_108;
+                  break;
+                default: UNSUPPORTED(); break;
+              }
+            break;
+          case 0x77:
+              GETBYTE ();
+              switch (op[2] & 0xe0)
+              {
+                case 0x00:
+                  goto op_semantics_109;
+                  break;
+                default: UNSUPPORTED(); break;
+              }
+            break;
+          case 0x78:
+              GETBYTE ();
+              switch (op[2] & 0xf0)
+              {
+                case 0x20:
+                  goto op_semantics_98;
+                  break;
+                case 0x40:
+                  goto op_semantics_99;
+                  break;
+                case 0x50:
+                  goto op_semantics_100;
+                  break;
+                case 0x60:
+                  goto op_semantics_101;
+                  break;
+                case 0x70:
+                  goto op_semantics_102;
+                  break;
+                case 0x80:
+                  goto op_semantics_103;
+                  break;
+                case 0x90:
+                  goto op_semantics_104;
+                  break;
+                case 0xc0:
+                  goto op_semantics_105;
+                  break;
+                case 0xd0:
+                  goto op_semantics_106;
+                  break;
+                case 0xe0:
+                  goto op_semantics_107;
+                  break;
+                case 0xf0:
+                  goto op_semantics_108;
+                  break;
+                default: UNSUPPORTED(); break;
+              }
+            break;
+          case 0x7b:
+              GETBYTE ();
+              switch (op[2] & 0xe0)
+              {
+                case 0x00:
+                  goto op_semantics_109;
+                  break;
+                default: UNSUPPORTED(); break;
+              }
+            break;
+          case 0x7c:
+              GETBYTE ();
+              switch (op[2] & 0xf0)
+              {
+                case 0x20:
+                  goto op_semantics_98;
+                  break;
+                case 0x40:
+                  goto op_semantics_99;
+                  break;
+                case 0x50:
+                  goto op_semantics_100;
+                  break;
+                case 0x60:
+                  goto op_semantics_101;
+                  break;
+                case 0x70:
+                  goto op_semantics_102;
+                  break;
+                case 0x80:
+                  goto op_semantics_103;
+                  break;
+                case 0x90:
+                  goto op_semantics_104;
+                  break;
+                case 0xc0:
+                  goto op_semantics_105;
+                  break;
+                case 0xd0:
+                  goto op_semantics_106;
+                  break;
+                case 0xe0:
+                  goto op_semantics_107;
+                  break;
+                case 0xf0:
+                  goto op_semantics_108;
+                  break;
+                default: UNSUPPORTED(); break;
+              }
+            break;
+          case 0x7f:
+              GETBYTE ();
+              switch (op[2] & 0xe0)
+              {
+                case 0x00:
+                  goto op_semantics_109;
+                  break;
+                default: UNSUPPORTED(); break;
+              }
+            break;
+          case 0x80:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  op_semantics_110:
+                    {
+                      /** 1111 1101 100immmm rsrc rdst shlr    #%2, %1, %0 */
+#line 736 "rx-decode.opc"
+                      int immmm AU = op[1] & 0x1f;
+#line 736 "rx-decode.opc"
+                      int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 736 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 100immmm rsrc rdst     shlr    #%2, %1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  immmm = 0x%x,", immmm);
+                          printf ("  rsrc = 0x%x,", rsrc);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("shlr     #%2, %1, %0");
+#line 736 "rx-decode.opc"
+                      ID(shlr); S2C(immmm); SR(rsrc); DR(rdst); F__SZC;
+
+                    /*----------------------------------------------------------------------*/
+                    /* ROTATE                                                          */
+
+                    }
+                  break;
+              }
+            break;
+          case 0x81:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_110;
+                  break;
+              }
+            break;
+          case 0x82:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_110;
+                  break;
+              }
+            break;
+          case 0x83:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_110;
+                  break;
               }
             break;
           case 0x84:
@@ -10855,7 +11935,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -10864,7 +11944,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -10873,7 +11953,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -10882,7 +11962,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -10891,7 +11971,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -10900,7 +11980,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -10909,7 +11989,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -10918,7 +11998,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -10927,7 +12007,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -10936,7 +12016,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -10945,7 +12025,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -10954,7 +12034,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -10963,7 +12043,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -10972,7 +12052,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -10981,7 +12061,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -10990,7 +12070,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -10999,7 +12079,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -11008,7 +12088,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -11017,7 +12097,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -11026,7 +12106,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -11035,7 +12115,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -11044,7 +12124,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -11053,7 +12133,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -11062,7 +12142,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -11071,7 +12151,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -11080,7 +12160,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -11089,7 +12169,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -11098,7 +12178,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_90;
+                  goto op_semantics_110;
                   break;
               }
             break;
@@ -11107,14 +12187,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_91:
+                  op_semantics_111:
                     {
                       /** 1111 1101 101immmm rsrc rdst shar    #%2, %1, %0 */
-#line 656 "rx-decode.opc"
+#line 726 "rx-decode.opc"
                       int immmm AU = op[1] & 0x1f;
-#line 656 "rx-decode.opc"
+#line 726 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 656 "rx-decode.opc"
+#line 726 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -11126,10 +12206,10 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("shar     #%2, %1, %0");
-#line 656 "rx-decode.opc"
-                      ID(shar); S2C(immmm); SR(rsrc); DR(rdst); F("0SZC");
-                    
-                    
+#line 726 "rx-decode.opc"
+                      ID(shar); S2C(immmm); SR(rsrc); DR(rdst); F_0SZC;
+
+
                     }
                   break;
               }
@@ -11139,7 +12219,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11148,7 +12228,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11157,7 +12237,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11166,7 +12246,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11175,7 +12255,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11184,7 +12264,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11193,7 +12273,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11202,7 +12282,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11211,7 +12291,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11220,7 +12300,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11229,7 +12309,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11238,7 +12318,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11247,7 +12327,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11256,7 +12336,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11265,7 +12345,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11274,7 +12354,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11283,7 +12363,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11292,7 +12372,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11301,7 +12381,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11310,7 +12390,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11319,7 +12399,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11328,7 +12408,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11337,7 +12417,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11346,7 +12426,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11355,7 +12435,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11364,7 +12444,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11373,7 +12453,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11382,7 +12462,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11391,7 +12471,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11400,7 +12480,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11409,7 +12489,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_91;
+                  goto op_semantics_111;
                   break;
               }
             break;
@@ -11418,14 +12498,14 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_92:
+                  op_semantics_112:
                     {
                       /** 1111 1101 110immmm rsrc rdst shll    #%2, %1, %0 */
-#line 646 "rx-decode.opc"
+#line 716 "rx-decode.opc"
                       int immmm AU = op[1] & 0x1f;
-#line 646 "rx-decode.opc"
+#line 716 "rx-decode.opc"
                       int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 646 "rx-decode.opc"
+#line 716 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
@@ -11437,10 +12517,10 @@ rx_decode_opcode (unsigned long pc AU,
                           printf ("  rdst = 0x%x\n", rdst);
                         }
                       SYNTAX("shll     #%2, %1, %0");
-#line 646 "rx-decode.opc"
-                      ID(shll); S2C(immmm); SR(rsrc); DR(rdst); F("OSZC");
-                    
-                    
+#line 716 "rx-decode.opc"
+                      ID(shll); S2C(immmm); SR(rsrc); DR(rdst); F_OSZC;
+
+
                     }
                   break;
               }
@@ -11450,7 +12530,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                  goto op_semantics_112;
                   break;
               }
             break;
@@ -11459,7 +12539,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                  goto op_semantics_112;
                   break;
               }
             break;
@@ -11468,7 +12548,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                  goto op_semantics_112;
                   break;
               }
             break;
@@ -11477,7 +12557,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                  goto op_semantics_112;
                   break;
               }
             break;
@@ -11486,7 +12566,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                  goto op_semantics_112;
                   break;
               }
             break;
@@ -11495,7 +12575,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                  goto op_semantics_112;
                   break;
               }
             break;
@@ -11504,7 +12584,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                  goto op_semantics_112;
                   break;
               }
             break;
@@ -11513,7 +12593,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                  goto op_semantics_112;
                   break;
               }
             break;
@@ -11522,7 +12602,7 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                  goto op_semantics_112;
                   break;
               }
             break;
@@ -11531,200 +12611,739 @@ rx_decode_opcode (unsigned long pc AU,
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                  goto op_semantics_112;
+                  break;
+              }
+            break;
+          case 0xcb:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_112;
+                  break;
+              }
+            break;
+          case 0xcc:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_112;
+                  break;
+              }
+            break;
+          case 0xcd:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_112;
+                  break;
+              }
+            break;
+          case 0xce:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_112;
+                  break;
+              }
+            break;
+          case 0xcf:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_112;
+                  break;
+              }
+            break;
+          case 0xd0:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_112;
+                  break;
+              }
+            break;
+          case 0xd1:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_112;
+                  break;
+              }
+            break;
+          case 0xd2:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_112;
+                  break;
+              }
+            break;
+          case 0xd3:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_112;
+                  break;
+              }
+            break;
+          case 0xd4:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_112;
+                  break;
+              }
+            break;
+          case 0xd5:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_112;
+                  break;
+              }
+            break;
+          case 0xd6:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_112;
+                  break;
+              }
+            break;
+          case 0xd7:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_112;
+                  break;
+              }
+            break;
+          case 0xd8:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_112;
+                  break;
+              }
+            break;
+          case 0xd9:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_112;
+                  break;
+              }
+            break;
+          case 0xda:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_112;
+                  break;
+              }
+            break;
+          case 0xdb:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_112;
+                  break;
+              }
+            break;
+          case 0xdc:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_112;
+                  break;
+              }
+            break;
+          case 0xdd:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_112;
                   break;
               }
             break;
-          case 0xcb:
+          case 0xde:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                  goto op_semantics_112;
                   break;
               }
             break;
-          case 0xcc:
+          case 0xdf:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                  goto op_semantics_112;
                   break;
               }
             break;
-          case 0xcd:
+          case 0xe0:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0xf0)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                case 0x10:
+                case 0x20:
+                case 0x30:
+                case 0x40:
+                case 0x50:
+                case 0x60:
+                case 0x70:
+                case 0x80:
+                case 0x90:
+                case 0xa0:
+                case 0xb0:
+                case 0xc0:
+                case 0xd0:
+                case 0xe0:
+                  op_semantics_113:
+                    {
+                      /** 1111 1101 111 bittt cond rdst        bm%2    #%1, %0%S0 */
+#line 990 "rx-decode.opc"
+                      int bittt AU = op[1] & 0x1f;
+#line 990 "rx-decode.opc"
+                      int cond AU = (op[2] >> 4) & 0x0f;
+#line 990 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 111 bittt cond rdst    bm%2    #%1, %0%S0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  bittt = 0x%x,", bittt);
+                          printf ("  cond = 0x%x,", cond);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("bm%2     #%1, %0%S0");
+#line 990 "rx-decode.opc"
+                      ID(bmcc); BWL(LSIZE); S2cc(cond); SC(bittt); DR(rdst);
+
+                    /*----------------------------------------------------------------------*/
+                    /* CONTROL REGISTERS                                                       */
+
+                    }
+                  break;
+                case 0xf0:
+                  op_semantics_114:
+                    {
+                      /** 1111 1101 111bittt 1111 rdst bnot    #%1, %0 */
+#line 983 "rx-decode.opc"
+                      int bittt AU = op[1] & 0x1f;
+#line 983 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1101 111bittt 1111 rdst     bnot    #%1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  bittt = 0x%x,", bittt);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("bnot     #%1, %0");
+#line 983 "rx-decode.opc"
+                      ID(bnot); BWL(LSIZE); SC(bittt); DR(rdst);
+
+
+                    }
                   break;
               }
             break;
-          case 0xce:
+          case 0xe1:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0xf0)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                case 0x10:
+                case 0x20:
+                case 0x30:
+                case 0x40:
+                case 0x50:
+                case 0x60:
+                case 0x70:
+                case 0x80:
+                case 0x90:
+                case 0xa0:
+                case 0xb0:
+                case 0xc0:
+                case 0xd0:
+                case 0xe0:
+                  goto op_semantics_113;
+                  break;
+                case 0xf0:
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xcf:
+          case 0xe2:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0xf0)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                case 0x10:
+                case 0x20:
+                case 0x30:
+                case 0x40:
+                case 0x50:
+                case 0x60:
+                case 0x70:
+                case 0x80:
+                case 0x90:
+                case 0xa0:
+                case 0xb0:
+                case 0xc0:
+                case 0xd0:
+                case 0xe0:
+                  goto op_semantics_113;
+                  break;
+                case 0xf0:
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xd0:
+          case 0xe3:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0xf0)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                case 0x10:
+                case 0x20:
+                case 0x30:
+                case 0x40:
+                case 0x50:
+                case 0x60:
+                case 0x70:
+                case 0x80:
+                case 0x90:
+                case 0xa0:
+                case 0xb0:
+                case 0xc0:
+                case 0xd0:
+                case 0xe0:
+                  goto op_semantics_113;
+                  break;
+                case 0xf0:
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xd1:
+          case 0xe4:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0xf0)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                case 0x10:
+                case 0x20:
+                case 0x30:
+                case 0x40:
+                case 0x50:
+                case 0x60:
+                case 0x70:
+                case 0x80:
+                case 0x90:
+                case 0xa0:
+                case 0xb0:
+                case 0xc0:
+                case 0xd0:
+                case 0xe0:
+                  goto op_semantics_113;
+                  break;
+                case 0xf0:
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xd2:
+          case 0xe5:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0xf0)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                case 0x10:
+                case 0x20:
+                case 0x30:
+                case 0x40:
+                case 0x50:
+                case 0x60:
+                case 0x70:
+                case 0x80:
+                case 0x90:
+                case 0xa0:
+                case 0xb0:
+                case 0xc0:
+                case 0xd0:
+                case 0xe0:
+                  goto op_semantics_113;
+                  break;
+                case 0xf0:
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xd3:
+          case 0xe6:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0xf0)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                case 0x10:
+                case 0x20:
+                case 0x30:
+                case 0x40:
+                case 0x50:
+                case 0x60:
+                case 0x70:
+                case 0x80:
+                case 0x90:
+                case 0xa0:
+                case 0xb0:
+                case 0xc0:
+                case 0xd0:
+                case 0xe0:
+                  goto op_semantics_113;
+                  break;
+                case 0xf0:
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xd4:
+          case 0xe7:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0xf0)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                case 0x10:
+                case 0x20:
+                case 0x30:
+                case 0x40:
+                case 0x50:
+                case 0x60:
+                case 0x70:
+                case 0x80:
+                case 0x90:
+                case 0xa0:
+                case 0xb0:
+                case 0xc0:
+                case 0xd0:
+                case 0xe0:
+                  goto op_semantics_113;
+                  break;
+                case 0xf0:
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xd5:
+          case 0xe8:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0xf0)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                case 0x10:
+                case 0x20:
+                case 0x30:
+                case 0x40:
+                case 0x50:
+                case 0x60:
+                case 0x70:
+                case 0x80:
+                case 0x90:
+                case 0xa0:
+                case 0xb0:
+                case 0xc0:
+                case 0xd0:
+                case 0xe0:
+                  goto op_semantics_113;
+                  break;
+                case 0xf0:
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xd6:
+          case 0xe9:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0xf0)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                case 0x10:
+                case 0x20:
+                case 0x30:
+                case 0x40:
+                case 0x50:
+                case 0x60:
+                case 0x70:
+                case 0x80:
+                case 0x90:
+                case 0xa0:
+                case 0xb0:
+                case 0xc0:
+                case 0xd0:
+                case 0xe0:
+                  goto op_semantics_113;
+                  break;
+                case 0xf0:
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xd7:
+          case 0xea:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0xf0)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                case 0x10:
+                case 0x20:
+                case 0x30:
+                case 0x40:
+                case 0x50:
+                case 0x60:
+                case 0x70:
+                case 0x80:
+                case 0x90:
+                case 0xa0:
+                case 0xb0:
+                case 0xc0:
+                case 0xd0:
+                case 0xe0:
+                  goto op_semantics_113;
+                  break;
+                case 0xf0:
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xd8:
+          case 0xeb:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0xf0)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                case 0x10:
+                case 0x20:
+                case 0x30:
+                case 0x40:
+                case 0x50:
+                case 0x60:
+                case 0x70:
+                case 0x80:
+                case 0x90:
+                case 0xa0:
+                case 0xb0:
+                case 0xc0:
+                case 0xd0:
+                case 0xe0:
+                  goto op_semantics_113;
+                  break;
+                case 0xf0:
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xd9:
+          case 0xec:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0xf0)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                case 0x10:
+                case 0x20:
+                case 0x30:
+                case 0x40:
+                case 0x50:
+                case 0x60:
+                case 0x70:
+                case 0x80:
+                case 0x90:
+                case 0xa0:
+                case 0xb0:
+                case 0xc0:
+                case 0xd0:
+                case 0xe0:
+                  goto op_semantics_113;
+                  break;
+                case 0xf0:
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xda:
+          case 0xed:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0xf0)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                case 0x10:
+                case 0x20:
+                case 0x30:
+                case 0x40:
+                case 0x50:
+                case 0x60:
+                case 0x70:
+                case 0x80:
+                case 0x90:
+                case 0xa0:
+                case 0xb0:
+                case 0xc0:
+                case 0xd0:
+                case 0xe0:
+                  goto op_semantics_113;
+                  break;
+                case 0xf0:
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xdb:
+          case 0xee:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0xf0)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                case 0x10:
+                case 0x20:
+                case 0x30:
+                case 0x40:
+                case 0x50:
+                case 0x60:
+                case 0x70:
+                case 0x80:
+                case 0x90:
+                case 0xa0:
+                case 0xb0:
+                case 0xc0:
+                case 0xd0:
+                case 0xe0:
+                  goto op_semantics_113;
+                  break;
+                case 0xf0:
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xdc:
+          case 0xef:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0xf0)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                case 0x10:
+                case 0x20:
+                case 0x30:
+                case 0x40:
+                case 0x50:
+                case 0x60:
+                case 0x70:
+                case 0x80:
+                case 0x90:
+                case 0xa0:
+                case 0xb0:
+                case 0xc0:
+                case 0xd0:
+                case 0xe0:
+                  goto op_semantics_113;
+                  break;
+                case 0xf0:
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xdd:
+          case 0xf0:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0xf0)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                case 0x10:
+                case 0x20:
+                case 0x30:
+                case 0x40:
+                case 0x50:
+                case 0x60:
+                case 0x70:
+                case 0x80:
+                case 0x90:
+                case 0xa0:
+                case 0xb0:
+                case 0xc0:
+                case 0xd0:
+                case 0xe0:
+                  goto op_semantics_113;
+                  break;
+                case 0xf0:
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xde:
+          case 0xf1:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0xf0)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                case 0x10:
+                case 0x20:
+                case 0x30:
+                case 0x40:
+                case 0x50:
+                case 0x60:
+                case 0x70:
+                case 0x80:
+                case 0x90:
+                case 0xa0:
+                case 0xb0:
+                case 0xc0:
+                case 0xd0:
+                case 0xe0:
+                  goto op_semantics_113;
+                  break;
+                case 0xf0:
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xdf:
+          case 0xf2:
               GETBYTE ();
-              switch (op[2] & 0x00)
+              switch (op[2] & 0xf0)
               {
                 case 0x00:
-                  goto op_semantics_92;
+                case 0x10:
+                case 0x20:
+                case 0x30:
+                case 0x40:
+                case 0x50:
+                case 0x60:
+                case 0x70:
+                case 0x80:
+                case 0x90:
+                case 0xa0:
+                case 0xb0:
+                case 0xc0:
+                case 0xd0:
+                case 0xe0:
+                  goto op_semantics_113;
+                  break;
+                case 0xf0:
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xe0:
+          case 0xf3:
               GETBYTE ();
               switch (op[2] & 0xf0)
               {
@@ -11743,59 +13362,14 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0xc0:
                 case 0xd0:
                 case 0xe0:
-                  op_semantics_93:
-                    {
-                      /** 1111 1101 111 bittt cond rdst        bm%2    #%1, %0%S0 */
-#line 912 "rx-decode.opc"
-                      int bittt AU = op[1] & 0x1f;
-#line 912 "rx-decode.opc"
-                      int cond AU = (op[2] >> 4) & 0x0f;
-#line 912 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
-                      if (trace)
-                        {
-                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 111 bittt cond rdst    bm%2    #%1, %0%S0 */",
-                                 op[0], op[1], op[2]);
-                          printf ("  bittt = 0x%x,", bittt);
-                          printf ("  cond = 0x%x,", cond);
-                          printf ("  rdst = 0x%x\n", rdst);
-                        }
-                      SYNTAX("bm%2     #%1, %0%S0");
-#line 912 "rx-decode.opc"
-                      ID(bmcc); BWL(LSIZE); S2cc(cond); SC(bittt); DR(rdst);
-                    
-                    /*----------------------------------------------------------------------*/
-                    /* CONTROL REGISTERS                                                       */
-                    
-                    }
+                  goto op_semantics_113;
                   break;
                 case 0xf0:
-                  op_semantics_94:
-                    {
-                      /** 1111 1101 111bittt 1111 rdst bnot    #%1, %0 */
-#line 905 "rx-decode.opc"
-                      int bittt AU = op[1] & 0x1f;
-#line 905 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
-                      if (trace)
-                        {
-                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1101 111bittt 1111 rdst     bnot    #%1, %0 */",
-                                 op[0], op[1], op[2]);
-                          printf ("  bittt = 0x%x,", bittt);
-                          printf ("  rdst = 0x%x\n", rdst);
-                        }
-                      SYNTAX("bnot     #%1, %0");
-#line 905 "rx-decode.opc"
-                      ID(bnot); BWL(LSIZE); SC(bittt); DR(rdst);
-                    
-                    
-                    }
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xe1:
+          case 0xf4:
               GETBYTE ();
               switch (op[2] & 0xf0)
               {
@@ -11814,14 +13388,14 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0xc0:
                 case 0xd0:
                 case 0xe0:
-                  goto op_semantics_93;
+                  goto op_semantics_113;
                   break;
                 case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xe2:
+          case 0xf5:
               GETBYTE ();
               switch (op[2] & 0xf0)
               {
@@ -11840,14 +13414,14 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0xc0:
                 case 0xd0:
                 case 0xe0:
-                  goto op_semantics_93;
+                  goto op_semantics_113;
                   break;
                 case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xe3:
+          case 0xf6:
               GETBYTE ();
               switch (op[2] & 0xf0)
               {
@@ -11866,14 +13440,14 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0xc0:
                 case 0xd0:
                 case 0xe0:
-                  goto op_semantics_93;
+                  goto op_semantics_113;
                   break;
                 case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xe4:
+          case 0xf7:
               GETBYTE ();
               switch (op[2] & 0xf0)
               {
@@ -11892,14 +13466,14 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0xc0:
                 case 0xd0:
                 case 0xe0:
-                  goto op_semantics_93;
+                  goto op_semantics_113;
                   break;
                 case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xe5:
+          case 0xf8:
               GETBYTE ();
               switch (op[2] & 0xf0)
               {
@@ -11918,14 +13492,14 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0xc0:
                 case 0xd0:
                 case 0xe0:
-                  goto op_semantics_93;
+                  goto op_semantics_113;
                   break;
                 case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xe6:
+          case 0xf9:
               GETBYTE ();
               switch (op[2] & 0xf0)
               {
@@ -11944,14 +13518,14 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0xc0:
                 case 0xd0:
                 case 0xe0:
-                  goto op_semantics_93;
+                  goto op_semantics_113;
                   break;
                 case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xe7:
+          case 0xfa:
               GETBYTE ();
               switch (op[2] & 0xf0)
               {
@@ -11970,14 +13544,14 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0xc0:
                 case 0xd0:
                 case 0xe0:
-                  goto op_semantics_93;
+                  goto op_semantics_113;
                   break;
                 case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xe8:
+          case 0xfb:
               GETBYTE ();
               switch (op[2] & 0xf0)
               {
@@ -11996,14 +13570,14 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0xc0:
                 case 0xd0:
                 case 0xe0:
-                  goto op_semantics_93;
+                  goto op_semantics_113;
                   break;
                 case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xe9:
+          case 0xfc:
               GETBYTE ();
               switch (op[2] & 0xf0)
               {
@@ -12022,14 +13596,14 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0xc0:
                 case 0xd0:
                 case 0xe0:
-                  goto op_semantics_93;
+                  goto op_semantics_113;
                   break;
                 case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xea:
+          case 0xfd:
               GETBYTE ();
               switch (op[2] & 0xf0)
               {
@@ -12048,14 +13622,14 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0xc0:
                 case 0xd0:
                 case 0xe0:
-                  goto op_semantics_93;
+                  goto op_semantics_113;
                   break;
                 case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xeb:
+          case 0xfe:
               GETBYTE ();
               switch (op[2] & 0xf0)
               {
@@ -12074,14 +13648,14 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0xc0:
                 case 0xd0:
                 case 0xe0:
-                  goto op_semantics_93;
+                  goto op_semantics_113;
                   break;
                 case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_114;
                   break;
               }
             break;
-          case 0xec:
+          case 0xff:
               GETBYTE ();
               switch (op[2] & 0xf0)
               {
@@ -12100,2734 +13674,2738 @@ rx_decode_opcode (unsigned long pc AU,
                 case 0xc0:
                 case 0xd0:
                 case 0xe0:
-                  goto op_semantics_93;
+                  goto op_semantics_113;
                   break;
                 case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_114;
+                  break;
+              }
+            break;
+          default: UNSUPPORTED(); break;
+        }
+      break;
+    case 0xfe:
+        GETBYTE ();
+        switch (op[1] & 0xff)
+        {
+          case 0x00:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  op_semantics_115:
+                    {
+                      /** 1111 1110 00sz isrc bsrc rdst        mov%s   %0, [%1, %2] */
+#line 342 "rx-decode.opc"
+                      int sz AU = (op[1] >> 4) & 0x03;
+#line 342 "rx-decode.opc"
+                      int isrc AU = op[1] & 0x0f;
+#line 342 "rx-decode.opc"
+                      int bsrc AU = (op[2] >> 4) & 0x0f;
+#line 342 "rx-decode.opc"
+                      int rdst AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1110 00sz isrc bsrc rdst    mov%s   %0, [%1, %2] */",
+                                 op[0], op[1], op[2]);
+                          printf ("  sz = 0x%x,", sz);
+                          printf ("  isrc = 0x%x,", isrc);
+                          printf ("  bsrc = 0x%x,", bsrc);
+                          printf ("  rdst = 0x%x\n", rdst);
+                        }
+                      SYNTAX("mov%s    %0, [%1, %2]");
+#line 342 "rx-decode.opc"
+                      ID(movbir); sBWL(sz); DR(rdst); SRR(isrc); S2R(bsrc); F_____;
+
+                    }
+                  break;
+              }
+            break;
+          case 0x01:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x02:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x03:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x04:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x05:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x06:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x07:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x08:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x09:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x0a:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x0b:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x0c:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x0d:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x0e:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x0f:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x10:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x11:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x12:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x13:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x14:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x15:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x16:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x17:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x18:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
+                  break;
+              }
+            break;
+          case 0x19:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
                   break;
               }
             break;
-          case 0xed:
+          case 0x1a:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                case 0x10:
-                case 0x20:
-                case 0x30:
-                case 0x40:
-                case 0x50:
-                case 0x60:
-                case 0x70:
-                case 0x80:
-                case 0x90:
-                case 0xa0:
-                case 0xb0:
-                case 0xc0:
-                case 0xd0:
-                case 0xe0:
-                  goto op_semantics_93;
-                  break;
-                case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_115;
                   break;
               }
             break;
-          case 0xee:
+          case 0x1b:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                case 0x10:
-                case 0x20:
-                case 0x30:
-                case 0x40:
-                case 0x50:
-                case 0x60:
-                case 0x70:
-                case 0x80:
-                case 0x90:
-                case 0xa0:
-                case 0xb0:
-                case 0xc0:
-                case 0xd0:
-                case 0xe0:
-                  goto op_semantics_93;
-                  break;
-                case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_115;
                   break;
               }
             break;
-          case 0xef:
+          case 0x1c:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                case 0x10:
-                case 0x20:
-                case 0x30:
-                case 0x40:
-                case 0x50:
-                case 0x60:
-                case 0x70:
-                case 0x80:
-                case 0x90:
-                case 0xa0:
-                case 0xb0:
-                case 0xc0:
-                case 0xd0:
-                case 0xe0:
-                  goto op_semantics_93;
-                  break;
-                case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_115;
                   break;
               }
             break;
-          case 0xf0:
+          case 0x1d:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                case 0x10:
-                case 0x20:
-                case 0x30:
-                case 0x40:
-                case 0x50:
-                case 0x60:
-                case 0x70:
-                case 0x80:
-                case 0x90:
-                case 0xa0:
-                case 0xb0:
-                case 0xc0:
-                case 0xd0:
-                case 0xe0:
-                  goto op_semantics_93;
-                  break;
-                case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_115;
                   break;
               }
             break;
-          case 0xf1:
+          case 0x1e:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                case 0x10:
-                case 0x20:
-                case 0x30:
-                case 0x40:
-                case 0x50:
-                case 0x60:
-                case 0x70:
-                case 0x80:
-                case 0x90:
-                case 0xa0:
-                case 0xb0:
-                case 0xc0:
-                case 0xd0:
-                case 0xe0:
-                  goto op_semantics_93;
-                  break;
-                case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_115;
                   break;
               }
             break;
-          case 0xf2:
+          case 0x1f:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                case 0x10:
-                case 0x20:
-                case 0x30:
-                case 0x40:
-                case 0x50:
-                case 0x60:
-                case 0x70:
-                case 0x80:
-                case 0x90:
-                case 0xa0:
-                case 0xb0:
-                case 0xc0:
-                case 0xd0:
-                case 0xe0:
-                  goto op_semantics_93;
-                  break;
-                case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_115;
                   break;
               }
             break;
-          case 0xf3:
+          case 0x20:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                case 0x10:
-                case 0x20:
-                case 0x30:
-                case 0x40:
-                case 0x50:
-                case 0x60:
-                case 0x70:
-                case 0x80:
-                case 0x90:
-                case 0xa0:
-                case 0xb0:
-                case 0xc0:
-                case 0xd0:
-                case 0xe0:
-                  goto op_semantics_93;
-                  break;
-                case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_115;
                   break;
               }
             break;
-          case 0xf4:
+          case 0x21:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                case 0x10:
-                case 0x20:
-                case 0x30:
-                case 0x40:
-                case 0x50:
-                case 0x60:
-                case 0x70:
-                case 0x80:
-                case 0x90:
-                case 0xa0:
-                case 0xb0:
-                case 0xc0:
-                case 0xd0:
-                case 0xe0:
-                  goto op_semantics_93;
-                  break;
-                case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_115;
                   break;
               }
             break;
-          case 0xf5:
+          case 0x22:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                case 0x10:
-                case 0x20:
-                case 0x30:
-                case 0x40:
-                case 0x50:
-                case 0x60:
-                case 0x70:
-                case 0x80:
-                case 0x90:
-                case 0xa0:
-                case 0xb0:
-                case 0xc0:
-                case 0xd0:
-                case 0xe0:
-                  goto op_semantics_93;
+                  goto op_semantics_115;
                   break;
-                case 0xf0:
-                  goto op_semantics_94;
+              }
+            break;
+          case 0x23:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
                   break;
               }
             break;
-          case 0xf6:
+          case 0x24:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                case 0x10:
-                case 0x20:
-                case 0x30:
-                case 0x40:
-                case 0x50:
-                case 0x60:
-                case 0x70:
-                case 0x80:
-                case 0x90:
-                case 0xa0:
-                case 0xb0:
-                case 0xc0:
-                case 0xd0:
-                case 0xe0:
-                  goto op_semantics_93;
+                  goto op_semantics_115;
                   break;
-                case 0xf0:
-                  goto op_semantics_94;
+              }
+            break;
+          case 0x25:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
                   break;
               }
             break;
-          case 0xf7:
+          case 0x26:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                case 0x10:
-                case 0x20:
-                case 0x30:
-                case 0x40:
-                case 0x50:
-                case 0x60:
-                case 0x70:
-                case 0x80:
-                case 0x90:
-                case 0xa0:
-                case 0xb0:
-                case 0xc0:
-                case 0xd0:
-                case 0xe0:
-                  goto op_semantics_93;
+                  goto op_semantics_115;
                   break;
-                case 0xf0:
-                  goto op_semantics_94;
+              }
+            break;
+          case 0x27:
+              GETBYTE ();
+              switch (op[2] & 0x00)
+              {
+                case 0x00:
+                  goto op_semantics_115;
                   break;
               }
             break;
-          case 0xf8:
+          case 0x28:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                case 0x10:
-                case 0x20:
-                case 0x30:
-                case 0x40:
-                case 0x50:
-                case 0x60:
-                case 0x70:
-                case 0x80:
-                case 0x90:
-                case 0xa0:
-                case 0xb0:
-                case 0xc0:
-                case 0xd0:
-                case 0xe0:
-                  goto op_semantics_93;
-                  break;
-                case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_115;
                   break;
               }
             break;
-          case 0xf9:
+          case 0x29:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                case 0x10:
-                case 0x20:
-                case 0x30:
-                case 0x40:
-                case 0x50:
-                case 0x60:
-                case 0x70:
-                case 0x80:
-                case 0x90:
-                case 0xa0:
-                case 0xb0:
-                case 0xc0:
-                case 0xd0:
-                case 0xe0:
-                  goto op_semantics_93;
-                  break;
-                case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_115;
                   break;
               }
             break;
-          case 0xfa:
+          case 0x2a:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                case 0x10:
-                case 0x20:
-                case 0x30:
-                case 0x40:
-                case 0x50:
-                case 0x60:
-                case 0x70:
-                case 0x80:
-                case 0x90:
-                case 0xa0:
-                case 0xb0:
-                case 0xc0:
-                case 0xd0:
-                case 0xe0:
-                  goto op_semantics_93;
-                  break;
-                case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_115;
                   break;
               }
             break;
-          case 0xfb:
+          case 0x2b:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                case 0x10:
-                case 0x20:
-                case 0x30:
-                case 0x40:
-                case 0x50:
-                case 0x60:
-                case 0x70:
-                case 0x80:
-                case 0x90:
-                case 0xa0:
-                case 0xb0:
-                case 0xc0:
-                case 0xd0:
-                case 0xe0:
-                  goto op_semantics_93;
-                  break;
-                case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_115;
                   break;
               }
             break;
-          case 0xfc:
+          case 0x2c:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                case 0x10:
-                case 0x20:
-                case 0x30:
-                case 0x40:
-                case 0x50:
-                case 0x60:
-                case 0x70:
-                case 0x80:
-                case 0x90:
-                case 0xa0:
-                case 0xb0:
-                case 0xc0:
-                case 0xd0:
-                case 0xe0:
-                  goto op_semantics_93;
-                  break;
-                case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_115;
                   break;
               }
             break;
-          case 0xfd:
+          case 0x2d:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                case 0x10:
-                case 0x20:
-                case 0x30:
-                case 0x40:
-                case 0x50:
-                case 0x60:
-                case 0x70:
-                case 0x80:
-                case 0x90:
-                case 0xa0:
-                case 0xb0:
-                case 0xc0:
-                case 0xd0:
-                case 0xe0:
-                  goto op_semantics_93;
-                  break;
-                case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_115;
                   break;
               }
             break;
-          case 0xfe:
+          case 0x2e:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                case 0x10:
-                case 0x20:
-                case 0x30:
-                case 0x40:
-                case 0x50:
-                case 0x60:
-                case 0x70:
-                case 0x80:
-                case 0x90:
-                case 0xa0:
-                case 0xb0:
-                case 0xc0:
-                case 0xd0:
-                case 0xe0:
-                  goto op_semantics_93;
-                  break;
-                case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_115;
                   break;
               }
             break;
-          case 0xff:
+          case 0x2f:
               GETBYTE ();
-              switch (op[2] & 0xf0)
+              switch (op[2] & 0x00)
               {
                 case 0x00:
-                case 0x10:
-                case 0x20:
-                case 0x30:
-                case 0x40:
-                case 0x50:
-                case 0x60:
-                case 0x70:
-                case 0x80:
-                case 0x90:
-                case 0xa0:
-                case 0xb0:
-                case 0xc0:
-                case 0xd0:
-                case 0xe0:
-                  goto op_semantics_93;
-                  break;
-                case 0xf0:
-                  goto op_semantics_94;
+                  goto op_semantics_115;
                   break;
               }
             break;
-          default: UNSUPPORTED(); break;
-        }
-      break;
-    case 0xfe:
-        GETBYTE ();
-        switch (op[1] & 0xff)
-        {
-          case 0x00:
+          case 0x40:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_95:
+                  op_semantics_116:
                     {
-                      /** 1111 1110 00sz isrc bsrc rdst        mov%s   %0, [%1, %2] */
-#line 318 "rx-decode.opc"
+                      /** 1111 1110 01sz isrc bsrc rdst        mov%s   [%1, %2], %0 */
+#line 339 "rx-decode.opc"
                       int sz AU = (op[1] >> 4) & 0x03;
-#line 318 "rx-decode.opc"
+#line 339 "rx-decode.opc"
                       int isrc AU = op[1] & 0x0f;
-#line 318 "rx-decode.opc"
+#line 339 "rx-decode.opc"
                       int bsrc AU = (op[2] >> 4) & 0x0f;
-#line 318 "rx-decode.opc"
+#line 339 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1110 00sz isrc bsrc rdst    mov%s   %0, [%1, %2] */",
+                                 "/** 1111 1110 01sz isrc bsrc rdst    mov%s   [%1, %2], %0 */",
                                  op[0], op[1], op[2]);
                           printf ("  sz = 0x%x,", sz);
                           printf ("  isrc = 0x%x,", isrc);
                           printf ("  bsrc = 0x%x,", bsrc);
                           printf ("  rdst = 0x%x\n", rdst);
                         }
-                      SYNTAX("mov%s    %0, [%1, %2]");
-#line 318 "rx-decode.opc"
-                      ID(movbir); sBWL(sz); DR(rdst); SR(isrc); S2R(bsrc); F("----");
-                    
+                      SYNTAX("mov%s    [%1, %2], %0");
+#line 339 "rx-decode.opc"
+                      ID(movbi); sBWL(sz); DR(rdst); SRR(isrc); S2R(bsrc); F_____;
+
                     }
                   break;
               }
             break;
-          case 0x01:
+          case 0x41:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x02:
+          case 0x42:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x03:
+          case 0x43:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x04:
+          case 0x44:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x05:
+          case 0x45:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x06:
+          case 0x46:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x07:
+          case 0x47:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x08:
+          case 0x48:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x09:
+          case 0x49:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x0a:
+          case 0x4a:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x0b:
+          case 0x4b:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x0c:
+          case 0x4c:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x0d:
+          case 0x4d:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x0e:
+          case 0x4e:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x0f:
+          case 0x4f:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x10:
+          case 0x50:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x11:
+          case 0x51:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x12:
+          case 0x52:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x13:
+          case 0x53:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x14:
+          case 0x54:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x15:
+          case 0x55:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x16:
+          case 0x56:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x17:
+          case 0x57:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x18:
+          case 0x58:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x19:
+          case 0x59:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x1a:
+          case 0x5a:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x1b:
+          case 0x5b:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x1c:
+          case 0x5c:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x1d:
+          case 0x5d:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x1e:
+          case 0x5e:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x1f:
+          case 0x5f:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x20:
+          case 0x60:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x21:
+          case 0x61:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x22:
+          case 0x62:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x23:
+          case 0x63:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x24:
+          case 0x64:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x25:
+          case 0x65:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x26:
+          case 0x66:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x27:
+          case 0x67:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x28:
+          case 0x68:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x29:
+          case 0x69:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x2a:
+          case 0x6a:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x2b:
+          case 0x6b:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x2c:
+          case 0x6c:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x2d:
+          case 0x6d:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x2e:
+          case 0x6e:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x2f:
+          case 0x6f:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_95;
+                  goto op_semantics_116;
                   break;
               }
             break;
-          case 0x40:
+          case 0xc0:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_96:
+                  op_semantics_117:
                     {
-                      /** 1111 1110 01sz isrc bsrc rdst        mov%s   [%1, %2], %0 */
-#line 315 "rx-decode.opc"
+                      /** 1111 1110 11sz isrc bsrc rdst        movu%s  [%1, %2], %0 */
+#line 345 "rx-decode.opc"
                       int sz AU = (op[1] >> 4) & 0x03;
-#line 315 "rx-decode.opc"
+#line 345 "rx-decode.opc"
                       int isrc AU = op[1] & 0x0f;
-#line 315 "rx-decode.opc"
+#line 345 "rx-decode.opc"
                       int bsrc AU = (op[2] >> 4) & 0x0f;
-#line 315 "rx-decode.opc"
+#line 345 "rx-decode.opc"
                       int rdst AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1110 01sz isrc bsrc rdst    mov%s   [%1, %2], %0 */",
+                                 "/** 1111 1110 11sz isrc bsrc rdst    movu%s  [%1, %2], %0 */",
                                  op[0], op[1], op[2]);
                           printf ("  sz = 0x%x,", sz);
                           printf ("  isrc = 0x%x,", isrc);
                           printf ("  bsrc = 0x%x,", bsrc);
                           printf ("  rdst = 0x%x\n", rdst);
                         }
-                      SYNTAX("mov%s    [%1, %2], %0");
-#line 315 "rx-decode.opc"
-                      ID(movbi); sBWL(sz); DR(rdst); SR(isrc); S2R(bsrc); F("----");
-                    
+                      SYNTAX("movu%s   [%1, %2], %0");
+#line 345 "rx-decode.opc"
+                      ID(movbi); uBW(sz); DR(rdst); SRR(isrc); S2R(bsrc); F_____;
+
                     }
                   break;
               }
             break;
-          case 0x41:
+          case 0xc1:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x42:
+          case 0xc2:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x43:
+          case 0xc3:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x44:
+          case 0xc4:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x45:
+          case 0xc5:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x46:
+          case 0xc6:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x47:
+          case 0xc7:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x48:
+          case 0xc8:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x49:
+          case 0xc9:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x4a:
+          case 0xca:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x4b:
+          case 0xcb:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x4c:
+          case 0xcc:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x4d:
+          case 0xcd:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x4e:
+          case 0xce:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x4f:
+          case 0xcf:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x50:
+          case 0xd0:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x51:
+          case 0xd1:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x52:
+          case 0xd2:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x53:
+          case 0xd3:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x54:
+          case 0xd4:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x55:
+          case 0xd5:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x56:
+          case 0xd6:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x57:
+          case 0xd7:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x58:
+          case 0xd8:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x59:
+          case 0xd9:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x5a:
+          case 0xda:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x5b:
+          case 0xdb:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x5c:
+          case 0xdc:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x5d:
+          case 0xdd:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x5e:
+          case 0xde:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x5f:
+          case 0xdf:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x60:
+          case 0xe0:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x61:
+          case 0xe1:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x62:
+          case 0xe2:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x63:
+          case 0xe3:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x64:
+          case 0xe4:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x65:
+          case 0xe5:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x66:
+          case 0xe6:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x67:
+          case 0xe7:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x68:
+          case 0xe8:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x69:
+          case 0xe9:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x6a:
+          case 0xea:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x6b:
+          case 0xeb:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x6c:
+          case 0xec:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x6d:
+          case 0xed:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x6e:
+          case 0xee:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0x6f:
+          case 0xef:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_96;
+                  goto op_semantics_117;
                   break;
               }
             break;
-          case 0xc0:
+          default: UNSUPPORTED(); break;
+        }
+      break;
+    case 0xff:
+        GETBYTE ();
+        switch (op[1] & 0xff)
+        {
+          case 0x00:
               GETBYTE ();
               switch (op[2] & 0x00)
-              {
-                case 0x00:
-                  op_semantics_97:
-                    {
-                      /** 1111 1110 11sz isrc bsrc rdst        movu%s  [%1, %2], %0 */
-#line 321 "rx-decode.opc"
-                      int sz AU = (op[1] >> 4) & 0x03;
-#line 321 "rx-decode.opc"
-                      int isrc AU = op[1] & 0x0f;
-#line 321 "rx-decode.opc"
-                      int bsrc AU = (op[2] >> 4) & 0x0f;
-#line 321 "rx-decode.opc"
-                      int rdst AU = op[2] & 0x0f;
+              {
+                case 0x00:
+                  op_semantics_118:
+                    {
+                      /** 1111 1111 0000 rdst srca srcb        sub     %2, %1, %0 */
+#line 549 "rx-decode.opc"
+                      int rdst AU = op[1] & 0x0f;
+#line 549 "rx-decode.opc"
+                      int srca AU = (op[2] >> 4) & 0x0f;
+#line 549 "rx-decode.opc"
+                      int srcb AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1110 11sz isrc bsrc rdst    movu%s  [%1, %2], %0 */",
+                                 "/** 1111 1111 0000 rdst srca srcb    sub     %2, %1, %0 */",
                                  op[0], op[1], op[2]);
-                          printf ("  sz = 0x%x,", sz);
-                          printf ("  isrc = 0x%x,", isrc);
-                          printf ("  bsrc = 0x%x,", bsrc);
-                          printf ("  rdst = 0x%x\n", rdst);
+                          printf ("  rdst = 0x%x,", rdst);
+                          printf ("  srca = 0x%x,", srca);
+                          printf ("  srcb = 0x%x\n", srcb);
                         }
-                      SYNTAX("movu%s   [%1, %2], %0");
-#line 321 "rx-decode.opc"
-                      ID(movbi); uBWL(sz); DR(rdst); SR(isrc); S2R(bsrc); F("----");
-                    
+                      SYNTAX("sub      %2, %1, %0");
+#line 549 "rx-decode.opc"
+                      ID(sub); DR(rdst); SR(srcb); S2R(srca); F_OSZC;
+
+                    /*----------------------------------------------------------------------*/
+                    /* SBB                                                                     */
+
                     }
                   break;
               }
             break;
-          case 0xc1:
+          case 0x01:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_118;
                   break;
               }
             break;
-          case 0xc2:
+          case 0x02:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_118;
                   break;
               }
             break;
-          case 0xc3:
+          case 0x03:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_118;
                   break;
               }
             break;
-          case 0xc4:
+          case 0x04:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_118;
                   break;
               }
             break;
-          case 0xc5:
+          case 0x05:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_118;
                   break;
               }
             break;
-          case 0xc6:
+          case 0x06:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_118;
                   break;
               }
             break;
-          case 0xc7:
+          case 0x07:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_118;
                   break;
               }
             break;
-          case 0xc8:
+          case 0x08:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_118;
                   break;
               }
             break;
-          case 0xc9:
+          case 0x09:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_118;
                   break;
               }
             break;
-          case 0xca:
+          case 0x0a:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_118;
                   break;
               }
             break;
-          case 0xcb:
+          case 0x0b:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_118;
                   break;
               }
             break;
-          case 0xcc:
+          case 0x0c:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_118;
                   break;
               }
             break;
-          case 0xcd:
+          case 0x0d:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_118;
                   break;
               }
             break;
-          case 0xce:
+          case 0x0e:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_118;
                   break;
               }
             break;
-          case 0xcf:
+          case 0x0f:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_118;
                   break;
               }
             break;
-          case 0xd0:
+          case 0x20:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  op_semantics_119:
+                    {
+                      /** 1111 1111 0010 rdst srca srcb        add     %2, %1, %0 */
+#line 516 "rx-decode.opc"
+                      int rdst AU = op[1] & 0x0f;
+#line 516 "rx-decode.opc"
+                      int srca AU = (op[2] >> 4) & 0x0f;
+#line 516 "rx-decode.opc"
+                      int srcb AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1111 0010 rdst srca srcb    add     %2, %1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  rdst = 0x%x,", rdst);
+                          printf ("  srca = 0x%x,", srca);
+                          printf ("  srcb = 0x%x\n", srcb);
+                        }
+                      SYNTAX("add      %2, %1, %0");
+#line 516 "rx-decode.opc"
+                      ID(add); DR(rdst); SR(srcb); S2R(srca); F_OSZC;
+
+                    /*----------------------------------------------------------------------*/
+                    /* CMP                                                                     */
+
+                    }
                   break;
               }
             break;
-          case 0xd1:
+          case 0x21:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_119;
                   break;
               }
             break;
-          case 0xd2:
+          case 0x22:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_119;
                   break;
               }
             break;
-          case 0xd3:
+          case 0x23:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_119;
                   break;
               }
             break;
-          case 0xd4:
+          case 0x24:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_119;
                   break;
               }
             break;
-          case 0xd5:
+          case 0x25:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_119;
                   break;
               }
             break;
-          case 0xd6:
+          case 0x26:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_119;
                   break;
               }
             break;
-          case 0xd7:
+          case 0x27:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_119;
                   break;
               }
             break;
-          case 0xd8:
+          case 0x28:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_119;
                   break;
               }
             break;
-          case 0xd9:
+          case 0x29:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_119;
                   break;
               }
             break;
-          case 0xda:
+          case 0x2a:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_119;
                   break;
               }
             break;
-          case 0xdb:
+          case 0x2b:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_119;
                   break;
               }
             break;
-          case 0xdc:
+          case 0x2c:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_119;
                   break;
               }
             break;
-          case 0xdd:
+          case 0x2d:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_119;
                   break;
               }
             break;
-          case 0xde:
+          case 0x2e:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_119;
                   break;
               }
             break;
-          case 0xdf:
+          case 0x2f:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_119;
                   break;
               }
             break;
-          case 0xe0:
+          case 0x30:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  op_semantics_120:
+                    {
+                      /** 1111 1111 0011 rdst srca srcb        mul     %2, %1, %0 */
+#line 656 "rx-decode.opc"
+                      int rdst AU = op[1] & 0x0f;
+#line 656 "rx-decode.opc"
+                      int srca AU = (op[2] >> 4) & 0x0f;
+#line 656 "rx-decode.opc"
+                      int srcb AU = op[2] & 0x0f;
+                      if (trace)
+                        {
+                          printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
+                                 "/** 1111 1111 0011 rdst srca srcb    mul     %2, %1, %0 */",
+                                 op[0], op[1], op[2]);
+                          printf ("  rdst = 0x%x,", rdst);
+                          printf ("  srca = 0x%x,", srca);
+                          printf ("  srcb = 0x%x\n", srcb);
+                        }
+                      SYNTAX("mul      %2, %1, %0");
+#line 656 "rx-decode.opc"
+                      ID(mul); DR(rdst); SR(srcb); S2R(srca); F_____;
+
+                    /*----------------------------------------------------------------------*/
+                    /* EMUL                                                                    */
+
+                    }
                   break;
               }
             break;
-          case 0xe1:
+          case 0x31:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_120;
                   break;
               }
             break;
-          case 0xe2:
+          case 0x32:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_120;
                   break;
               }
             break;
-          case 0xe3:
+          case 0x33:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_120;
                   break;
               }
             break;
-          case 0xe4:
+          case 0x34:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_120;
                   break;
               }
             break;
-          case 0xe5:
+          case 0x35:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_120;
                   break;
               }
             break;
-          case 0xe6:
+          case 0x36:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_120;
                   break;
               }
             break;
-          case 0xe7:
+          case 0x37:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_120;
                   break;
               }
             break;
-          case 0xe8:
+          case 0x38:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_120;
                   break;
               }
             break;
-          case 0xe9:
+          case 0x39:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_120;
                   break;
               }
             break;
-          case 0xea:
+          case 0x3a:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_120;
                   break;
               }
             break;
-          case 0xeb:
+          case 0x3b:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_120;
                   break;
               }
             break;
-          case 0xec:
+          case 0x3c:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_120;
                   break;
               }
             break;
-          case 0xed:
+          case 0x3d:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_120;
                   break;
               }
             break;
-          case 0xee:
+          case 0x3e:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_120;
                   break;
               }
             break;
-          case 0xef:
+          case 0x3f:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_97;
+                  goto op_semantics_120;
                   break;
               }
             break;
-          default: UNSUPPORTED(); break;
-        }
-      break;
-    case 0xff:
-        GETBYTE ();
-        switch (op[1] & 0xff)
-        {
-          case 0x00:
+          case 0x40:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_98:
+                  op_semantics_121:
                     {
-                      /** 1111 1111 0000 rdst srca srcb        sub     %2, %1, %0 */
-#line 525 "rx-decode.opc"
+                      /** 1111 1111 0100 rdst srca srcb        and     %2, %1, %0 */
+#line 426 "rx-decode.opc"
                       int rdst AU = op[1] & 0x0f;
-#line 525 "rx-decode.opc"
+#line 426 "rx-decode.opc"
                       int srca AU = (op[2] >> 4) & 0x0f;
-#line 525 "rx-decode.opc"
+#line 426 "rx-decode.opc"
                       int srcb AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1111 0000 rdst srca srcb    sub     %2, %1, %0 */",
+                                 "/** 1111 1111 0100 rdst srca srcb    and     %2, %1, %0 */",
                                  op[0], op[1], op[2]);
                           printf ("  rdst = 0x%x,", rdst);
                           printf ("  srca = 0x%x,", srca);
                           printf ("  srcb = 0x%x\n", srcb);
                         }
-                      SYNTAX("sub      %2, %1, %0");
-#line 525 "rx-decode.opc"
-                      ID(sub); DR(rdst); SR(srcb); S2R(srca); F("OSZC");
-                    
+                      SYNTAX("and      %2, %1, %0");
+#line 426 "rx-decode.opc"
+                      ID(and); DR(rdst); SR(srcb); S2R(srca); F__SZ_;
+
                     /*----------------------------------------------------------------------*/
-                    /* SBB                                                                     */
-                    
+                    /* OR                                                                      */
+
                     }
                   break;
               }
             break;
-          case 0x01:
+          case 0x41:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_98;
+                  goto op_semantics_121;
                   break;
               }
             break;
-          case 0x02:
+          case 0x42:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_98;
+                  goto op_semantics_121;
                   break;
               }
             break;
-          case 0x03:
+          case 0x43:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_98;
+                  goto op_semantics_121;
                   break;
               }
             break;
-          case 0x04:
+          case 0x44:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_98;
+                  goto op_semantics_121;
                   break;
               }
             break;
-          case 0x05:
+          case 0x45:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_98;
+                  goto op_semantics_121;
                   break;
               }
             break;
-          case 0x06:
+          case 0x46:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_98;
+                  goto op_semantics_121;
                   break;
               }
             break;
-          case 0x07:
+          case 0x47:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_98;
+                  goto op_semantics_121;
                   break;
               }
             break;
-          case 0x08:
+          case 0x48:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_98;
+                  goto op_semantics_121;
                   break;
               }
             break;
-          case 0x09:
+          case 0x49:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_98;
+                  goto op_semantics_121;
                   break;
               }
             break;
-          case 0x0a:
+          case 0x4a:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_98;
+                  goto op_semantics_121;
                   break;
               }
             break;
-          case 0x0b:
+          case 0x4b:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_98;
+                  goto op_semantics_121;
                   break;
               }
             break;
-          case 0x0c:
+          case 0x4c:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_98;
+                  goto op_semantics_121;
                   break;
               }
             break;
-          case 0x0d:
+          case 0x4d:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_98;
+                  goto op_semantics_121;
                   break;
               }
             break;
-          case 0x0e:
+          case 0x4e:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_98;
+                  goto op_semantics_121;
                   break;
               }
             break;
-          case 0x0f:
+          case 0x4f:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_98;
+                  goto op_semantics_121;
                   break;
               }
             break;
-          case 0x20:
+          case 0x50:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_99:
+                  op_semantics_122:
                     {
-                      /** 1111 1111 0010 rdst srca srcb        add     %2, %1, %0 */
-#line 492 "rx-decode.opc"
+                      /** 1111 1111 0101 rdst srca srcb        or      %2, %1, %0 */
+#line 444 "rx-decode.opc"
                       int rdst AU = op[1] & 0x0f;
-#line 492 "rx-decode.opc"
+#line 444 "rx-decode.opc"
                       int srca AU = (op[2] >> 4) & 0x0f;
-#line 492 "rx-decode.opc"
+#line 444 "rx-decode.opc"
                       int srcb AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1111 0010 rdst srca srcb    add     %2, %1, %0 */",
+                                 "/** 1111 1111 0101 rdst srca srcb    or      %2, %1, %0 */",
                                  op[0], op[1], op[2]);
                           printf ("  rdst = 0x%x,", rdst);
                           printf ("  srca = 0x%x,", srca);
                           printf ("  srcb = 0x%x\n", srcb);
                         }
-                      SYNTAX("add      %2, %1, %0");
-#line 492 "rx-decode.opc"
-                      ID(add); DR(rdst); SR(srcb); S2R(srca); F("OSZC");
-                    
+                      SYNTAX("or       %2, %1, %0");
+#line 444 "rx-decode.opc"
+                      ID(or); DR(rdst); SR(srcb); S2R(srca); F__SZ_;
+
                     /*----------------------------------------------------------------------*/
-                    /* CMP                                                                     */
-                    
+                    /* XOR                                                                     */
+
                     }
                   break;
               }
             break;
-          case 0x21:
+          case 0x51:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_99;
+                  goto op_semantics_122;
                   break;
               }
             break;
-          case 0x22:
+          case 0x52:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_99;
+                  goto op_semantics_122;
                   break;
               }
             break;
-          case 0x23:
+          case 0x53:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_99;
+                  goto op_semantics_122;
                   break;
               }
             break;
-          case 0x24:
+          case 0x54:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_99;
+                  goto op_semantics_122;
                   break;
               }
             break;
-          case 0x25:
+          case 0x55:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_99;
+                  goto op_semantics_122;
                   break;
               }
             break;
-          case 0x26:
+          case 0x56:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_99;
+                  goto op_semantics_122;
                   break;
               }
             break;
-          case 0x27:
+          case 0x57:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_99;
+                  goto op_semantics_122;
                   break;
               }
             break;
-          case 0x28:
+          case 0x58:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_99;
+                  goto op_semantics_122;
                   break;
               }
             break;
-          case 0x29:
+          case 0x59:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_99;
+                  goto op_semantics_122;
                   break;
               }
             break;
-          case 0x2a:
+          case 0x5a:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_99;
+                  goto op_semantics_122;
                   break;
               }
             break;
-          case 0x2b:
+          case 0x5b:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_99;
+                  goto op_semantics_122;
                   break;
               }
             break;
-          case 0x2c:
+          case 0x5c:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_99;
+                  goto op_semantics_122;
                   break;
               }
             break;
-          case 0x2d:
+          case 0x5d:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_99;
+                  goto op_semantics_122;
                   break;
               }
             break;
-          case 0x2e:
+          case 0x5e:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_99;
+                  goto op_semantics_122;
                   break;
               }
             break;
-          case 0x2f:
+          case 0x5f:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_99;
+                  goto op_semantics_122;
                   break;
               }
             break;
-          case 0x30:
+          case 0x80:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_100:
+                  op_semantics_123:
                     {
-                      /** 1111 1111 0011 rdst srca srcb        mul     %2, %1, %0 */
-#line 586 "rx-decode.opc"
+                      /** 1111 1111 1000 rdst srca srcb        fsub    %2, %1, %0 */
+#line 1104 "rx-decode.opc"
                       int rdst AU = op[1] & 0x0f;
-#line 586 "rx-decode.opc"
+#line 1104 "rx-decode.opc"
                       int srca AU = (op[2] >> 4) & 0x0f;
-#line 586 "rx-decode.opc"
+#line 1104 "rx-decode.opc"
                       int srcb AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1111 0011 rdst srca srcb    mul     %2, %1, %0 */",
+                                 "/** 1111 1111 1000 rdst srca srcb    fsub    %2, %1, %0 */",
                                  op[0], op[1], op[2]);
                           printf ("  rdst = 0x%x,", rdst);
                           printf ("  srca = 0x%x,", srca);
                           printf ("  srcb = 0x%x\n", srcb);
                         }
-                      SYNTAX("mul      %2, %1, %0");
-#line 586 "rx-decode.opc"
-                      ID(mul); DR(rdst); SR(srcb); S2R(srca); F("----");
-                    
-                    /*----------------------------------------------------------------------*/
-                    /* EMUL                                                                    */
-                    
+                      SYNTAX("fsub     %2, %1, %0");
+#line 1104 "rx-decode.opc"
+                      ID(fsub); DR(rdst); SR(srcb); S2R(srca); F__SZ_;
+
                     }
                   break;
               }
             break;
-          case 0x31:
+          case 0x81:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_100;
+                  goto op_semantics_123;
                   break;
               }
             break;
-          case 0x32:
+          case 0x82:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_100;
+                  goto op_semantics_123;
                   break;
               }
             break;
-          case 0x33:
+          case 0x83:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_100;
+                  goto op_semantics_123;
                   break;
               }
             break;
-          case 0x34:
+          case 0x84:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_100;
+                  goto op_semantics_123;
                   break;
               }
             break;
-          case 0x35:
+          case 0x85:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_100;
+                  goto op_semantics_123;
                   break;
               }
             break;
-          case 0x36:
+          case 0x86:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_100;
+                  goto op_semantics_123;
                   break;
               }
             break;
-          case 0x37:
+          case 0x87:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_100;
+                  goto op_semantics_123;
                   break;
               }
             break;
-          case 0x38:
+          case 0x88:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_100;
+                  goto op_semantics_123;
                   break;
               }
             break;
-          case 0x39:
+          case 0x89:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_100;
+                  goto op_semantics_123;
                   break;
               }
             break;
-          case 0x3a:
+          case 0x8a:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_100;
+                  goto op_semantics_123;
                   break;
               }
             break;
-          case 0x3b:
+          case 0x8b:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_100;
+                  goto op_semantics_123;
                   break;
               }
             break;
-          case 0x3c:
+          case 0x8c:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_100;
+                  goto op_semantics_123;
                   break;
               }
             break;
-          case 0x3d:
+          case 0x8d:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_100;
+                  goto op_semantics_123;
                   break;
               }
             break;
-          case 0x3e:
+          case 0x8e:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_100;
+                  goto op_semantics_123;
                   break;
               }
             break;
-          case 0x3f:
+          case 0x8f:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_100;
+                  goto op_semantics_123;
                   break;
               }
             break;
-          case 0x40:
+          case 0xa0:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_101:
+                  op_semantics_124:
                     {
-                      /** 1111 1111 0100 rdst srca srcb        and     %2, %1, %0 */
-#line 402 "rx-decode.opc"
+                      /** 1111 1111 1010 rdst srca srcb        fadd    %2, %1, %0 */
+#line 1101 "rx-decode.opc"
                       int rdst AU = op[1] & 0x0f;
-#line 402 "rx-decode.opc"
+#line 1101 "rx-decode.opc"
                       int srca AU = (op[2] >> 4) & 0x0f;
-#line 402 "rx-decode.opc"
+#line 1101 "rx-decode.opc"
                       int srcb AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1111 0100 rdst srca srcb    and     %2, %1, %0 */",
+                                 "/** 1111 1111 1010 rdst srca srcb    fadd    %2, %1, %0 */",
                                  op[0], op[1], op[2]);
                           printf ("  rdst = 0x%x,", rdst);
                           printf ("  srca = 0x%x,", srca);
                           printf ("  srcb = 0x%x\n", srcb);
                         }
-                      SYNTAX("and      %2, %1, %0");
-#line 402 "rx-decode.opc"
-                      ID(and); DR(rdst); SR(srcb); S2R(srca); F("-SZ-");
-                    
-                    /*----------------------------------------------------------------------*/
-                    /* OR                                                                      */
-                    
+                      SYNTAX("fadd     %2, %1, %0");
+#line 1101 "rx-decode.opc"
+                      ID(fadd); DR(rdst); SR(srcb); S2R(srca); F__SZ_;
+
                     }
                   break;
               }
             break;
-          case 0x41:
+          case 0xa1:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_101;
+                  goto op_semantics_124;
                   break;
               }
             break;
-          case 0x42:
+          case 0xa2:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_101;
+                  goto op_semantics_124;
                   break;
               }
             break;
-          case 0x43:
+          case 0xa3:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_101;
+                  goto op_semantics_124;
                   break;
               }
             break;
-          case 0x44:
+          case 0xa4:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_101;
+                  goto op_semantics_124;
                   break;
               }
             break;
-          case 0x45:
+          case 0xa5:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_101;
+                  goto op_semantics_124;
                   break;
               }
             break;
-          case 0x46:
+          case 0xa6:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_101;
+                  goto op_semantics_124;
                   break;
               }
             break;
-          case 0x47:
+          case 0xa7:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_101;
+                  goto op_semantics_124;
                   break;
               }
             break;
-          case 0x48:
+          case 0xa8:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_101;
+                  goto op_semantics_124;
                   break;
               }
             break;
-          case 0x49:
+          case 0xa9:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_101;
+                  goto op_semantics_124;
                   break;
               }
             break;
-          case 0x4a:
+          case 0xaa:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_101;
+                  goto op_semantics_124;
                   break;
               }
             break;
-          case 0x4b:
+          case 0xab:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_101;
+                  goto op_semantics_124;
                   break;
               }
             break;
-          case 0x4c:
+          case 0xac:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_101;
+                  goto op_semantics_124;
                   break;
               }
             break;
-          case 0x4d:
+          case 0xad:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_101;
+                  goto op_semantics_124;
                   break;
               }
             break;
-          case 0x4e:
+          case 0xae:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_101;
+                  goto op_semantics_124;
                   break;
               }
             break;
-          case 0x4f:
+          case 0xaf:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_101;
+                  goto op_semantics_124;
                   break;
               }
             break;
-          case 0x50:
+          case 0xb0:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  op_semantics_102:
+                  op_semantics_125:
                     {
-                      /** 1111 1111 0101 rdst srca srcb        or      %2, %1, %0 */
-#line 420 "rx-decode.opc"
+                      /** 1111 1111 1011 rdst srca srcb        fmul    %2, %1, %0 */
+#line 1107 "rx-decode.opc"
                       int rdst AU = op[1] & 0x0f;
-#line 420 "rx-decode.opc"
+#line 1107 "rx-decode.opc"
                       int srca AU = (op[2] >> 4) & 0x0f;
-#line 420 "rx-decode.opc"
+#line 1107 "rx-decode.opc"
                       int srcb AU = op[2] & 0x0f;
                       if (trace)
                         {
                           printf ("\033[33m%s\033[0m  %02x %02x %02x\n",
-                                 "/** 1111 1111 0101 rdst srca srcb    or      %2, %1, %0 */",
+                                 "/** 1111 1111 1011 rdst srca srcb    fmul    %2, %1, %0 */",
                                  op[0], op[1], op[2]);
                           printf ("  rdst = 0x%x,", rdst);
                           printf ("  srca = 0x%x,", srca);
                           printf ("  srcb = 0x%x\n", srcb);
                         }
-                      SYNTAX("or       %2, %1, %0");
-#line 420 "rx-decode.opc"
-                      ID(or); DR(rdst); SR(srcb); S2R(srca); F("-SZ-");
-                    
-                    /*----------------------------------------------------------------------*/
-                    /* XOR                                                                     */
-                    
+                      SYNTAX("fmul     %2, %1, %0");
+#line 1107 "rx-decode.opc"
+                      ID(fmul); DR(rdst); SR(srcb); S2R(srca); F__SZ_;
+
                     }
                   break;
               }
             break;
-          case 0x51:
+          case 0xb1:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_102;
+                  goto op_semantics_125;
                   break;
               }
             break;
-          case 0x52:
+          case 0xb2:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_102;
+                  goto op_semantics_125;
                   break;
               }
             break;
-          case 0x53:
+          case 0xb3:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_102;
+                  goto op_semantics_125;
                   break;
               }
             break;
-          case 0x54:
+          case 0xb4:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_102;
+                  goto op_semantics_125;
                   break;
               }
             break;
-          case 0x55:
+          case 0xb5:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_102;
+                  goto op_semantics_125;
                   break;
               }
             break;
-          case 0x56:
+          case 0xb6:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_102;
+                  goto op_semantics_125;
                   break;
               }
             break;
-          case 0x57:
+          case 0xb7:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_102;
+                  goto op_semantics_125;
                   break;
               }
             break;
-          case 0x58:
+          case 0xb8:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_102;
+                  goto op_semantics_125;
                   break;
               }
             break;
-          case 0x59:
+          case 0xb9:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_102;
+                  goto op_semantics_125;
                   break;
               }
             break;
-          case 0x5a:
+          case 0xba:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_102;
+                  goto op_semantics_125;
                   break;
               }
             break;
-          case 0x5b:
+          case 0xbb:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_102;
+                  goto op_semantics_125;
                   break;
               }
             break;
-          case 0x5c:
+          case 0xbc:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_102;
+                  goto op_semantics_125;
                   break;
               }
             break;
-          case 0x5d:
+          case 0xbd:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_102;
+                  goto op_semantics_125;
                   break;
               }
             break;
-          case 0x5e:
+          case 0xbe:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_102;
+                  goto op_semantics_125;
                   break;
               }
             break;
-          case 0x5f:
+          case 0xbf:
               GETBYTE ();
               switch (op[2] & 0x00)
               {
                 case 0x00:
-                  goto op_semantics_102;
+                  goto op_semantics_125;
                   break;
               }
             break;
@@ -14836,7 +16414,7 @@ rx_decode_opcode (unsigned long pc AU,
       break;
     default: UNSUPPORTED(); break;
   }
-#line 969 "rx-decode.opc"
+#line 1122 "rx-decode.opc"
 
   return rx->n_bytes;
 }
This page took 0.251844 seconds and 4 git commands to generate.